[PATCH] summary: adds a phase line (draft, secret) to the output
Gilles Moris
gilles.moris at free.fr
Thu May 14 15:48:03 UTC 2015
# HG changeset patch
# User Gilles Moris <gilles.moris at free.fr>
# Date 1431617918 -7200
# Thu May 14 17:38:38 2015 +0200
# Node ID 2ba8141dc322ef544159f82ab1fc2a3cb9920a08
# Parent 297ea0df75d0f7ab552fc8986d04c8196de8d9dd
summary: adds a phase line (draft, secret) to the output
The number of draft and secret changesets are currently not summarized.
This is an important information because the number of drafts give some rough
idea of the number of outgoing changesets in typical workflows, without needing
to probe a remote repository. And a non-zero number of secrets means that
those changeset will not be pushed.
If the repository is "dirty" - some draft or secret changesets exists - then
summary will display a line like:
phases: X drafts, Y secrets
By default, the line is not printed if the repository is "clean" - all
changesets are public - but if verbose is activated, it will display:
phases: (all public)
On the other hand, nothing will be printed if quiet is in action.
diff -r 297ea0df75d0 -r 2ba8141dc322 mercurial/commands.py
--- a/mercurial/commands.py Wed May 06 15:58:14 2015 -0700
+++ b/mercurial/commands.py Thu May 14 17:38:38 2015 +0200
@@ -5998,6 +5998,13 @@
ui.write(_('update: %d new changesets, %d branch heads (merge)\n') %
(new, len(bheads)))
+ draft = len(repo.revs('draft()'))
+ secret = len(repo.revs('secret()'))
+ if draft or secret:
+ ui.status(_('phases: %d drafts, %d secrets\n') % (draft, secret))
+ else:
+ ui.note(_('phases: (all public)\n'))
+
cmdutil.summaryhooks(ui, repo)
if opts.get('remote'):
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-backout.t
--- a/tests/test-backout.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-backout.t Thu May 14 17:38:38 2015 +0200
@@ -42,6 +42,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
commit option
@@ -69,6 +70,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 4 drafts, 0 secrets
$ echo ypples > a
$ hg commit -d '5 0' -m ypples
@@ -83,6 +85,7 @@
branch: default
commit: 1 unresolved (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
file that was removed is recreated
(this also tests that editor is not invoked if the commit message is
@@ -110,6 +113,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
backout of backout is as if nothing happened
@@ -124,6 +128,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 4 drafts, 0 secrets
across branch
@@ -144,6 +149,7 @@
branch: default
commit: (clean)
update: 1 new changesets (update)
+ phases: 2 drafts, 0 secrets
should fail
@@ -160,6 +166,7 @@
branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
+ phases: 3 drafts, 0 secrets
should fail
@@ -172,6 +179,7 @@
branch: default
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
+ phases: 3 drafts, 0 secrets
backout with merge
@@ -189,6 +197,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
remove line 1
@@ -213,6 +222,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
check line 1 is back
@@ -241,6 +251,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
without --merge
$ hg backout -d '3 0' 1 --tool=true
@@ -258,6 +269,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
with --merge
$ hg backout --merge -d '3 0' 1 --tool=true
@@ -302,6 +314,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
backout of merge should fail
@@ -332,6 +345,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 6 drafts, 0 secrets
$ hg rollback
repository tip rolled back to revision 4 (undo commit)
@@ -344,6 +358,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
$ hg backout -d '6 0' --parent 3 4 --tool=true
removing c
@@ -354,6 +369,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 6 drafts, 0 secrets
$ cd ..
@@ -394,6 +410,7 @@
branch: branch2
commit: 1 removed
update: (current)
+ phases: 3 drafts, 0 secrets
with --merge
(this also tests that editor is invoked if '--edit' is specified
@@ -424,6 +441,7 @@
branch: branch2
commit: 1 removed (merge)
update: (current)
+ phases: 4 drafts, 0 secrets
$ hg update -q -C 2
on branch2 with branch1 not merged, so file1 should still exist:
@@ -440,6 +458,7 @@
branch: branch2
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
+ phases: 4 drafts, 0 secrets
on branch2 with branch1 merged, so file1 should be gone:
@@ -458,6 +477,7 @@
branch: branch2
commit: (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
on branch1, so no file1 and file2:
@@ -474,6 +494,7 @@
branch: branch1
commit: (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
$ cd ..
@@ -553,6 +574,7 @@
branch: default
commit: 1 unresolved (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
$ hg resolve --all --debug
picked tool 'internal:merge' for foo (binary False symlink False)
merging foo
@@ -570,6 +592,7 @@
branch: default
commit: 1 modified, 1 unknown
update: (current)
+ phases: 3 drafts, 0 secrets
$ cat foo
one
two
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-bisect.t
--- a/tests/test-bisect.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-bisect.t Thu May 14 17:38:38 2015 +0200
@@ -190,6 +190,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 32 drafts, 0 secrets
$ hg bisect -g 1
Testing changeset 16:a2e6ea4973e9 (30 changesets remaining, ~4 tests)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-bookmarks.t
--- a/tests/test-bookmarks.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-bookmarks.t Thu May 14 17:38:38 2015 +0200
@@ -393,6 +393,7 @@
bookmarks: *Z Y x y
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
+ phases: 3 drafts, 0 secrets
test id
@@ -538,6 +539,7 @@
bookmarks: *Z Y x y
commit: 1 added, 1 unknown (new branch head)
update: 2 new changesets (update)
+ phases: 5 drafts, 0 secrets
$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating bookmark Z
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-commit-amend.t
--- a/tests/test-commit-amend.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-commit-amend.t Thu May 14 17:38:38 2015 +0200
@@ -72,6 +72,7 @@
branch: default
commit: 1 added, 1 unknown
update: (current)
+ phases: 2 drafts, 0 secrets
$ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend
transaction abort!
rollback completed
@@ -83,6 +84,7 @@
branch: default
commit: 1 added, 1 unknown
update: (current)
+ phases: 2 drafts, 0 secrets
Add new file:
$ hg ci --amend -m 'amend base1 new file'
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-commit-interactive.t
--- a/tests/test-commit-interactive.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-commit-interactive.t Thu May 14 17:38:38 2015 +0200
@@ -81,6 +81,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
Rename empty file
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-copy.t
--- a/tests/test-copy.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-copy.t Thu May 14 17:38:38 2015 +0200
@@ -19,6 +19,7 @@
branch: default
commit: 1 copied
update: (current)
+ phases: 1 drafts, 0 secrets
$ hg --debug commit -m "2"
committing files:
b
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-histedit-edit.t
--- a/tests/test-histedit-edit.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-histedit-edit.t Thu May 14 17:38:38 2015 +0200
@@ -246,6 +246,7 @@
branch: default
commit: 1 added (new branch head)
update: 1 new changesets (update)
+ phases: 7 drafts, 0 secrets
hist: 1 remaining (histedit --continue)
(test also that editor is invoked if histedit is continued for
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-histedit-no-change.t
--- a/tests/test-histedit-no-change.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-histedit-no-change.t Thu May 14 17:38:38 2015 +0200
@@ -183,6 +183,7 @@
branch: default
commit: 1 added, 1 unknown (new branch head)
update: 6 new changesets (update)
+ phases: 7 drafts, 0 secrets
hist: 2 remaining (histedit --continue)
$ hg histedit --abort 2>&1 | fixbundle
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-import.t
--- a/tests/test-import.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-import.t Thu May 14 17:38:38 2015 +0200
@@ -990,6 +990,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg diff --git -c tip
diff --git a/lib/place-holder b/lib/place-holder
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-largefiles-misc.t
--- a/tests/test-largefiles-misc.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-largefiles-misc.t Thu May 14 17:38:38 2015 +0200
@@ -228,6 +228,7 @@
branch: default
commit: 1 subrepos
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg st
$ hg st -S
A subrepo/large.txt
@@ -245,6 +246,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
$ echo "rev 2" > subrepo/large.txt
$ hg st -S
M subrepo/large.txt
@@ -254,6 +256,7 @@
branch: default
commit: 1 subrepos
update: (current)
+ phases: 3 drafts, 0 secrets
$ hg ci -m "this commit should fail without -S"
abort: uncommitted changes in subrepository 'subrepo'
(use --subrepos for recursive commit)
@@ -567,6 +570,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
largefiles: (no remote repo)
check messages when there is no files to upload:
@@ -581,6 +585,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
largefiles: (no files to upload)
$ hg -R clone2 outgoing --large
comparing with $TESTTMP/issue3651/src (glob)
@@ -608,6 +613,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
largefiles: 1 entities for 1 files to upload
$ hg -R clone2 outgoing --large
comparing with $TESTTMP/issue3651/src (glob)
@@ -643,6 +649,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
largefiles: 1 entities for 3 files to upload
$ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
comparing with $TESTTMP/issue3651/src (glob)
@@ -692,6 +699,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 6 drafts, 0 secrets
largefiles: 3 entities for 3 files to upload
$ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
comparing with $TESTTMP/issue3651/src (glob)
@@ -750,6 +758,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 6 drafts, 0 secrets
largefiles: 2 entities for 1 files to upload
$ hg -R clone2 outgoing --large -T "{rev}:{node|short}\n"
comparing with $TESTTMP/issue3651/src (glob)
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-largefiles.t
--- a/tests/test-largefiles.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-largefiles.t Thu May 14 17:38:38 2015 +0200
@@ -67,6 +67,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
largefiles: (no remote repo)
Commit preserved largefile contents.
@@ -999,6 +1000,7 @@
branch: default
commit: (clean)
update: 7 new changesets (update)
+ phases: 8 drafts, 0 secrets
$ rm "${USERCACHE}"/*
$ hg clone --all-largefiles -u 1 a a-clone1
@@ -1021,6 +1023,7 @@
branch: default
commit: (clean)
update: 6 new changesets (update)
+ phases: 8 drafts, 0 secrets
$ rm "${USERCACHE}"/*
$ hg clone --all-largefiles -U a a-clone-u
@@ -1030,6 +1033,7 @@
branch: default
commit: (clean)
update: 8 new changesets (update)
+ phases: 8 drafts, 0 secrets
Show computed destination directory:
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-merge1.t
--- a/tests/test-merge1.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-merge1.t Thu May 14 17:38:38 2015 +0200
@@ -40,6 +40,7 @@
branch: default
commit: (interrupted update)
update: 1 new changesets (update)
+ phases: 2 drafts, 0 secrets
$ rmdir b
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -49,6 +50,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
Prepare a basic merge
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-obsolete.t
--- a/tests/test-obsolete.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-obsolete.t Thu May 14 17:38:38 2015 +0200
@@ -164,6 +164,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
remote: 3 outgoing
$ hg summary --remote --hidden
@@ -172,6 +173,7 @@
branch: default
commit: (clean)
update: 3 new changesets, 4 branch heads (merge)
+ phases: 6 drafts, 0 secrets
remote: 3 outgoing
check that various commands work well with filtering
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-phases.t
--- a/tests/test-phases.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-phases.t Thu May 14 17:38:38 2015 +0200
@@ -242,6 +242,25 @@
1 0 B
0 0 A
+Test summary
+
+ $ hg summary -R clone-dest --verbose
+ parent: -1:000000000000 (no revision checked out)
+ branch: default
+ commit: (clean)
+ update: 5 new changesets (update)
+ phases: (all public)
+ $ hg summary -R initialrepo
+ parent: 7:17a481b3bccb tip
+ merge B' and E
+ branch: default
+ commit: (clean)
+ update: 1 new changesets, 2 branch heads (merge)
+ phases: 3 drafts, 3 secrets
+ $ hg summary -R initialrepo --quiet
+ parent: 7:17a481b3bccb tip
+ update: 1 new changesets, 2 branch heads (merge)
+
Test revset
$ cd initialrepo
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-rebase-parameters.t
--- a/tests/test-rebase-parameters.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-rebase-parameters.t Thu May 14 17:38:38 2015 +0200
@@ -476,6 +476,7 @@
branch: default
commit: 1 modified, 1 unresolved (merge)
update: (current)
+ phases: 3 drafts, 0 secrets
rebase: 0 rebased, 1 remaining (rebase --continue)
$ hg resolve -l
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-rename.t
--- a/tests/test-rename.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-rename.t Thu May 14 17:38:38 2015 +0200
@@ -20,6 +20,7 @@
branch: default
commit: 1 renamed
update: (current)
+ phases: 1 drafts, 0 secrets
$ hg status -C
A d2/c
d1/d11/a1
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-revert.t
--- a/tests/test-revert.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-revert.t Thu May 14 17:38:38 2015 +0200
@@ -360,6 +360,7 @@
branch: default
commit: 2 modified, 1 removed (merge)
update: (current)
+ phases: 3 drafts, 0 secrets
clarifies who added what
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-shelve.t
--- a/tests/test-shelve.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-shelve.t Thu May 14 17:38:38 2015 +0200
@@ -782,6 +782,7 @@
bookmarks: *test
commit: 2 unknown (clean)
update: (current)
+ phases: 5 drafts, 0 secrets
$ hg shelve --delete --stat
abort: options '--delete' and '--stat' may not be used together
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-strip.t
--- a/tests/test-strip.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-strip.t Thu May 14 17:38:38 2015 +0200
@@ -526,6 +526,7 @@
branch: default
commit: 1 modified, 1 unknown, 1 unresolved
update: (current)
+ phases: 2 drafts, 0 secrets
mq: 3 unapplied
$ echo c > b
@@ -553,6 +554,7 @@
branch: default
commit: 1 modified, 1 unknown
update: (current)
+ phases: 1 drafts, 0 secrets
mq: 3 unapplied
Strip adds, removes, modifies with --keep
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-subrepo-svn.t
--- a/tests/test-subrepo-svn.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-subrepo-svn.t Thu May 14 17:38:38 2015 +0200
@@ -72,6 +72,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg ci -moops
nothing changed
[1]
@@ -96,6 +97,7 @@
branch: default
commit: 1 modified, 1 subrepos
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg commit --subrepos -m 'Message!' | grep -v Updating
committing subrepository s
Sending*s/alpha (glob)
@@ -136,6 +138,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
$ echo a > s/a
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-subrepo.t
--- a/tests/test-subrepo.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-subrepo.t Thu May 14 17:38:38 2015 +0200
@@ -38,6 +38,7 @@
branch: default
commit: 1 added, 1 subrepos
update: (current)
+ phases: 1 drafts, 0 secrets
$ hg ci -m1
test handling .hgsubstate "added" explicitly.
@@ -83,6 +84,7 @@
branch: default
commit: 1 subrepos
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg co -C 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg sum
@@ -91,6 +93,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 2 drafts, 0 secrets
commands that require a clean repo should respect subrepos
@@ -113,6 +116,7 @@
branch: default
commit: 1 subrepos
update: (current)
+ phases: 2 drafts, 0 secrets
$ hg ci -m2
committing subrepository s
committing subrepository s/ss (glob)
@@ -122,6 +126,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 3 drafts, 0 secrets
test handling .hgsubstate "modified" explicitly.
diff -r 297ea0df75d0 -r 2ba8141dc322 tests/test-url-rev.t
--- a/tests/test-url-rev.t Wed May 06 15:58:14 2015 -0700
+++ b/tests/test-url-rev.t Thu May 14 17:38:38 2015 +0200
@@ -101,6 +101,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 4 drafts, 0 secrets
remote: 2 outgoing
$ hg -q outgoing '../clone#foo'
2:faba9097cad4
@@ -110,6 +111,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 4 drafts, 0 secrets
remote: 1 outgoing
$ hg -q --cwd ../clone incoming '../repo#foo'
@@ -282,6 +284,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
remote: 1 outgoing
$ hg summary --remote --config paths.default='../clone#foo' --config paths.default-push='../clone'
@@ -290,6 +293,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
remote: 2 outgoing
$ hg summary --remote --config paths.default='../clone' --config paths.default-push='../clone#foo'
@@ -298,6 +302,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
remote: 1 outgoing
$ hg clone -q -r 0 . ../another
@@ -311,6 +316,7 @@
branch: default
commit: (clean)
update: (current)
+ phases: 1 drafts, 0 secrets
remote: 1 outgoing
$ cd ..
More information about the Mercurial-devel
mailing list