diff --git a/hgext/fetch.py b/hgext/fetch.py index 0b6f12495276ea2551bb2cf191da7d4b9313e5be_aGdleHQvZmV0Y2gucHk=..03b13d853dc6cba5a458803eea82e9c6751ec162_aGdleHQvZmV0Y2gucHk= 100644 --- a/hgext/fetch.py +++ b/hgext/fetch.py @@ -79,10 +79,12 @@ ui.status(_('pulling from %s\n') % util.hidepassword(ui.expandpath(source))) revs = None - if opts['rev'] and not other.local(): - raise util.Abort(_("fetch -r doesn't work for remote repositories yet")) - elif opts['rev']: - revs = [other.lookup(rev) for rev in opts['rev']] + if opts['rev']: + if not other.local(): + raise util.Abort(_("fetch -r doesn't work for remote " + "repositories yet")) + else: + revs = [other.lookup(rev) for rev in opts['rev']] modheads = repo.pull(other, heads=revs) return postincoming(other, modheads) diff --git a/tests/test-fetch b/tests/test-fetch index 0b6f12495276ea2551bb2cf191da7d4b9313e5be_dGVzdHMvdGVzdC1mZXRjaA==..03b13d853dc6cba5a458803eea82e9c6751ec162_dGVzdHMvdGVzdC1mZXRjaA== 100755 --- a/tests/test-fetch +++ b/tests/test-fetch @@ -24,6 +24,10 @@ hg clone c d hg clone c e +# We cannot use the default commit message if fetching from a local +# repo, because the path of the repo will be included in the commit +# message, making every commit appear different. + echo % should merge c into a hg --cwd c fetch -d '4 0' -m 'automated merge' ../a ls c @@ -49,4 +53,4 @@ hg --cwd g ci -d '6 0' -Amg echo % should merge f into g -hg --cwd g fetch --switch ../f +hg --cwd g fetch -d '7 0' --switch -m 'automated merge' ../f diff --git a/tests/test-fetch.out b/tests/test-fetch.out index 0b6f12495276ea2551bb2cf191da7d4b9313e5be_dGVzdHMvdGVzdC1mZXRjaC5vdXQ=..03b13d853dc6cba5a458803eea82e9c6751ec162_dGVzdHMvdGVzdC1mZXRjaC5vdXQ= 100644 --- a/tests/test-fetch.out +++ b/tests/test-fetch.out @@ -70,4 +70,4 @@ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved merging with 3:cc6a3744834d 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -new changeset 4:96d2275e70b4 merges remote changes with local +new changeset 4:55aa4f32ec59 merges remote changes with local