##// END OF EJS Templates
tests: fix test-sparse-revlog...
tests: fix test-sparse-revlog This one is not covered by the CIbecause I requires an expensive artifact to be cached. So it goes out of think on regular basis (we should fix that…) The test ouput was affected by e706bb41fdb3 as we filtering now happens sooner, removing for the output.

File last commit:

r49836:9120c0cd stable
r50521:da636e7a default
Show More
test-unamend.t
462 lines | 8.8 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
Martin von Zweigbergk
rewriteutil: check for divergence...
r47784 > evolution.allowdivergence = true
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 > [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
Martin von Zweigbergk
unamend: abort if commit was not created by `hg [un]amend`...
r49836 abort: working copy parent was not created by 'hg amend' or 'hg unamend'
[10]
$ echo "bar" >> h
Trying to unamend when the obsmarker is missing
$ hg amend
$ hg debugobsolete --delete 0
deleted 1 obsolescence markers
$ hg unamend
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 abort: changeset must have one predecessor, found 0 predecessors
Martin von Zweigbergk
errors: use InputError in uncommit extension...
r47192 [10]
Martin von Zweigbergk
unamend: abort if commit was not created by `hg [un]amend`...
r49836 $ hg strip tip --config extensions.strip=
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/c9fa1a715c1b-06e5c233-backup.hg
$ hg up tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
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
Martin von Zweigbergk
rewriteutil: say how many commits would become orphan if commit is rewritten...
r47836 abort: cannot unamend changeset, as that will orphan 3 descendants
Martin von Zweigbergk
rewriteutil: point to help about instability when rewriting creates orphan...
r47782 (see 'hg help evolution.instability')
Martin von Zweigbergk
errors: raise more specific errors from rewriteutil...
r46457 [10]
Martin von Zweigbergk
unamend: allow unamending if allowunstable is set...
r35451
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
Martin von Zweigbergk
rewriteutil: give examples of public changesets that can't be rewritten...
r47835 abort: cannot unamend public changesets: 03ddd6fc5af1
Martin von Zweigbergk
unamend: allow unamending if allowunstable is set...
r35451 (see 'hg help phases' for details)
Martin von Zweigbergk
errors: raise more specific errors from rewriteutil...
r46457 [10]
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177
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
Matt Harbison
verify: avoid spurious integrity warnings in verbose mode (issue6172)...
r44572 $ hg verify -v
repository uses revlog format 1
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
checked 28 changesets with 16 changes to 11 files
Pulkit Goyal
unamend: move fb extension unamend to core...
r35177 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'
Dan Villiom Podlaski Christiansen
commit: warn the user when a commit already exists...
r46414 warning: commit already existed in the repository!
Martin von Zweigbergk
tests: add more tests of uncommit/unamend with copies...
r41369 $ hg mv b c
$ hg amend
Dan Villiom Podlaski Christiansen
commit: warn the user when a commit already exists...
r46414 warning: commit already existed in the repository!
Martin von Zweigbergk
tests: add more tests of uncommit/unamend with copies...
r41369 $ 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
Martin von Zweigbergk
tests: demonstrate how `hg unamend` fails on merge commits...
r49516
Try to unamend a merge
$ cd ..
$ hg init merge
$ cd merge
$ echo initial > initial
$ hg ci -Aqm initial
$ echo left > left
$ hg ci -Aqm left
$ hg co -q 0
$ echo right > right
$ hg ci -Aqm right
$ hg merge -q 1
$ hg ci -m merge
$ echo accidental > initial
$ hg st --rev 1 --rev .
A right
$ hg st --rev 2 --rev .
A left
$ hg amend
$ hg unamend
Martin von Zweigbergk
unamend: error out when running on merge commit...
r49517 abort: cannot unamend merge changeset
[10]