tests/test-execute-bit.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 15 Feb 2023 11:51:58 +0100
changeset 50085 28dfb2df4ab9
parent 49585 55c6ebd11cb9
permissions -rw-r--r--
commit: use `dirstate.change_files` to scope the associated `addremove` This was significantly more complicated than I expected, because multiple extensions get in the way. I introduced a context that lazily open the transaction and associated context to work around these complication. See the inline documentation for details. Introducing the wrapping transaction remove the need for dirstate-guard (one of the ultimate goal of all this), and slightly affect the result of a `hg rollback` after a `hg commit --addremove`. That last part is deemed fine. It aligns the behavior with what happens after a failed `hg commit --addremove` and nobody should be using `hg rollback` anyway. The small output change in the test come from the different transaction timing and fact the transaction now backup the dirstate before the addremove, which might mean "no file to backup" when the repository starts from an empty state.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 18334
diff changeset
     1
#require execbit
5490
bf2bb53e5d2b See if execute bit is honoured when we go back in time
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
49585
55c6ebd11cb9 tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48394
diff changeset
     3
  $ hg init repo
55c6ebd11cb9 tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48394
diff changeset
     4
  $ cd repo
12190
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
     5
  $ echo a > a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
     6
  $ hg ci -Am'not executable'
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
     7
  adding a
5495
363ba35f55bd test-execute-bit: skip if execute-bit is not supported
Patrick Mezard <pmezard@gmail.com>
parents: 5490
diff changeset
     8
12190
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
     9
  $ chmod +x a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    10
  $ hg ci -m'executable'
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    11
  $ hg id
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    12
  79abf14474dc tip
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    13
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    14
Make sure we notice the change of mode if the cached size == -1:
5490
bf2bb53e5d2b See if execute bit is honoured when we go back in time
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    15
12190
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    16
  $ hg rm a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    17
  $ hg revert -r 0 a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    18
  $ hg debugstate
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    19
  n   0         -1 unset               a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    20
  $ hg status
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    21
  M a
5490
bf2bb53e5d2b See if execute bit is honoured when we go back in time
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    22
12190
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    23
  $ hg up 0
18334
44bda93df90e merge: changing the mode of a file is also an update
Mads Kiilerich <mads@kiilerich.com>
parents: 12190
diff changeset
    24
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
12190
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    25
  $ hg id
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    26
  d69afc33ff8a
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    27
  $ test -x a && echo executable -- bad || echo not executable -- good
9231c629ec10 tests: unify test-execute-bit
Adrian Buehlmann <adrian@cadifra.com>
parents: 6158
diff changeset
    28
  not executable -- good
6158
23ffe82615d8 repo.status: also compare flags for files in the lookup list.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5495
diff changeset
    29