[Bug 5657] New: converting repo with svn subrepo aborts
mercurial-bugs at mercurial-scm.org
mercurial-bugs at mercurial-scm.org
Mon Aug 14 16:53:02 UTC 2017
https://bz.mercurial-scm.org/show_bug.cgi?id=5657
Bug ID: 5657
Summary: converting repo with svn subrepo aborts
Product: Mercurial
Version: 4.2.2
Hardware: PC
OS: Linux
Status: UNCONFIRMED
Severity: feature
Priority: wish
Component: convert
Assignee: bugzilla at mercurial-scm.org
Reporter: sveinse at seldal.com
CC: durin42 at gmail.com, mercurial-devel at mercurial-scm.org
hg convert fails if the incoming hg repo contains a svn subrepo, *and* that it
has an arbitrary merge in its history.
The following script will provoke the error on hg 3.7.3 and 4.2.3:
hg init hg-error
cd hg-error
echo "nested = [svn]http://svn.apache.org/repos/asf/subversion/trunk/doc"
>.hgsub
hg add .hgsub
svn checkout http://svn.apache.org/repos/asf/subversion/trunk/doc nested
hg ci -m "Adding svn subrepo"
touch file1.txt
hg add file1.txt
hg ci -m "Adding file1"
hg up 0
touch file2.txt
hg add file2.txt
hg ci -m "Adding file2"
hg merge 1
hg ci -m "Merged"
cd ..
hg convert hg-error hg-error-copy --debug --traceback
Resulting in the following output:
initializing destination hg-error-copy repository
run hg source pre-conversion action
run hg sink pre-conversion action
scanning source...
sorting...
converting...
3 Adding svn subrepo
source: bfade17fe08899b639fae3cf5a42b3f4f24bfc56
committing files:
.hgsub
.hgsubstate
committing manifest
committing changelog
2 Adding file1
source: e4ef7e039eae085ea5f1c8424544ba5d4139b443
committing files:
file1.txt
committing manifest
committing changelog
1 Adding file2
source: c8fceef8bc8f7e224e4793d3b2ed96487e0db5d6
committing files:
file2.txt
committing manifest
committing changelog
0 Merged
source: 68c5279d17ec6200bb0c2e9a8016e6738ac09d44
resolving manifests
branchmerge: True, force: True, partial: False
ancestor: bfade17fe088, local: c8fceef8bc8f, remote: e4ef7e039eae
svn: warning: W155007: '/home/sveinse/hg-error-copy/nested' is not a working
copy
run hg sink post-conversion action
run hg source post-conversion action
Traceback (most recent call last):
File "/home/sveinse/build/mercurial-4.2.3/mercurial/scmutil.py", line 146, in
callcatch
return func()
File "/home/sveinse/build/mercurial-4.2.3/mercurial/dispatch.py", line 285,
in _runcatchfunc
return _dispatch(req)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/dispatch.py", line 912,
in _dispatch
cmdpats, cmdoptions)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/dispatch.py", line 648,
in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/dispatch.py", line 920,
in _runcommand
return cmdfunc()
File "/home/sveinse/build/mercurial-4.2.3/mercurial/dispatch.py", line 909,
in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/util.py", line 1080, in
check
return func(*args, **kwargs)
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/__init__.py", line
437, in convert
return convcmd.convert(ui, src, dest, revmapfile, **opts)
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/convcmd.py", line
611, in convert
c.convert(sortmode)
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/convcmd.py", line
522, in convert
self.copy(c)
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/convcmd.py", line
490, in copy
source, self.map, full, cleanp2)
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/hg.py", line 327, in
putcommit
for file in self._calculatemergedfiles(source, p1ctx, p2ctx):
File "/home/sveinse/build/mercurial-4.2.3/hgext/convert/hg.py", line 209, in
_calculatemergedfiles
False, # followcopies
File "/home/sveinse/build/mercurial-4.2.3/mercurial/extensions.py", line 231,
in closure
return func(*(args + a), **kw)
File "/home/sveinse/build/mercurial-4.2.3/hgext/largefiles/overrides.py",
line 471, in overridecalculateupdates
repo, p1, p2, pas, branchmerge, force, acceptremote, *args, **kwargs)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/merge.py", line 962, in
calculateupdates
acceptremote, followcopies)
File "/home/sveinse/build/mercurial-4.2.3/mercurial/merge.py", line 821, in
manifestmerge
if any(wctx.sub(s).dirty() for s in wctx.substate):
File "/home/sveinse/build/mercurial-4.2.3/mercurial/merge.py", line 821, in
<genexpr>
if any(wctx.sub(s).dirty() for s in wctx.substate):
File "/home/sveinse/build/mercurial-4.2.3/mercurial/subrepo.py", line 1206,
in dirty
if self._state[1] in self._wcrevs() or ignoreupdate:
File "/home/sveinse/build/mercurial-4.2.3/mercurial/subrepo.py", line 1161,
in _wcrevs
output, err = self._svncommand(['info', '--xml'])
File "/home/sveinse/build/mercurial-4.2.3/mercurial/subrepo.py", line 1144,
in _svncommand
% p.returncode)
Abort: svn: E155007: '/home/sveinse/hg-error-copy/nested' is not a working copy
abort: svn: E155007: '/home/sveinse/hg-error-copy/nested' is not a working copy
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list