[PATCH 2 of 2] push: warn after pushing draft changesets with tags
Nathan Goldbaum
nathan12343 at gmail.com
Thu Mar 10 21:47:32 EST 2016
# HG changeset patch
# User Nathan Goldbaum <ngoldbau at illinois.edu>
# Date 1457664319 21600
# Thu Mar 10 20:45:19 2016 -0600
# Node ID fa56f5ded2ef6c9b0a0bec00f42c252c51e2f094
# Parent 4cbd3237f1e5b4f442c4ee527d977ace2f6ce619
push: warn after pushing draft changesets with tags
diff -r 4cbd3237f1e5 -r fa56f5ded2ef mercurial/commands.py
--- a/mercurial/commands.py Thu Mar 10 17:31:38 2016 -0600
+++ b/mercurial/commands.py Thu Mar 10 20:45:19 2016 -0600
@@ -5846,6 +5846,19 @@ def push(ui, repo, dest=None, **opts):
elif not result and pushop.bkresult:
result = 2
+ # warn if any draft changesets with tags were pushed
+ if not result:
+ for rev in pushop.outgoing.missing:
+ ctx = repo[rev]
+ tag_names = ctx.tags()
+ if 'tip' in tag_names:
+ tag_names.remove('tip')
+ if tag_names and ctx.phase() == phases.draft:
+ tag_names = ["'" + t + "'" for t in tag_names]
+ tag_names = ' and '.join(tag_names)
+ ui.warn(_('pushing draft changeset tagged %s '
+ 'to a non-publishing repository\n') % tag_names)
+
return result
@command('recover', [])
diff -r 4cbd3237f1e5 -r fa56f5ded2ef tests/test-hardlinks.t
--- a/tests/test-hardlinks.t Thu Mar 10 17:31:38 2016 -0600
+++ b/tests/test-hardlinks.t Thu Mar 10 20:45:19 2016 -0600
@@ -213,6 +213,7 @@ r4 has hardlinks in the working dir (not
2 r4/.hg/cache/branch2-served
2 r4/.hg/cache/rbc-names-v1
2 r4/.hg/cache/rbc-revs-v1
+ 2 r4/.hg/cache/tags2-visible
2 r4/.hg/dirstate
2 r4/.hg/hgrc
2 r4/.hg/last-message.txt
@@ -249,6 +250,7 @@ Update back to revision 11 in r4 should
2 r4/.hg/cache/branch2-served
2 r4/.hg/cache/rbc-names-v1
2 r4/.hg/cache/rbc-revs-v1
+ 2 r4/.hg/cache/tags2-visible
1 r4/.hg/dirstate
2 r4/.hg/hgrc
2 r4/.hg/last-message.txt
diff -r 4cbd3237f1e5 -r fa56f5ded2ef tests/test-push-warn.t
--- a/tests/test-push-warn.t Thu Mar 10 17:31:38 2016 -0600
+++ b/tests/test-push-warn.t Thu Mar 10 20:45:19 2016 -0600
@@ -88,6 +88,23 @@ Specifying a revset that evaluates to nu
adding file changes
added 2 changesets with 1 changes to 1 files
+Warn about pushing a draft, tagged changeset to a non-publishing repository
+
+ $ echo "[phases]" >> ../a/.hg/hgrc
+ $ echo "publish = False" >> ../a/.hg/hgrc
+ $ echo "foobar" > t5
+ $ hg add t5
+ $ hg commit -m "5"
+ $ hg tag tag-name
+ $ hg push ../a
+ pushing to ../a
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 2 files
+ pushing draft changeset tagged 'tag-name' to a non-publishing repository
+
$ cd ..
$ hg init c
More information about the Mercurial-devel
mailing list