开发者

How do I skip subversion revisions with hgsvn pull?

开发者 https://www.devze.com 2023-02-16 09:51 出处:网络
I\'m trying to use Mercurial as a front end for Subversion, and have a strong interest in having all branches etc intact so I can see common changes etc.

I'm trying to use Mercurial as a front end for Subversion, and have a strong interest in having all branches etc intact so I can see common changes etc.

However, all of my subversion repositories create rather large issues for mercurial (1.8 with TortoiseHg 2.0 unfortunately, the ppa's seem to have deleted the older revisions...). The issues are varied and present far too much annoyance to list (or figure out).

How do I skip a svn revision that hg clone or hg pull complains about? Or do I just have to recursively get fewer and fewer revisions until I get a successful clone?

Also, I've tried working around this by exporting the patch from svn and applying it to my working directory; the exact same issue occurs (but at least now I've got something to look at...)

Issues I'm getting (but not specifically on topic for the question...)

Existing file overwrite attempt:

Achieved by hg init, set svn url and hg pull

pulling from svn+http://subversion/src/...
[r5061] StephenK: Updated properties
/home/stephenk/hgsubversion/hgsubversion/wrappers.py:337: DeprecationWarning: BaseException.message ha开发者_C百科s been deprecated as of Python 2.6
  ui.status('%s\n' % e.message)
This Subversion server is older than 1.4.0, and cannot satisfy replay requests.
In light of that, I'll fall back and do diffs, but it won't do as good a job. You should really upgrade your server.
[r5061] StephenK: Updated properties
file Synchronisation/stephenk.properties already exists
1 out of 1 hunks FAILED -- saving rejects to file Synchronisation/stephenk.properties.rej

General Hunk issues:

Achieved by hg clone

[r82] Louis: 
patching file src/main/.../Configuration.java
Hunk #1 FAILED at 10
Hunk #2 FAILED at 27
Hunk #3 FAILED at 81
3 out of 3 hunks FAILED -- saving rejects to file src/main/.../Configuration.java.rej

Common error text:

** unknown exception encountered, please report by visiting
**  http://mercurial.selenic.com/wiki/BugTracker
** Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3]
** Mercurial Distributed SCM (version 1.8)
** Extensions loaded: hgsubversion
Traceback (most recent call last):
  File "/usr/bin/hg", line 38, in <module>
    mercurial.dispatch.run()
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 36, in dispatch
    return _runcatch(u, args)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 58, in _runcatch
    return _dispatch(ui, args)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 601, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 406, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 655, in _runcommand
    return checkargs()
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 609, in checkargs
    return cmdfunc()
  File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 598, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/pymodules/python2.6/mercurial/util.py", line 433, in check
    return func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/mercurial/extensions.py", line 133, in wrap
    util.checksignature(origfn), *args, **kwargs)
  File "/usr/lib/pymodules/python2.6/mercurial/util.py", line 433, in check
    return func(*args, **kwargs)
  File "/home/stephenk/hgsubversion/hgsubversion/wrappers.py", line 457, in clone
    orig(ui, source, dest, **opts)
  File "/usr/lib/pymodules/python2.6/mercurial/util.py", line 433, in check
    return func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/mercurial/commands.py", line 825, in clone
    branch=opts.get('branch'))
  File "/usr/lib/pymodules/python2.6/mercurial/extensions.py", line 178, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/home/stephenk/hgsubversion/hgsubversion/wrappers.py", line 448, in hgclonewrapper
    data['srcrepo'], data['dstrepo'] = orig(ui, origsource, dest, **opts)
  File "/usr/lib/pymodules/python2.6/mercurial/hg.py", line 335, in clone
    dest_repo.clone(src_repo, heads=revs, stream=stream)
  File "/usr/lib/pymodules/python2.6/mercurial/localrepo.py", line 2014, in clone
    return self.pull(remote, heads)
  File "/home/stephenk/hgsubversion/hgsubversion/svnrepo.py", line 48, in wrapper
    return fn(self, *args, **opts)
  File "/home/stephenk/hgsubversion/hgsubversion/svnrepo.py", line 63, in pull
    return wrappers.pull(self, remote, heads, force)
  File "/home/stephenk/hgsubversion/hgsubversion/wrappers.py", line 325, in pull
    firstrun)
  File "/home/stephenk/hgsubversion/hgsubversion/stupid.py", line 592, in convert_rev
    ui, svn, meta, b, branches[b], r, parentctx)
  File "/home/stephenk/hgsubversion/hgsubversion/stupid.py", line 159, in diff_branchrev
    {}, strip=0)
  File "/usr/lib/pymodules/python2.6/mercurial/patch.py", line 1108, in applydiff
    eolmode=eolmode)
  File "/usr/lib/pymodules/python2.6/mercurial/patch.py", line 1135, in _applydiff
    rejects += closefile()
  File "/usr/lib/pymodules/python2.6/mercurial/patch.py", line 1122, in closefile
    current_file.write_rej()
  File "/usr/lib/pymodules/python2.6/mercurial/patch.py", line 519, in write_rej
    fp = self.opener(fname, 'w')
TypeError: 'NoneType' object is not callable

I'm on ubuntu, really want to have a ppa to manage it for me, and am getting frustrated with this interoperability. I'm thinking I may have to try a hg+git+svn double bridge or something


Consider upgrading the server to 1.4.x or later - things should work way way better then...

It looks (from the stack traces) like you've found some bugs in the diff+patch code we use to work around a lack of replay in old svn versions, but it's impossible to know what the problem is without a test repo we can play with.


...and today it works... Perhaps I was doing two hg pull operations from svn at once? I'm pretty sure one will fail, but it's the best I can go on for now...

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号