Re: A flaw in finding minimal-complexity symbol conversions?
Michael Haggerty <[email protected]> Tue, 15 Dec 2009 06:22:33 +0100
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.devel |
|---|---|
| Message-ID | <[email protected]> |
Max Bowsher wrote: > I've been staring at a CVS repository I need to convert and one thing I > note is that there are often cases where a branch and a tag sprout from > the same point and need exactly the same fixup changes. > > After pondering this for a while, I'm mostly convinced that implementing > this is more trouble than it's worth, because you'd have to do something > along the lines of feeding back synthetic changesets into the > opening/closings logic, at which point my head starts to explode. > > But I just thought I'd bring up the topic, and see if anyone had some > interesting insight. One obvious deficiency in the parent-choosing code is that it does not consider file deletions. In other words, cvs2svn does not distinguish between a potential parent that is identical to the new symbol and one along the same LOD that has an *extra* file compared to the symbol. If your fixups mainly involve file deletions, this may be your culprit. I think that fixing this problem is tractable, though nontrivial. Vendor branches are also not considered as possible parents even when the vendor branch contents are identical to those on trunk. I have wondered whether it would be possible to eliminate trivial duplicates using some kind of content hash comparison. Effectively, git does this automatically because of its content-addressed filesystem; two commits that "coincidentally" have the same contents get the same SHA1 and so *are* one and the same (modulo a "git gc"). Perhaps cvs2svn could do something similar when choosing parents. (Obviously, the revision contents would not have to be hashed; it would be enough to hash a proxy, like the set of ids of CVS file revisions that make up the commit.) Michael ------------------------------------------------------ http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=2430436 To unsubscribe from this discussion, e-mail: [[email protected]].