Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: CVS (slightly off-topic)



On Sep 16,  4:46pm, Adam Spiers wrote:
} Subject: Re: CVS (slightly off-topic)
}
} For reference, in case anyone in the future who hasn't already is
} thinking of going down the CVS route, and is reading this thread,
} something to be wary of is that if you do more than one import onto a
} vendor branch, you have to check for any files present in the first
} import but not the second.  Do a `find . -print | sort' in both
} directories, and then do a
} 
}   cvs remove -f `comm -23 filelist_a filelist_b`
} 
} on the respective outputs.

If you found that you needed to do this, then you've done something else
wrong, or you have a really old version of CVS.  This should be handled
for you by the import and merge process.

(The first thing you did wrong was "find . -print | sort" instead of
"print -l **/*(D)", but that has nothing to do with CVS.)

I'm assuming you did something like this:

    import vendor-rev-A
		    checkout trunk
    import vendor-rev-B
    import vendor-rev-C
		    update trunk

The correct way to update the trunk sandbox in that instance is to do BOTH:

	cvs update
	cvs update -jvendor-rev-A -jvendor-rev-C

The plain "cvs update" will add any new files from rev-B or rev-C that
are not in rev-A.  The "cvs update -j... -j..." will merge changes to
any other files since rev-A, including removing any files no longer
present at rev-C.

The import of rev-C should itself have removed any files new at rev-B
but that are no longer present in rev-C.

The one case where this might fail is when you have modified (but not
committed) a rev-A file in your sandbox that is one of those removed at
either rev-B or rev-C.  In that case you should get a conflict report
at the "cvs update -j... -j..." stage, which you will have to resolve
(possibly by using "cvs remove").  It's best to commit everything you
possibly can *before* doing the merge.

I'd actually update, resolve conflicts, and commit after EACH import,
rather than doing two imports in a row; but that's just to minimize the
size of the conflicts I might have to resolve.

} I also had one weird conflict error reported in Completion/User/_cvs
} when I imported 3.1.6-pws-4 which I had to deal with manually.  No
} idea why.

If you've applied any patches from the list to your trunk sandbox,
"cvs import" may report conflicts.  They're not real conflicts unless
they're also reported by "cvs update -j... -j...", in which case they
might mean that PWS tweaked something without posting it, or that you
missed a patch, or that PWS missed one.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com



Messages sorted by: Reverse Date, Date, Thread, Author