##// END OF EJS Templates
transaction: issue "new obsmarkers" message at the end of the transaction...
transaction: issue "new obsmarkers" message at the end of the transaction Instead of making bundle2 code responsible for this, it seems better to have it handled and the transaction level. First, it means the message will be more consistently printed. Second it means we won't spam the message over and over if the data arrive in multiple piece. Third, we are planning to move other similar message at the same level (for the same reason) so having them all at the same location will help us to control the order they are displayed.

File last commit:

r41372:19c590ce default
r43164:38392d5b default
Show More
test-unamend.t
411 lines | 7.5 KiB | text/troff | Tads3Lexer
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 Test for command `hg unamend` which lives in uncommit extension
===============================================================
$ cat >> $HGRCPATH << EOF
> [alias]
> glog = log -G -T '{rev}:{node|short} {desc}'
> [experimental]
> evolution = createmarkers, allowunstable
> [extensions]
> rebase =
> amend =
> uncommit =
> EOF
Repo Setup
$ hg init repo
$ cd repo
Pulkit Goyal
tests: removes bashism from test-unamend.t...
r35196 $ for ch in a b c d e f g h; do touch $ch; echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
$ hg glog
@ 7:ec2426147f0e Added h
|
o 6:87d6d6676308 Added g
|
o 5:825660c69f0c Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
Trying to unamend when there was no amend done
$ hg unamend
abort: changeset must have one predecessor, found 0 predecessors
[255]
Unamend on clean wdir and tip
$ echo "bar" >> h
$ hg amend
$ hg exp
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
# Node ID c9fa1a715c1b7661c0fafb362a9f30bd75878d7d
# Parent 87d6d66763085b629e6d7ed56778c79827273022
Added h
diff -r 87d6d6676308 -r c9fa1a715c1b h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/h Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,2 @@
+foo
+bar
$ hg glog --hidden
@ 8:c9fa1a715c1b Added h
|
| x 7:ec2426147f0e Added h
|/
o 6:87d6d6676308 Added g
|
o 5:825660c69f0c Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
$ hg unamend
$ hg glog --hidden
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 @ 9:46d02d47eec6 Added h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 |
| x 8:c9fa1a715c1b Added h
|/
| x 7:ec2426147f0e Added h
|/
o 6:87d6d6676308 Added g
|
o 5:825660c69f0c Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
$ hg diff
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r 46d02d47eec6 h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- a/h Thu Jan 01 00:00:00 1970 +0000
+++ b/h Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,2 @@
foo
+bar
$ hg exp
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 # Node ID 46d02d47eec6ca096b8dcab3f8f5579c40c3dd9a
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 # Parent 87d6d66763085b629e6d7ed56778c79827273022
Added h
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r 87d6d6676308 -r 46d02d47eec6 h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/h Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+foo
$ hg status
M h
$ hg log -r . -T '{extras % "{extra}\n"}' --config alias.log=log
branch=default
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 unamend_source=c9fa1a715c1b7661c0fafb362a9f30bd75878d7d
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
Using unamend to undo an unamed (intentional)
$ hg unamend
$ hg exp
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 # Node ID 850ddfc1bc662997ec6094ada958f01f0cc8070a
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 # Parent 87d6d66763085b629e6d7ed56778c79827273022
Added h
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r 87d6d6676308 -r 850ddfc1bc66 h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/h Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,2 @@
+foo
+bar
$ hg diff
Unamend on a dirty working directory
$ echo "bar" >> a
$ hg amend
$ echo "foobar" >> a
$ echo "bar" >> b
$ hg status
M a
M b
$ hg unamend
$ hg status
M a
M b
$ hg diff
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r ec338db45d51 a
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- a/a Thu Jan 01 00:00:00 1970 +0000
+++ b/a Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,3 @@
foo
+bar
+foobar
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r ec338db45d51 b
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- a/b Thu Jan 01 00:00:00 1970 +0000
+++ b/b Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,2 @@
foo
+bar
Unamending an added file
$ hg ci -m "Added things to a and b"
$ echo foo > bar
$ hg add bar
$ hg amend
$ hg unamend
$ hg status
A bar
$ hg revert --all
forgetting bar
Unamending a removed file
$ hg remove a
$ hg amend
$ hg unamend
$ hg status
R a
? bar
$ hg revert --all
undeleting a
Unamending an added file with dirty wdir status
$ hg add bar
$ hg amend
$ echo bar >> bar
$ hg status
M bar
$ hg unamend
$ hg status
A bar
$ hg diff
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 diff -r 7f79409af972 bar
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bar Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,2 @@
+foo
+bar
$ hg revert --all
forgetting bar
Martin von Zweigbergk
tests: clean up after each test in test-unamend.t...
r41368 $ rm bar
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
Unamending in middle of a stack
$ hg glog
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 @ 19:7f79409af972 Added things to a and b
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 |
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 o 12:ec338db45d51 Added h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 |
o 6:87d6d6676308 Added g
|
o 5:825660c69f0c Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
$ hg up 5
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo bar >> f
$ hg amend
Martin von Zweigbergk
evolution: report new unstable changesets...
r35727 3 new orphan changesets
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 $ hg rebase -s 6 -d . -q
$ hg glog
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 o 23:03ddd6fc5af1 Added things to a and b
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 |
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 o 22:3e7b64ee157b Added h
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 |
o 21:49635b68477e Added g
|
@ 20:93f0e8ffab32 Added f
|
o 4:aa98ab95a928 Added e
|
o 3:62615734edd5 Added d
|
o 2:28ad74487de9 Added c
|
o 1:29becc82797a Added b
|
o 0:18d04c59bb5d Added a
Martin von Zweigbergk
unamend: allow unamending if allowunstable is set...
r35451 $ hg --config experimental.evolution=createmarkers unamend
abort: cannot unamend changeset with children
[255]
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 $ hg unamend
Martin von Zweigbergk
evolution: report new unstable changesets...
r35727 3 new orphan changesets
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
Trying to unamend a public changeset
Martin von Zweigbergk
unamend: allow unamending if allowunstable is set...
r35451 $ hg up -C 23
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 $ hg phase -r . -p
Martin von Zweigbergk
evolution: report new unstable changesets...
r35727 1 new phase-divergent changesets
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 $ hg unamend
abort: cannot unamend public changesets
Martin von Zweigbergk
unamend: allow unamending if allowunstable is set...
r35451 (see 'hg help phases' for details)
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 [255]
Testing whether unamend retains copies or not
$ hg status
$ hg mv a foo
$ hg ci -m "Moved a to foo"
$ hg exp --git
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 # Node ID cfef290346fbee5126313d7e1aab51d877679b09
# Parent 03ddd6fc5af19e028c44a2fd6d790dd22712f231
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 Moved a to foo
diff --git a/a b/foo
rename from a
rename to foo
$ hg mv b foobar
$ hg diff --git
diff --git a/b b/foobar
rename from b
rename to foobar
$ hg amend
$ hg exp --git
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 # Node ID eca050985275bb271ce3092b54e56ea5c85d29a3
# Parent 03ddd6fc5af19e028c44a2fd6d790dd22712f231
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 Moved a to foo
diff --git a/a b/foo
rename from a
rename to foo
diff --git a/b b/foobar
rename from b
rename to foobar
$ hg mv c wat
$ hg unamend
Retained copies in new prdecessor commit
$ hg exp --git
# HG changeset patch
# User test
# Date 0 0
# Thu Jan 01 00:00:00 1970 +0000
Pulkit Goyal
unamend: drop unused vars, query after taking lock, use ctx.hex() for extras...
r35201 # Node ID 552e3af4f01f620f88ca27be1f898316235b736a
# Parent 03ddd6fc5af19e028c44a2fd6d790dd22712f231
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 Moved a to foo
diff --git a/a b/foo
rename from a
rename to foo
Retained copies in working directoy
$ hg diff --git
diff --git a/b b/foobar
rename from b
rename to foobar
diff --git a/c b/wat
rename from c
rename to wat
Martin von Zweigbergk
tests: clean up after each test in test-unamend.t...
r41368 $ hg revert -qa
$ rm foobar wat
Martin von Zweigbergk
tests: add more tests of uncommit/unamend with copies...
r41369
Rename a->b, then amend b->c. After unamend, should look like b->c.
$ hg co -q 0
$ hg mv a b
$ hg ci -qm 'move to a b'
$ hg mv b c
$ hg amend
$ hg unamend
$ hg st --copies --change .
A b
a
R a
$ hg st --copies
A c
Martin von Zweigbergk
unamend: fix unamending of renamed rename...
r41372 b
Martin von Zweigbergk
tests: add more tests of uncommit/unamend with copies...
r41369 R b
$ hg revert -qa
$ rm c
Rename a->b, then amend b->c, and working copy change c->d. After unamend, should look like b->d
$ hg co -q 0
$ hg mv a b
$ hg ci -qm 'move to a b'
$ hg mv b c
$ hg amend
$ hg mv c d
$ hg unamend
$ hg st --copies --change .
A b
a
R a
$ hg st --copies
A d
Martin von Zweigbergk
unamend: fix unamending of renamed rename...
r41372 b
Martin von Zweigbergk
tests: add more tests of uncommit/unamend with copies...
r41369 R b