##// END OF EJS Templates
transplant: use peer of source repository as "remote" for "repo.pull()"...
transplant: use peer of source repository as "remote" for "repo.pull()" Before this patch, transplant with "--merge" option fails with traceback unexpectedly, if it causes pull from the source repository on the local host. "discovery.findcommonincoming()" invokes "capable()" method on the object given from "localrepository.pull()", but it is "localrepository" object in this case and doesn't have such method. This patch uses peer object of source repository as "remote" argument for "localrepository.pull()" invocation like other invocations of it in transplant.py.

File last commit:

r17802:a421459b default
r20020:6fb59247 default
Show More
test-issue2137.t
56 lines | 1.6 KiB | text/troff | Tads3Lexer
http://mercurial.selenic.com/bts/issue2137
Setup:
create a little extension that has 3 side-effects:
1) ensure changelog data is not inlined
2) make revlog to use lazyparser
3) test that repo.lookup() works
1 and 2 are preconditions for the bug; 3 is the bug.
$ cat > commitwrapper.py <<EOF
> from mercurial import extensions, node, revlog
>
> def reposetup(ui, repo):
> class wraprepo(repo.__class__):
> def commit(self, *args, **kwargs):
> result = super(wraprepo, self).commit(*args, **kwargs)
> tip1 = node.short(repo.changelog.tip())
> tip2 = node.short(repo.lookup(tip1))
> assert tip1 == tip2
> ui.write('new tip: %s\n' % tip1)
> return result
> repo.__class__ = wraprepo
>
> def extsetup(ui):
> revlog._maxinline = 8 # split out 00changelog.d early
> revlog._prereadsize = 8 # use revlog.lazyparser
> EOF
$ cat >> $HGRCPATH <<EOF
> [extensions]
> commitwrapper = `pwd`/commitwrapper.py
> EOF
$ hg init repo1
$ cd repo1
$ echo a > a
$ hg commit -A -m'add a with a long commit message to make the changelog a bit bigger'
adding a
new tip: 553596fad57b
Test that new changesets are visible to repo.lookup():
$ echo a >> a
$ hg commit -m'one more commit to demonstrate the bug'
new tip: 799ae3599e0e
$ hg tip
changeset: 1:799ae3599e0e
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: one more commit to demonstrate the bug
$ cd ..