annotate tests/test-abort-checkin.t @ 26677:e9b3d523f2e6

rebase: properly abort when destination is public (issue4896) After rebasing a set of changes onto a public changeset and having the first one be skipped, if you try to abort, the operation fails. This fix adds a check to disallow the target rev into the dstates list within the abort function. This list is checked for immutable states before the rest of abort does its thing.
author Christian Delahousse <cdelahousse@fb.com>
date Tue, 13 Oct 2015 14:06:51 -0700
parents 56b2bcea2529
children f798709eb4b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
1 $ cat > abortcommit.py <<EOF
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23172
diff changeset
2 > from mercurial import error
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
3 > def hook(**args):
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23172
diff changeset
4 > raise error.Abort("no commits allowed")
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
5 > def reposetup(ui, repo):
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
6 > repo.ui.setconfig("hooks", "pretxncommit.nocommits", hook)
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
7 > EOF
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
8 $ abspath=`pwd`/abortcommit.py
4140
193e0f8d9a47 test-abort-checkin: use a hook to abort the commit
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2990
diff changeset
9
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
10 $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
11 > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
12 > mq =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
13 > abortcommit = $abspath
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 16913
diff changeset
14 > EOF
4140
193e0f8d9a47 test-abort-checkin: use a hook to abort the commit
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2990
diff changeset
15
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
16 $ hg init foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
17 $ cd foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
18 $ echo foo > foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
19 $ hg add foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
20
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
21 mq may keep a reference to the repository so __del__ will not be
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
22 called and .hg/journal.dirstate will not be deleted:
2726
6bd351194a96 Add test mq keeping a reference to localrepo which can't remove journal on exit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
23
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
24 $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
25 error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
26 transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
27 rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
28 abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
29 [255]
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
30 $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
31 error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
32 transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
33 rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
34 abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
35 [255]
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
36
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
37 $ cd ..