# HG changeset patch # User Anton Shestakov # Date 1591947763 -28800 # Node ID 60317988f5ae1430d762c3a1565069ca47533599 # Parent 35e7c6f6d6dc98761d0697e21477fd619cbcd3c1 topic: substitute current topic when `--topic .` is used for outgoing/push This special case is similar to `hg outgoing/push -B .`, where currently active bookmark is used instead of `.`. diff -r 35e7c6f6d6dc -r 60317988f5ae CHANGELOG --- a/CHANGELOG Thu Jun 11 23:38:55 2020 +0800 +++ b/CHANGELOG Fri Jun 12 15:42:43 2020 +0800 @@ -9,6 +9,7 @@ * stack: support foo#stack relation revset (hg-5.4+ only) * topic: hg push --topic does-not-exist now doesn't try to push unrelated changesets and aborts instead + * topic: hg outgoing/push --topic . will use current topic 10.0.0 -- 2020-05-09 -------------------- diff -r 35e7c6f6d6dc -r 60317988f5ae hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Thu Jun 11 23:38:55 2020 +0800 +++ b/hgext3rd/topic/__init__.py Fri Jun 12 15:42:43 2020 +0800 @@ -1269,7 +1269,10 @@ def pushoutgoingwrap(orig, ui, repo, *args, **opts): if opts.get('topic'): - topic = b'literal:' + opts['topic'] + topic = opts['topic'] + if topic == b'.': + topic = repo.currenttopic + topic = b'literal:' + topic topicrevs = repo.revs(b'topic(%s) - obsolete()', topic) opts.setdefault('rev', []).extend(topicrevs) return orig(ui, repo, *args, **opts) diff -r 35e7c6f6d6dc -r 60317988f5ae tests/test-topic-push.t --- a/tests/test-topic-push.t Thu Jun 11 23:38:55 2020 +0800 +++ b/tests/test-topic-push.t Fri Jun 12 15:42:43 2020 +0800 @@ -216,6 +216,14 @@ abort: topic 'nonexistent' does not exist! [255] + $ hg up babar + switching to topic babar + 2 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg outgoing draft --topic . + comparing with $TESTTMP/draft + searching for changes + 5 default babar draft C'A + $ hg outgoing draft --topic babar comparing with $TESTTMP/draft searching for changes