Re: [WORKAROUND] parsecvs losing files
From: Alex Bennee <hidden>
Date: 2016-06-15 22:44:39
On Wed, May 28, 2008 at 6:03 PM, Pierre Habouzit [off-list ref] wrote:
Sorry for the top posting but the git list isn't really the upstream for parsecvs. I'm now Cc-ing keithp who is the author :)
I shall keep CC'ing git@ for visibility if anyone else comes across this :-)
On Wed, May 28, 2008 at 04:53:30PM +0000, Alex Bennee wrote:quoted
On Wed, May 28, 2008 at 3:50 PM, Alex Bennee [off-list ref] wrote:quoted
Hi, <snip> Anyway today I noticed it had failed to import a sub-directory of the project (not a bit I usually build).
<snip>
quoted
Well in answer to myself parsecvs does get confused. In an example failed to import file: Load: third-party/libxml/runtest.c,v 8207 of 79070 /export/git/master.cvs/third-party/libxml/runtest.c,v spliced: 1.1.1.1 1.1 Sorted heads for /export/git/master.cvs/third-party/libxml/runtest.c,v master 1.1 master > BRANCH-3-5-branch 1.1.1.1.0.2 master > BRANCH-3-5-16-branch 1.1.1.1.0.4 building branches for /export/git/master.cvs/third-party/libxml/runtest.c,v file sha1: b694d565caf10fedbc7566f2bf15b893c57d5a19 file sha1: b694d565caf10fedbc7566f2bf15b893c57d5a19 file has 2 revisions An lo, looking at the branches mentioned these missing files are there. Trouble is the files should be in a number of branches, looking at the ,v file in question:
<snip>
quoted
BRANCH-3-3-20-red-e1-opt-branch:1.1.1.1
<snip>
quoted
I notice looking at the log for some of the files that did make it that the CVS revisions for all the branches have a .0.[something] suffix which the missing branches in this case don't have.
<snip> So I understand how this has happened. This particular module was imported directly into the working branch at the time (BRANCH-3-3-20-red-e1-opt-branch) where as other modules where imported into the CVS HEAD and then branched into the current working branch. As a result the branch tag didn't have the magic 0 in it. We where able to work around the import failure by deleting the branch tag from the module and then branching it again. The new branch tag became: BRANCH-3-3-20-red-e1-opt-branch:1.1.1.1.0.6 which parsecvs was able to correctly parse and assign to the correct GIT branch on import. I'm guessing this is a corner case that could do with better handling but in our case it was solved by tweaking our CVS repository. -- Alex, homepage: http://www.bennee.com/~alex/