[PATCH 0 of 2] convert/gnuarch: followup of my previous fixes
Patrick Mézard
pmezard at gmail.com
Mon Jan 5 13:39:22 UTC 2009
Edouard Gomez a écrit :
> As promised:
>
> Two more fixes to deal with cat-logs correctly:
> - convert/gnuarch: recode cat-log parts to utf-8 to be hg.description friendly
> - convert/gnuarch: add cat-log payload to commit description
>
> There is only one 'bug' left in the current gnuarch backend. Explaination
> follows.
>
> In the arch repo:
> - add 'a' file
> - commit
> - rename 'a' to 'b'
> - add a new 'a' file
> - commit
>
> During hg conversion:
> - 'a' gets added
> - commit
> - 'a' is renamed to 'b'
> - 'a' is added
>
> An exception is thrown and probably says the file context is not ok
> hg wise. How can i deal with these case. Using hg cmdline, i add 'a'
> again and hg doesn't bail out.
>
> The exception:
> ** unknown exception encountered, details follow
> ** report bug details to http://www.selenic.com/mercurial/bts
> ** or mercurial at selenic.com
> ** Mercurial Distributed SCM (version ea0ccc5d63e0)
> ** Extensions loaded: churn, convert, gpg, hgk, mq, patchbomb, zeroconf
> Traceback (most recent call last):
> File "/home/ed/opt/mercurial/bin/hg", line 20, in <module>
> mercurial.dispatch.run()
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 20, in run
> sys.exit(dispatch(sys.argv[1:]))
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 29, in dispatch
> return _runcatch(u, args)
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 45, in _runcatch
> return _dispatch(ui, args)
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 367, in _dispatch
> ret = _runcommand(ui, options, cmd, d)
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 416, in _runcommand
> return checkargs()
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 376, in checkargs
> return cmdfunc()
> File "/home/ed/opt/mercurial//lib/python/mercurial/dispatch.py", line 361, in <lambda>
> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
> File "/home/ed/opt/mercurial//lib/python/mercurial/util.py", line 715, in check
> return func(*args, **kwargs)
> File "/home/ed/opt/mercurial//lib/python/hgext/convert/__init__.py", line 182, in convert
> return convcmd.convert(ui, src, dest, revmapfile, **opts)
> File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 338, in convert
> c.convert()
> File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 280, in convert
> self.copy(c)
> File "/home/ed/opt/mercurial//lib/python/hgext/convert/convcmd.py", line 251, in copy
> newnode = self.dest.putcommit(files, copies, parents, commit, self.source)
> File "/home/ed/opt/mercurial//lib/python/hgext/convert/hg.py", line 146, in putcommit
> a = self.repo.commitctx(ctx)
> File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 810, in commitctx
> update_dirstate=False)
> File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 857, in _commitctx
> new[f] = self.filecommit(fctx, m1, m2, linkrev, trp, changed)
> File "/home/ed/opt/mercurial//lib/python/mercurial/localrepo.py", line 723, in filecommit
> self.ui.debug(_(" %s: copy %s:%s\n") % (fn, cf, hex(cr)))
> TypeError: b2a_hex() argument 1 must be string or read-only buffer, not None
Should be fixed in crew-stable and crew, copy sources and destinations were recorded backward.
Thanks for reporting this.
--
Patrick Mézard
More information about the Mercurial-devel
mailing list