Re: A flaw in finding minimal-complexity symbol conversions?

Michael Haggerty <[email protected]> Thu, 17 Dec 2009 09:15:53 +0100
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <[email protected]>
Greg Ward wrote:
> [...]
> Hmmmmm.  I wonder if this has anything to do with my cute "sloppy
> fixups" hack.  The idea of sloppy fixups is to suppress a fixup that
> only deletes files, since that is almost certainly a CVS partial tag.
> [...]

Well, in a perfect world you might be right.  But real-world cvs2svn is
not perfect at picking tagging points, and one of its weaknesses is that
it does not consider file deletions.  This appears most obviously in the
following scenario:

work work work
commit1
delete file1
commit2
create TAG1

It is clear that TAG1 should sprout from the point after commit2,
because the tag should *not* include file1.  But cvs2svn doesn't weigh
the deletion of file1, so it doesn't care whether to make TAG1 sprout
from commit1 or commit2.  It ends up choosing the earlier one, namely
commit1, and only later realizes that it has to delete file1 as part of
the TAG1 fixup.

In fact, this problem is illustrated in the test
"tagging_after_delete()" in the test suite, which is XFail.  It is also
part of what's left of issue 55 [1].

From your description of your "sloppy fixups" hack, it sounds like the
resulting Mercurial repository would incorrectly include file1 in TAG1.

Michael

[1] http://cvs2svn.tigris.org/issues/show_bug.cgi?id=55

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=2431068

To unsubscribe from this discussion, e-mail: [[email protected]].