https://bz.mercurial-scm.org/show_bug.cgi?id=6667
Bug ID: 6667 Summary: hg convert from svn creating broken changeset which replaces directory by a symlink Product: Mercurial Version: 6.1 Hardware: PC OS: Linux Status: UNCONFIRMED Severity: bug Priority: wish Component: convert Assignee: bugzi...@mercurial-scm.org Reporter: pus...@ulukai.org CC: duri...@gmail.com, mercurial-devel@mercurial-scm.org Python Version: --- During my attempts to mirror an svn repo into a hg repo using hg convert, I came across a problematic changeset. It appears to delete a file in a directory, and (within the same changeset) replace that directory by a symlink. The default changeset as created by hg convert is broken; attempting to update through it always fails. As shown below, hg up fails with "abort: path '...' traverses symbolic link '...'". I was able to recreate the problematic changeset manually (shown below after the test case), and also to export the recreated changeset. However, hg import of that exported changeset fails. I assume this is a different bug, so I reported it in https://bz.mercurial-scm.org/show_bug.cgi?id=6666 Test case: (Note: Some files in the SvarDOS repo may be allowed only for "personal noncommercial use", but they are all allowed to be redistributed.) test$ svnadmin create svn-mirror test$ echo '#!/bin/sh' > svn-mirror/hooks/pre-revprop-change test$ chmod +x svn-mirror/hooks/pre-revprop-change test$ svnsync init "file://$PWD/svn-mirror" svn://svn.svardos.org/svardos Copied properties for revision 0 (svn:sync-* properties skipped). test$ svnsync sync "file://$PWD/svn-mirror" > /dev/null test$ hg convert --config hooks.pretxncommit.checkcommitmessage=true svn-mirror converted.hg --rev 670 --config convert.svn.startrev=660 initializing destination converted.hg repository scanning source... sorting... converting... 10 clarify system for pkgnet command 9 provide German translation for pkg.ama 8 unicode.map is not stored in svn, and title version autogenerated 7 help no longer copied to web root, use a link file instead and point phpamb to a dir 6 multi-lang help selector 5 change encoding from ANSI to UTF-8 4 changed wording 3 added FreeDOS 1.3 and fixed typo 2 translated help-de/freedos.ama to German 1 help screen suggests *.svp for extension of package files + version bump to 20 220214 + source code package generated via makefile 0 ver 20220214 frozen to tags test$ hg -R converted.hg/ up abort: path 'website/help/help-en.amb' traverses symbolic link 'website/help' test$ Script showing how to manually recreate the problematic changeset: (in this case the hg repo was created without a convert.svn.startrev config option; fdbfba91f is the problematic changeset) hg up -r "parents(fdbfba91f)" hg cat -r fdbfba91f website/index.php > website/index.php hg rm website/help/help-en.amb hg rm website/help ln -s ../help website/help hg add website/help hg ci -m "help no longer copied to web root, use a link file instead and point p hpamb to a dir" -d "Sat Feb 12 20:39:48 2022 +0000" -u "mateusz.viste" --config hooks.pretxncommit.checkcommitmessage=true -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel