Thread (4 messages) flat view 4 messages, 2 authors, 2016-06-15

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help