--- a/mercurial/revset.py Fri Oct 01 23:16:11 2010 +0200
+++ b/mercurial/revset.py Tue Oct 05 20:25:51 2010 +0200
@@ -456,12 +456,15 @@
dest = l and getstring(l[0], _("outgoing wants a repository path")) or ''
dest = repo.ui.expandpath(dest or 'default-push', dest or 'default')
dest, branches = hg.parseurl(dest)
+ revs, checkout = hg.addbranchrevs(repo, repo, branches, [])
+ if revs:
+ revs = [repo.lookup(rev) for rev in revs]
other = hg.repository(hg.remoteui(repo, {}), dest)
repo.ui.pushbuffer()
o = discovery.findoutgoing(repo, other)
repo.ui.popbuffer()
cl = repo.changelog
- o = set([cl.rev(r) for r in repo.changelog.nodesbetween(o, None)[0]])
+ o = set([cl.rev(r) for r in repo.changelog.nodesbetween(o, revs)[0]])
return [r for r in subset if r in o]
def tagged(repo, subset, x):
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-revset-outgoing.t Tue Oct 05 20:25:51 2010 +0200
@@ -0,0 +1,92 @@
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > graphlog=
+ >
+ > [alias]
+ > tlog = log --template "{rev}:{node|short}: '{desc}' {branches}\n"
+ > tglog = tlog -G
+ > tout = out --template "{rev}:{node|short}: '{desc}' {branches}\n"
+ > EOF
+
+ $ hg init a
+ $ cd a
+
+ $ echo a > a
+ $ hg ci -Aqm0
+
+ $ echo foo >> a
+ $ hg ci -Aqm1
+
+ $ hg up -q 0
+
+ $ hg branch stable
+ marked working directory as branch stable
+ $ echo bar >> a
+ $ hg ci -qm2
+
+ $ hg tglog
+ @ 2:7bee6c3bea3a: '2' stable
+ |
+ | o 1:3560197d8331: '1'
+ |/
+ o 0:f7b1eb17ad24: '0'
+
+
+ $ cd ..
+
+ $ hg clone -q a#stable b
+
+ $ cd b
+ $ cat .hg/hgrc
+ [paths]
+ default = */a#stable (glob)
+
+ $ echo red >> a
+ $ hg ci -qm3
+
+ $ hg up -q default
+
+ $ echo blue >> a
+ $ hg ci -qm4
+
+ $ hg tglog
+ @ 3:f0461977a3db: '4'
+ |
+ | o 2:1d4099801a4e: '3' stable
+ | |
+ | o 1:7bee6c3bea3a: '2' stable
+ |/
+ o 0:f7b1eb17ad24: '0'
+
+
+ $ hg tout
+ comparing with */a (glob)
+ searching for changes
+ 2:1d4099801a4e: '3' stable
+
+ $ hg tlog -r 'outgoing()'
+ 2:1d4099801a4e: '3' stable
+
+ $ hg tout ../a#default
+ comparing with ../a
+ searching for changes
+ 3:f0461977a3db: '4'
+
+ $ hg tlog -r 'outgoing("../a#default")'
+ 3:f0461977a3db: '4'
+
+ $ echo "green = ../a#default" >> .hg/hgrc
+
+ $ cat .hg/hgrc
+ [paths]
+ default = */a#stable (glob)
+ green = ../a#default
+
+ $ hg tout green
+ comparing with */a (glob)
+ searching for changes
+ 3:f0461977a3db: '4'
+
+ $ hg tlog -r 'outgoing("green")'
+ 3:f0461977a3db: '4'
+