Re: Bug Report: can't add same revision twice

John Peacock <[email protected]> Tue, 08 Feb 2005 20:22:18 -0500
Newsgroups gmane.comp.version-control.revml
Message-ID <[email protected]>
Barrie Slaymaker wrote:
> This occurs when (in this case) VCP::Source::p4 tries to queue up the
> a revision it's already queued up.  So the question is why it thinks it
> needs to queue it up twice.  My guess is that that revision is occuring
> more than once in the metadata, perhaps as branch destinations, and
> that's tripping us up.

Isn't that what hashes are good for? ;-)

> 
> I used to have access to the Perl repository, but it lapsed a long time
> ago (my p4 repository browser was mothballed when VCP started up).
> Otherwise I'd run some tests here and help out.

If you tell me what to run, I can be your eyes and ears (off the list, of 
course).  You are infinitely more familiar with the internals of VCP, so you can 
tell me what p4 commands to run to give you information (like the metadata you 
were mentioning above) which can tell us what is going on.  I have no doubt that 
the Perl repository has probably seen all possible Perforce tricks over the years.

Chia-liang Kao has been able to mirror several subtrees of the Perl repository, 
but there is no way that the entire Perl repository can be moved to Subversion 
unless the entire p4 repos can be mirrored first.

> 
> Why do you need "--follow-branch-into"?
> 
> My first guess is that --follow-branch-into is (wrongly) causing
> VCP::Source::p4 to rescan a file that was also scanned due to the source
> specification.

Without that, I got the following error from svk:

	branchpoint has something without previous

which certainly seemed to suggest that there was something missing.  If it 
matters, without that option, it only got to revision 5 before it choked.  With 
that option, it apparently got to 343 (or was it 3599).

I specified --source-trunk and --source-branch options, which if I understand 
the code creates VCP::Filter::map objects like this:

VCP::Filter::map->new
         ("", ["$self->{source_trunk}/(...)", '$1<>',
               "$self->{source_branches}(*)/(...)", '$2<$1>']);

though I have to admit my eyes glaze over when I read the docs on 
VCP::Filter::map (no fault of your own, I'm sure ;).  I also tried to not 
specify anything at all (to see if it would just naturally convert the whole 
repository path for path.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4720 Boston Way
Lanham, MD 20706
301-459-3366 x.5010
fax 301-429-5747