Mercurial > hg > hg-git
changeset 355:63ddab4ef66c
tests: import test-push-r (with slight changes) from Mercurial
This lets us detect defects in our wrappers which would break
Mercurial when working against normal hg repositories with hg-git
enabled.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Sun, 15 Aug 2010 09:45:00 -0500 |
parents | 428c819f3135 |
children | ca0510dee2aa |
files | hggit/__init__.py hggit/hgrepo.py tests/test-push-r tests/test-push-r.out |
diffstat | 4 files changed, 188 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/__init__.py +++ b/hggit/__init__.py @@ -109,8 +109,11 @@ kwname = 'heads' if 'remoteheads' in inspect.getargspec(discovery.findoutgoing)[0]: kwname = 'remoteheads' - def findoutgoing(orig, local, remote, base=None, remoteheads=None, force=False, heads=None): - kw = {'force': force, 'base': base, kwname: locals()[kwname]} + def findoutgoing(orig, local, remote, *args, **kwargs): + kw = {} + kw.update(kwargs) + for val, k in zip(args, ('base', kwname, 'force')): + kw[k] = val if isinstance(remote, gitrepo.gitrepo): # clean up this cruft when we're 1.7-only, remoteheads and # the return value change happened between 1.6 and 1.7.
--- a/hggit/hgrepo.py +++ b/hggit/hgrepo.py @@ -19,8 +19,12 @@ git = GitHandler(self, self.ui) git.push(remote.path, revs, force) else: #pragma: no cover - return super(hgrepo, self).push(remote, force, revs, - newbranch=newbranch) + # newbranch was added in 1.6 + if newbranch is None: + return super(hgrepo, self).push(remote, force, revs) + else: + return super(hgrepo, self).push(remote, force, revs, + newbranch) def findoutgoing(self, remote, base=None, heads=None, force=False): if isinstance(remote, gitrepo):
new file mode 100755 --- /dev/null +++ b/tests/test-push-r @@ -0,0 +1,63 @@ +#!/bin/sh + +# bail if the user does not have dulwich +python -c 'import dulwich, dulwich.repo' || exit 80 + +echo "[extensions]" >> $HGRCPATH +echo "hggit=$(echo $(dirname $(dirname $0)))/hggit" >> $HGRCPATH +echo 'hgext.graphlog =' >> $HGRCPATH +echo 'hgext.bookmarks =' >> $HGRCPATH + +hg init test +cd test +cat >>afile <<EOF +0 +EOF +hg add afile +hg commit -m "0.0" +cat >>afile <<EOF +1 +EOF +hg commit -m "0.1" +cat >>afile <<EOF +2 +EOF +hg commit -m "0.2" +cat >>afile <<EOF +3 +EOF +hg commit -m "0.3" +hg update -C 0 +cat >>afile <<EOF +1 +EOF +hg commit -m "1.1" +cat >>afile <<EOF +2 +EOF +hg commit -m "1.2" +cat >fred <<EOF +a line +EOF +cat >>afile <<EOF +3 +EOF +hg add fred +hg commit -m "1.3" +hg mv afile adifferentfile +hg commit -m "1.3m" +hg update -C 3 +hg mv afile anotherfile +hg commit -m "0.3m" +cd .. +for i in 0 1 2 3 4 5 6 7 8; do + mkdir test-"$i" + hg --cwd test-"$i" init + hg -R test push -r "$i" test-"$i" + cd test-"$i" + hg verify + cd .. +done +cd test-8 +hg pull ../test-7 +hg verify
new file mode 100644 --- /dev/null +++ b/tests/test-push-r.out @@ -0,0 +1,114 @@ +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +1 files updated, 0 files merged, 2 files removed, 0 files unresolved +pushing to test-0 +searching for changes +adding changesets +adding manifests +adding file changes +added 1 changesets with 1 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 1 changesets, 1 total revisions +pushing to test-1 +searching for changes +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 2 changesets, 2 total revisions +pushing to test-2 +searching for changes +adding changesets +adding manifests +adding file changes +added 3 changesets with 3 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 3 changesets, 3 total revisions +pushing to test-3 +searching for changes +adding changesets +adding manifests +adding file changes +added 4 changesets with 4 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 4 changesets, 4 total revisions +pushing to test-4 +searching for changes +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 2 changesets, 2 total revisions +pushing to test-5 +searching for changes +adding changesets +adding manifests +adding file changes +added 3 changesets with 3 changes to 1 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +1 files, 3 changesets, 3 total revisions +pushing to test-6 +searching for changes +adding changesets +adding manifests +adding file changes +added 4 changesets with 5 changes to 2 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +2 files, 4 changesets, 5 total revisions +pushing to test-7 +searching for changes +adding changesets +adding manifests +adding file changes +added 5 changesets with 6 changes to 3 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +3 files, 5 changesets, 6 total revisions +pushing to test-8 +searching for changes +adding changesets +adding manifests +adding file changes +added 5 changesets with 5 changes to 2 files +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +2 files, 5 changesets, 5 total revisions +pulling from ../test-7 +searching for changes +adding changesets +adding manifests +adding file changes +added 4 changesets with 2 changes to 3 files (+1 heads) +(run 'hg heads' to see heads, 'hg merge' to merge) +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +4 files, 9 changesets, 7 total revisions