Mercurial > hg
annotate tests/test-custom-filters.t @ 24213:e0c1328df872
workingctx: use normal dirs() instead of dirstate.dirs()
The workingctx class was using dirstate.dirs() as it's implementation. The
sparse extension maintains a pruned down version of the dirstate, so this
resulted in the workingctx reporting an incorrect listing of directories
during merge calculations (it was detecting directory renames when it
shouldn't have).
The fix is to use the default implementation, which uses workingctx._manifest,
which unions the manifest with the dirstate to produce the correct overall
picture. This also produces more accurate output since it will no longer
return directories that have been entirely deleted in the dirstate.
Tests will be added to the sparse extension to detect regressions for this.
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 05 Mar 2015 22:16:28 -0800 |
parents | 4134686b83e1 |
children | 56b2bcea2529 |
rev | line source |
---|---|
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
1 $ hg init |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
2 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
3 $ cat > .hg/hgrc <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
4 > [extensions] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
5 > prefixfilter = prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
6 > [encode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
7 > *.txt = stripprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
8 > [decode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
9 > *.txt = insertprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
10 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
11 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
12 $ cat > prefix.py <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
13 > from mercurial import util |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
14 > def stripprefix(s, cmd, filename, **kwargs): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
15 > header = '%s\n' % cmd |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
16 > if s[:len(header)] != header: |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
17 > raise util.Abort('missing header "%s" in %s' % (cmd, filename)) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
18 > return s[len(header):] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
19 > def insertprefix(s, cmd): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
20 > return '%s\n%s' % (cmd, s) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
21 > def reposetup(ui, repo): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
22 > repo.adddatafilter('stripprefix:', stripprefix) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
23 > repo.adddatafilter('insertprefix:', insertprefix) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
24 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
25 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
26 $ cat > .hgignore <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
27 > .hgignore |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
28 > prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
29 > prefix.pyc |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
30 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
31 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
32 $ cat > stuff.txt <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
33 > Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
34 > Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
35 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
36 $ hg add stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
37 $ hg ci -m stuff |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
38 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
39 Repository data: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
40 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
41 $ hg cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
42 Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
43 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
44 Fresh checkout: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
45 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
46 $ rm stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
47 $ hg up -C |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
49 $ cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
50 Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
51 Some stuff to ponder very carefully. |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
52 $ echo "Very very carefully." >> stuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
53 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
54 M stuff.txt |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
55 |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
56 $ echo "Unauthorized material subject to destruction." > morestuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
57 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
58 Problem encoding: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
59 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
60 $ hg add morestuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
61 $ hg ci -m morestuff |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
62 abort: missing header "Copyright 2046, The Masters" in morestuff.txt |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12125
diff
changeset
|
63 [255] |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
64 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
65 M stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
66 A morestuff.txt |