[Bug 6667] New: hg convert from svn creating broken changeset which replaces directory by a symlink
mercurial-bugs at mercurial-scm.org
mercurial-bugs at mercurial-scm.org
Fri Mar 11 08:14:14 UTC 2022
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: bugzilla at mercurial-scm.org
Reporter: pushbx at ulukai.org
CC: durin42 at gmail.com, mercurial-devel at 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.
More information about the Mercurial-devel
mailing list