Mercurial > hg
annotate tests/test-dirstate.t @ 49000:dd6b67d5c256 stable
rust: fix unsound `OwningDirstateMap`
As per the previous patch, `OwningDirstateMap` is unsound. Self-referential
structs are difficult to implement correctly in Rust since the compiler is
free to move structs around as much as it wants to. They are also very rarely
needed in practice, so the state-of-the-art on how they should be done within
the Rust rules is still a bit new.
The crate `ouroboros` is an attempt at providing a safe way (in the Rust sense)
of declaring self-referential structs. It is getting a lot attention and was
improved very quickly when soundness issues were found in the past: rather than
relying on our own (limited) review circle, we might as well use the de-facto
common crate to fix this problem. This will give us a much better chance of
finding issues should any new ones be discovered as well as the benefit of
fewer `unsafe` APIs of our own.
I was starting to think about how I would present a safe API to the old struct
but soon realized that the callback-based approach was already done in
`ouroboros`, along with a lot more care towards refusing incorrect structs.
In short: we don't return a mutable reference to the `DirstateMap` anymore, we
expect users of its API to pass a `FnOnce` that takes the map as an argument.
This allows our `OwningDirstateMap` to control the input and output lifetimes
of the code that modifies it to prevent such issues.
Changing to `ouroboros` meant changing every API with it, but it is relatively
low churn in the end. It correctly identified the example buggy modification of
`copy_map_insert` outlined in the previous patch as violating the borrow rules.
Differential Revision: https://phab.mercurial-scm.org/D12429
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Tue, 05 Apr 2022 10:55:28 +0200 |
parents | 6cfa30681a1d |
children | 42d2b31cee0b f2ef6a4f918f |
rev | line source |
---|---|
48068
bf8837e3d7ce
dirstate: Remove the flat Rust DirstateMap implementation
Simon Sapin <simon.sapin@octobus.net>
parents:
47281
diff
changeset
|
1 #testcases dirstate-v1 dirstate-v2 |
47129
93eb6c8035a9
dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents:
45681
diff
changeset
|
2 |
47281
6763913fa175
dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents:
47129
diff
changeset
|
3 #if dirstate-v2 |
48235
5c567aca080d
dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48223
diff
changeset
|
4 $ cat >> $HGRCPATH << EOF |
5c567aca080d
dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48223
diff
changeset
|
5 > [format] |
48674
f7086f6173f8
dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48295
diff
changeset
|
6 > use-dirstate-v2=1 |
48235
5c567aca080d
dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48223
diff
changeset
|
7 > [storage] |
5c567aca080d
dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48223
diff
changeset
|
8 > dirstate-v2.slow-path=allow |
5c567aca080d
dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48223
diff
changeset
|
9 > EOF |
47281
6763913fa175
dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents:
47129
diff
changeset
|
10 #endif |
6763913fa175
dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents:
47129
diff
changeset
|
11 |
11888
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
12 ------ Test dirstate._dirs refcounting |
7096
6dab29f6df37
dirstate._dirs: fix refcounting broken by 7dfac37cfabf
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
13 |
11887
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
14 $ hg init t |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
15 $ cd t |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
16 $ mkdir -p a/b/c/d |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
17 $ touch a/b/c/d/x |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
18 $ touch a/b/c/d/y |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
19 $ touch a/b/c/d/z |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
20 $ hg ci -Am m |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
21 adding a/b/c/d/x |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
22 adding a/b/c/d/y |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
23 adding a/b/c/d/z |
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
24 $ hg mv a z |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
33954
diff
changeset
|
25 moving a/b/c/d/x to z/b/c/d/x |
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
33954
diff
changeset
|
26 moving a/b/c/d/y to z/b/c/d/y |
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
33954
diff
changeset
|
27 moving a/b/c/d/z to z/b/c/d/z |
17095
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
28 |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
29 Test name collisions |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
30 |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
31 $ rm z/b/c/d/x |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
32 $ mkdir z/b/c/d/x |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
33 $ touch z/b/c/d/x/y |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
34 $ hg add z/b/c/d/x/y |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
35 abort: file 'z/b/c/d/x' in dirstate clashes with 'z/b/c/d/x/y' |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
36 [255] |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
37 $ rm -rf z/b/c/d |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
38 $ touch z/b/c/d |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
39 $ hg add z/b/c/d |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
40 abort: directory 'z/b/c/d' already in dirstate |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
41 [255] |
45cf6a91a02d
dirstate: add dir/file collision test
Joshua Redstone <joshua.redstone@fb.com>
parents:
15447
diff
changeset
|
42 |
11888
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
43 $ cd .. |
11887
76818b28ce98
tests: unify test-dirstatedirs
Adrian Buehlmann <adrian@cadifra.com>
parents:
7096
diff
changeset
|
44 |
12399
4fee1fd3de9a
tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents:
11888
diff
changeset
|
45 Issue1790: dirstate entry locked into unset if file mtime is set into |
4fee1fd3de9a
tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents:
11888
diff
changeset
|
46 the future |
11888
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
47 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
48 Prepare test repo: |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
49 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
50 $ hg init u |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
51 $ cd u |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
52 $ echo a > a |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
53 $ hg add |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
54 adding a |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
55 $ hg ci -m1 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
56 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
57 Set mtime of a into the future: |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
58 |
48114
73bcfde21fc2
dirstate: push back the future a bit in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48068
diff
changeset
|
59 $ touch -t 203101011200 a |
11888
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
60 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
61 Status must not set a's entry to unset (issue1790): |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
62 |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
63 $ hg status |
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
64 $ hg debugstate |
48114
73bcfde21fc2
dirstate: push back the future a bit in the test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48068
diff
changeset
|
65 n 644 2 2031-01-01 12:00:00 a |
17733
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
66 |
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
67 Test modulo storage/comparison of absurd dates: |
11888
2bd699886ffc
tests: combine test-dirstate-future.t
Adrian Buehlmann <adrian@cadifra.com>
parents:
11887
diff
changeset
|
68 |
19092
8c560ad1cdc4
tests: AIX can't handle negative date in test-dirstate.t
Jim Hague <jim.hague@acm.org>
parents:
17737
diff
changeset
|
69 #if no-aix |
17733
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
70 $ touch -t 195001011200 a |
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
71 $ hg st |
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
72 $ hg debugstate |
3c775c5a6c03
dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com>
parents:
17095
diff
changeset
|
73 n 644 2 2018-01-19 15:14:08 a |
19092
8c560ad1cdc4
tests: AIX can't handle negative date in test-dirstate.t
Jim Hague <jim.hague@acm.org>
parents:
17737
diff
changeset
|
74 #endif |
22406
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
75 |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
76 Verify that exceptions during a dirstate change leave the dirstate |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
77 coherent (issue4353) |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
78 |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
79 $ cat > ../dirstateexception.py <<EOF |
33954
b9765319880e
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
26587
diff
changeset
|
80 > from __future__ import absolute_import |
b9765319880e
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
26587
diff
changeset
|
81 > from mercurial import ( |
b9765319880e
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
26587
diff
changeset
|
82 > error, |
b9765319880e
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
26587
diff
changeset
|
83 > extensions, |
44856
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
42456
diff
changeset
|
84 > mergestate as mergestatemod, |
33954
b9765319880e
tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
26587
diff
changeset
|
85 > ) |
22406
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
86 > |
42456
87a34c767384
merge: fix race that could cause wrong size in dirstate
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
35393
diff
changeset
|
87 > def wraprecordupdates(*args): |
45681
a736ab681b78
errors: stop passing non-strings to Abort's constructor
Martin von Zweigbergk <martinvonz@google.com>
parents:
44856
diff
changeset
|
88 > raise error.Abort(b"simulated error while recording dirstateupdates") |
22406
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
89 > |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
90 > def reposetup(ui, repo): |
44856
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
42456
diff
changeset
|
91 > extensions.wrapfunction(mergestatemod, 'recordupdates', |
b7808443ed6a
mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents:
42456
diff
changeset
|
92 > wraprecordupdates) |
22406
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
93 > EOF |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
94 |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
95 $ hg rm a |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
96 $ hg commit -m 'rm a' |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
97 $ echo "[extensions]" >> .hg/hgrc |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
98 $ echo "dirstateex=../dirstateexception.py" >> .hg/hgrc |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
99 $ hg up 0 |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
100 abort: simulated error while recording dirstateupdates |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
101 [255] |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
102 $ hg log -r . -T '{rev}\n' |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
103 1 |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
104 $ hg status |
2e47e461d2ca
dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com>
parents:
19092
diff
changeset
|
105 ? a |
48741
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
106 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
107 #if dirstate-v2 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
108 Check that folders that are prefixes of others do not throw the packer into an |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
109 infinite loop. |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
110 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
111 $ cd .. |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
112 $ hg init infinite-loop |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
113 $ cd infinite-loop |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
114 $ mkdir hgext3rd hgext |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
115 $ touch hgext3rd/__init__.py hgext/zeroconf.py |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
116 $ hg commit -Aqm0 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
117 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
118 $ hg st -c |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
119 C hgext/zeroconf.py |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
120 C hgext3rd/__init__.py |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
121 |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
122 $ cd .. |
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
48674
diff
changeset
|
123 #endif |