tests/test-abort-checkin.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Sun, 31 Aug 2014 13:01:00 +0200
changeset 22611 2ff28e07d7d6
parent 16913 f2719b387380
child 23172 e955549cd045
permissions -rw-r--r--
revert: properly back up added files with local modification These files were previously not backed up because the backup mechanism was not smart enough. This leads to data lose for the user since uncommitted contents were discarded. We now properly move the modified version to <filename>.orig before deleting it. We have to use a small hack to do a different action if "--no-backup" is specified. This is needed because the backup process is actually a move (not a copy) so the file is already missing when we backup. The internet kitten is a bit disapointed about that, but such is life. This patch concludes the "lets refactor revert" phases. We can now open the "Lets find stupid bug with renames and merge" phases. I'm sure that now that the code is clearer we could do it in another simpler way, but I consider the current improvement good enough for now.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
     1
  $ cat > abortcommit.py <<EOF
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
     2
  > from mercurial import util
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
     3
  > def hook(**args):
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
     4
  >     raise util.Abort("no commits allowed")
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
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    10
  $ echo "[extensions]" >> $HGRCPATH
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    11
  $ echo "mq=" >> $HGRCPATH
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    12
  $ echo "abortcommit = $abspath" >> $HGRCPATH
4140
193e0f8d9a47 test-abort-checkin: use a hook to abort the commit
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2990
diff changeset
    13
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    14
  $ hg init foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    15
  $ cd foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    16
  $ echo foo > foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    17
  $ hg add foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    18
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    19
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
    20
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
    21
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    22
  $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    23
  error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    24
  transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    25
  rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    26
  abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
    27
  [255]
11848
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    28
  $ hg ci -m foo
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    29
  error: pretxncommit.nocommits hook failed: no commits allowed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    30
  transaction abort!
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    31
  rollback completed
f54ff49393fb tests: unify test-abort-checkin
Martin Geisler <mg@lazybytes.net>
parents: 4140
diff changeset
    32
  abort: no commits allowed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11848
diff changeset
    33
  [255]
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
    34
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
    35
  $ cd ..