##// END OF EJS Templates
branching: merge stable into default
Raphaël Gomès -
r50522:7577b864 merge default
parent child Browse files
Show More
@@ -236,3 +236,4 b' b5c8524827d20fe2e0ca8fb1234a0fe35a1a36c7'
236 236 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
@@ -249,3 +249,7 b' b5c8524827d20fe2e0ca8fb1234a0fe35a1a36c7'
249 249 dbdee8ac3e3fcdda1fa55b90c0a235125b7f8e6f 6.2.3
250 250 a3356ab610fc50000cf0ba55c424a4d96da11db7 6.3rc0
251 251 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3.0
252 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3
253 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3.0
254 0000000000000000000000000000000000000000 6.3.0
255 c890d8b8bc59b18e5febf60caada629df5356ee2 6.3.1
@@ -2,7 +2,7 b''
2 2 # This file is autogenerated by pip-compile with python 3.7
3 3 # To update, run:
4 4 #
5 # pip-compile --generate-hashes --output-file=contrib/packaging/requirements-windows-py3.txt contrib/packaging/requirements-windows.txt.in
5 # pip-compile --generate-hashes --no-reuse-hashes --output-file=contrib/packaging/requirements-windows-py3.txt contrib/packaging/requirements-windows.txt.in
6 6 #
7 7 atomicwrites==1.4.0 \
8 8 --hash=sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197 \
@@ -110,7 +110,8 b' dulwich==0.20.46 \\'
110 110 --hash=sha256:f9552ac246bceab1c5cdd1ec3cfe9446fe76b9853eaf59d3244df03eb27fd3fe
111 111 # via -r contrib/packaging/requirements-windows.txt.in
112 112 fuzzywuzzy==0.18.0 \
113 --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8
113 --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8 \
114 --hash=sha256:928244b28db720d1e0ee7587acf660ea49d7e4c632569cad4f1cd7e68a5f0993
114 115 # via -r contrib/packaging/requirements-windows.txt.in
115 116 idna==3.2 \
116 117 --hash=sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a \
@@ -222,7 +223,8 b' pytest==6.2.4 \\'
222 223 --hash=sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890
223 224 # via pytest-vcr
224 225 pytest-vcr==1.0.2 \
225 --hash=sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896
226 --hash=sha256:23ee51b75abbcc43d926272773aae4f39f93aceb75ed56852d0bf618f92e1896 \
227 --hash=sha256:2f316e0539399bea0296e8b8401145c62b6f85e9066af7e57b6151481b0d6d9c
226 228 # via -r contrib/packaging/requirements-windows.txt.in
227 229 pywin32-ctypes==0.2.0 \
228 230 --hash=sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942 \
@@ -1,3 +1,9 b''
1 # Declare Windows-specific requirements for generating
2 # the compiled (frozen) set of requirements in
3 # ./requirements-windows-py3.txt.
4 # If run on Windows, it may be necessary to run dos2unix
5 # on the output file to replace any CRLF newlines with LF.
6
1 7 docutils
2 8 dulwich
3 9
@@ -2,7 +2,7 b''
2 2 # This file is autogenerated by pip-compile with python 3.7
3 3 # To update, run:
4 4 #
5 # pip-compile --generate-hashes --output-file=contrib/packaging/requirements.txt contrib/packaging/requirements.txt.in
5 # pip-compile --generate-hashes --no-reuse-hashes --output-file=contrib/packaging/requirements.txt contrib/packaging/requirements.txt.in
6 6 #
7 7 docutils==0.16 \
8 8 --hash=sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af \
@@ -18,8 +18,12 b' markupsafe==1.1.1 \\'
18 18 --hash=sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235 \
19 19 --hash=sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5 \
20 20 --hash=sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42 \
21 --hash=sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f \
22 --hash=sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39 \
21 23 --hash=sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff \
22 24 --hash=sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b \
25 --hash=sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014 \
26 --hash=sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f \
23 27 --hash=sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1 \
24 28 --hash=sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e \
25 29 --hash=sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183 \
@@ -28,22 +32,37 b' markupsafe==1.1.1 \\'
28 32 --hash=sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1 \
29 33 --hash=sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15 \
30 34 --hash=sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1 \
35 --hash=sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85 \
36 --hash=sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1 \
31 37 --hash=sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e \
32 38 --hash=sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b \
33 39 --hash=sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905 \
40 --hash=sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850 \
41 --hash=sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0 \
34 42 --hash=sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735 \
35 43 --hash=sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d \
44 --hash=sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb \
36 45 --hash=sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e \
37 46 --hash=sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d \
38 47 --hash=sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c \
48 --hash=sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1 \
49 --hash=sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2 \
39 50 --hash=sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21 \
40 51 --hash=sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2 \
41 52 --hash=sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5 \
53 --hash=sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7 \
42 54 --hash=sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b \
55 --hash=sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8 \
43 56 --hash=sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6 \
57 --hash=sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193 \
44 58 --hash=sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f \
59 --hash=sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b \
45 60 --hash=sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f \
46 61 --hash=sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2 \
62 --hash=sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5 \
63 --hash=sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c \
64 --hash=sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032 \
47 65 --hash=sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7 \
48 --hash=sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be
66 --hash=sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be \
67 --hash=sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621
49 68 # via jinja2
@@ -1,2 +1,5 b''
1 # Declare requirements for generating the compiled (frozen)
2 # set of requirements in ./requirements.txt.
3
1 4 docutils
2 5 jinja2
@@ -2114,7 +2114,9 b' def _docommit(ui, repo, *pats, **opts):'
2114 2114 if repo[b'.'].closesbranch():
2115 2115 # Not ideal, but let us do an extra status early to prevent early
2116 2116 # bail out.
2117 matcher = scmutil.match(repo[None], pats, opts)
2117 matcher = scmutil.match(
2118 repo[None], pats, pycompat.byteskwargs(opts)
2119 )
2118 2120 s = repo.status(match=matcher)
2119 2121 if s.modified or s.added or s.removed:
2120 2122 bheads = repo.branchheads(branch, closed=True)
@@ -612,8 +612,6 b' if rustmod is not None:'
612 612 if append:
613 613 docket = self.docket
614 614 data_filename = docket.data_filename()
615 if tr:
616 tr.add(data_filename, docket.data_size)
617 615 with self._opener(data_filename, b'r+b') as fp:
618 616 fp.seek(docket.data_size)
619 617 assert fp.tell() == docket.data_size
@@ -817,17 +817,26 b' def _makematcher(repo, revs, wopts):'
817 817 # There may be the case that a path doesn't exist in some (but
818 818 # not all) of the specified start revisions, but let's consider
819 819 # the path is valid. Missing files will be warned by the matcher.
820 startctxs = [repo[r] for r in revs]
821 for f in match.files():
822 found = False
823 for c in startctxs:
824 if f in c:
825 found = True
826 elif c.hasdir(f):
820 all_files = list(match.files())
821 missing_files = set(all_files)
822 files = all_files
823 for r in revs:
824 if not files:
825 # We don't have any file to check anymore.
826 break
827 ctx = repo[r]
828 for f in files:
829 if f in ctx:
830 missing_files.discard(f)
831 elif ctx.hasdir(f):
827 832 # If a directory exists in any of the start revisions,
828 833 # take the slow path.
829 found = slowpath = True
830 if not found:
834 missing_files.discard(f)
835 slowpath = True
836 # we found on slow path, no need to search for more.
837 files = missing_files
838 for f in all_files:
839 if f in missing_files:
831 840 raise error.StateError(
832 841 _(
833 842 b'cannot follow file not in any of the specified '
@@ -1323,6 +1323,9 b' def _globre(pat):'
1323 1323 return res
1324 1324
1325 1325
1326 FLAG_RE = util.re.compile(b'^\(\?([aiLmsux]+)\)(.*)')
1327
1328
1326 1329 def _regex(kind, pat, globsuffix):
1327 1330 """Convert a (normalized) pattern of any kind into a
1328 1331 regular expression.
@@ -1351,9 +1354,15 b' def _regex(kind, pat, globsuffix):'
1351 1354 return b'.*' + globre[len(b'[^/]*') :] + globsuffix
1352 1355 return b'(?:|.*/)' + globre + globsuffix
1353 1356 if kind == b'relre':
1354 if pat.startswith(b'^'):
1357 flag = None
1358 m = FLAG_RE.match(pat)
1359 if m:
1360 flag, pat = m.groups()
1361 if not pat.startswith(b'^'):
1362 pat = b'.*' + pat
1363 if flag is not None:
1364 pat = br'(?%s:%s)' % (flag, pat)
1355 1365 return pat
1356 return b'.*' + pat
1357 1366 if kind in (b'glob', b'rootglob'):
1358 1367 return _globre(pat) + globsuffix
1359 1368 raise error.ProgrammingError(b'not a regex pattern: %s:%s' % (kind, pat))
@@ -1,3 +1,15 b''
1 = Mercurial 6.3.1 =
2
3 * memory-usage: fix `hg log --follow --rev R F` space complexity (dcb2581e33be)
4 * Improve portability and robustness of test harness
5 * hg-core: relax dependencies pinning
6 * matcher: fix issues regex flag contained in pattern (issue6759)
7 * matcher: do not prepend '.*' to pattern using ^ after flags
8 * packaging: refresh dependency hashes (issue6750)
9 * cffi: fix a bytes vs str issue on macOS when listing directories
10 * commit: properly consider file include and exclude options when closing branch
11 * dirstate-v2: do not put the dirstate data file in a transaction
12
1 13 = Mercurial 6.3 =
2 14
3 15 == New Features ==
@@ -38,7 +38,7 b' zstd = "0.5.3"'
38 38 format-bytes = "0.3.0"
39 39 # once_cell 1.15 uses edition 2021, while the heptapod CI
40 40 # uses an old version of Cargo that doesn't support it.
41 once_cell = "=1.14.0"
41 once_cell = "1.14.0"
42 42
43 43 # We don't use the `miniz-oxide` backend to not change rhg benchmarks and until
44 44 # we have a clearer view of which backend is the fastest.
@@ -171,6 +171,10 b' pub fn parse_pattern_syntax('
171 171 }
172 172 }
173 173
174 lazy_static! {
175 static ref FLAG_RE: Regex = Regex::new(r"^\(\?[aiLmsux]+\)").unwrap();
176 }
177
174 178 /// Builds the regex that corresponds to the given pattern.
175 179 /// If within a `syntax: regexp` context, returns the pattern,
176 180 /// otherwise, returns the corresponding regex.
@@ -193,7 +197,29 b' fn _build_single_regex(entry: &IgnorePat'
193 197 {
194 198 return pattern.to_owned();
195 199 }
196 [&b".*"[..], pattern].concat()
200 match FLAG_RE.find(pattern) {
201 Some(mat) => {
202 let s = mat.start();
203 let e = mat.end();
204 [
205 &b"(?"[..],
206 &pattern[s + 2..e - 1],
207 &b":"[..],
208 if pattern[e] == b'^'
209 || pattern[e] == b'*'
210 || pattern[e..].starts_with(b".*")
211 {
212 &b""[..]
213 } else {
214 &b".*"[..]
215 },
216 &pattern[e..],
217 &b")"[..],
218 ]
219 .concat()
220 }
221 None => [&b".*"[..], pattern].concat(),
222 }
197 223 }
198 224 PatternSyntax::Path | PatternSyntax::RelPath => {
199 225 if pattern == b"." {
@@ -703,4 +729,44 b' mod tests {'
703 729 Some(br"[^/]*\.o(?:/|$)".to_vec()),
704 730 );
705 731 }
732
733 #[test]
734 fn test_build_single_relregex() {
735 assert_eq!(
736 build_single_regex(&IgnorePattern::new(
737 PatternSyntax::RelRegexp,
738 b"^ba{2}r",
739 Path::new("")
740 ))
741 .unwrap(),
742 Some(b"^ba{2}r".to_vec()),
743 );
744 assert_eq!(
745 build_single_regex(&IgnorePattern::new(
746 PatternSyntax::RelRegexp,
747 b"ba{2}r",
748 Path::new("")
749 ))
750 .unwrap(),
751 Some(b".*ba{2}r".to_vec()),
752 );
753 assert_eq!(
754 build_single_regex(&IgnorePattern::new(
755 PatternSyntax::RelRegexp,
756 b"(?ia)ba{2}r",
757 Path::new("")
758 ))
759 .unwrap(),
760 Some(b"(?ia:.*ba{2}r)".to_vec()),
761 );
762 assert_eq!(
763 build_single_regex(&IgnorePattern::new(
764 PatternSyntax::RelRegexp,
765 b"(?ia)^ba{2}r",
766 Path::new("")
767 ))
768 .unwrap(),
769 Some(b"(?ia:^ba{2}r)".to_vec()),
770 );
706 771 }
772 }
@@ -1077,8 +1077,8 b' def has_repofncache():'
1077 1077 @check('dirstate-v2', 'using the v2 format of .hg/dirstate')
1078 1078 def has_dirstate_v2():
1079 1079 # Keep this logic in sync with `newreporequirements()` in `mercurial/localrepo.py`
1080 return has_rust() and matchoutput(
1081 'hg config format.exp-rc-dirstate-v2', b'(?i)1|yes|true|on|always'
1080 return matchoutput(
1081 'hg config format.use-dirstate-v2', b'(?i)1|yes|true|on|always'
1082 1082 )
1083 1083
1084 1084
@@ -2,7 +2,8 b" The simple store doesn't escape paths ro"
2 2 with periods, etc. So much of this test fails with it.
3 3 #require no-reposimplestore
4 4
5 $ hg init
5 $ hg init repo
6 $ cd repo
6 7
7 8 audit of .hg
8 9
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo This is file a1 > a
3 4 $ hg add a
4 5 $ hg commit -m "commit #0"
@@ -1,5 +1,5 b''
1 $ hg init
2
1 $ hg init repo
2 $ cd repo
3 3
4 4 committing changes
5 5
@@ -460,7 +460,7 b' assuming that the shell returns 127 if c'
460 460
461 461 test bisecting command
462 462
463 $ cat > script.py <<EOF
463 $ cat > "$TESTTMP/script.py" <<EOF
464 464 > #!$PYTHON
465 465 > import sys
466 466 > from mercurial import hg, ui as uimod
@@ -468,7 +468,7 b' test bisecting command'
468 468 > if repo[b'.'].rev() < 6:
469 469 > sys.exit(1)
470 470 > EOF
471 $ chmod +x script.py
471 $ chmod +x "$TESTTMP/script.py"
472 472 $ hg bisect -r
473 473 $ hg up -qr tip
474 474 $ hg bisect --command "\"$PYTHON\" \"$TESTTMP/script.py\" and some parameters"
@@ -497,7 +497,7 b' command'
497 497
498 498 $ hg update null
499 499 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
500 $ cat > script.sh <<'EOF'
500 $ cat > "$TESTTMP/script.sh" <<'EOF'
501 501 > #!/bin/sh
502 502 > test -n "$HG_NODE" || (echo HG_NODE missing; exit 127)
503 503 > current="`hg log -r \"bisect(current)\" --template {node}`"
@@ -505,7 +505,7 b' command'
505 505 > rev="`hg log -r $HG_NODE --template {rev}`"
506 506 > test "$rev" -ge 6
507 507 > EOF
508 $ chmod +x script.sh
508 $ chmod +x "$TESTTMP/script.sh"
509 509 $ hg bisect -r
510 510 $ hg bisect --good tip --noupdate
511 511 $ hg bisect --bad 0 --noupdate
@@ -530,7 +530,7 b" ensure that we still don't have a workin"
530 530
531 531 test the same case, this time with updating
532 532
533 $ cat > script.sh <<'EOF'
533 $ cat > "$TESTTMP/script.sh" <<'EOF'
534 534 > #!/bin/sh
535 535 > test -n "$HG_NODE" || (echo HG_NODE missing; exit 127)
536 536 > current="`hg log -r \"bisect(current)\" --template {node}`"
@@ -538,7 +538,7 b' test the same case, this time with updat'
538 538 > rev="`hg log -r . --template {rev}`"
539 539 > test "$rev" -ge 6
540 540 > EOF
541 $ chmod +x script.sh
541 $ chmod +x "$TESTTMP/script.sh"
542 542 $ hg bisect -r
543 543 $ hg up -qr tip
544 544 $ hg bisect --command "sh \"$TESTTMP/script.sh\" and some params"
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 no bookmarks
4 5
@@ -1,6 +1,7 b''
1 1 # init
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ echo a > a
5 6 $ hg add a
6 7 $ hg commit -m'a'
@@ -3,7 +3,8 b''
3 3
4 4 initialize repository
5 5
6 $ hg init
6 $ hg init repo
7 $ cd repo
7 8
8 9 $ echo 'a' > a
9 10 $ hg ci -A -m "0"
@@ -38,7 +39,7 b' rebase'
38 39
39 40 $ hg rebase -s two -d one
40 41 rebasing 3:2ae46b1d99a7 two tip "3"
41 saved backup bundle to $TESTTMP/.hg/strip-backup/2ae46b1d99a7-e6b057bc-rebase.hg
42 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/2ae46b1d99a7-e6b057bc-rebase.hg
42 43
43 44 $ hg log
44 45 changeset: 3:42e5ed2cdcf4
@@ -292,6 +292,12 b' verify update will accept invalid legacy'
292 292 [10]
293 293 $ hg commit -d '9 0' --close-branch -m 're-closing this branch' b
294 294
295 $ echo baz > b
296 $ hg commit -d '9 0' --close-branch -m 'empty re-closing this branch' -X b
297 abort: current revision is already a branch closing head
298 [10]
299 $ hg revert b
300
295 301 $ hg debugstrip --rev 13: --no-backup
296 302 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
297 303 $ hg revert --all --no-backup
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo 0 > a
3 4 $ echo 0 > b
4 5 $ hg ci -A -m m
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo foo > bar
3 4 $ hg commit -Am default
4 5 adding bar
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 Setup:
4 5
@@ -36,7 +37,7 b' Amending changeset with changes in worki'
36 37 $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend -m 'amend base1'
37 38 pretxncommit 43f1ba15f28a50abf0aae529cf8a16bfced7b149
38 39 43f1ba15f28a tip
39 saved backup bundle to $TESTTMP/.hg/strip-backup/489edb5b847d-5ab4f721-amend.hg
40 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/489edb5b847d-5ab4f721-amend.hg
40 41 $ echo 'pretxncommit.foo = ' >> $HGRCPATH
41 42 $ hg diff -c .
42 43 diff -r ad120869acf0 -r 43f1ba15f28a a
@@ -94,7 +95,7 b' the amend, there should be no rollback.'
94 95
95 96 Add new file along with modified existing file:
96 97 $ hg ci --amend -m 'amend base1 new file'
97 saved backup bundle to $TESTTMP/.hg/strip-backup/43f1ba15f28a-007467c2-amend.hg
98 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/43f1ba15f28a-007467c2-amend.hg
98 99
99 100 Remove file that was added in amended commit:
100 101 (and test logfile option)
@@ -103,7 +104,7 b' Remove file that was added in amended co'
103 104 $ hg rm b
104 105 $ echo 'amend base1 remove new file' > ../logfile
105 106 $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg ci --amend --logfile ../logfile
106 saved backup bundle to $TESTTMP/.hg/strip-backup/c16295aaf401-1ada9901-amend.hg
107 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/c16295aaf401-1ada9901-amend.hg
107 108
108 109 $ hg cat b
109 110 b: no such file in rev 47343646fa3d
@@ -123,7 +124,7 b' No changes, just a different message:'
123 124 254 (changelog)
124 125 163 (manifests)
125 126 131 a
126 saved backup bundle to $TESTTMP/.hg/strip-backup/47343646fa3d-c2758885-amend.hg
127 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/47343646fa3d-c2758885-amend.hg
127 128 1 changesets found
128 129 uncompressed size of bundle content:
129 130 250 (changelog)
@@ -170,10 +171,10 b' Test -u/-d:'
170 171 > EOF
171 172 $ HGEDITOR="sh .hg/checkeditform.sh" hg ci --amend -u foo -d '1 0'
172 173 HGEDITFORM=commit.amend.normal
173 saved backup bundle to $TESTTMP/.hg/strip-backup/401431e913a1-5e8e532c-amend.hg
174 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/401431e913a1-5e8e532c-amend.hg
174 175 $ echo a >> a
175 176 $ hg ci --amend -u foo -d '1 0'
176 saved backup bundle to $TESTTMP/.hg/strip-backup/d96b1d28ae33-677e0afb-amend.hg
177 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d96b1d28ae33-677e0afb-amend.hg
177 178 $ hg log -r .
178 179 changeset: 1:a9a13940fc03
179 180 tag: tip
@@ -267,7 +268,7 b' then, test editing custom commit message'
267 268 249 (changelog)
268 269 163 (manifests)
269 270 133 a
270 saved backup bundle to $TESTTMP/.hg/strip-backup/a9a13940fc03-7c2e8674-amend.hg
271 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/a9a13940fc03-7c2e8674-amend.hg
271 272 1 changesets found
272 273 uncompressed size of bundle content:
273 274 257 (changelog)
@@ -303,7 +304,7 b' Same, but with changes in working dir (d'
303 304 257 (changelog)
304 305 163 (manifests)
305 306 133 a
306 saved backup bundle to $TESTTMP/.hg/strip-backup/64a124ba1b44-10374b8f-amend.hg
307 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/64a124ba1b44-10374b8f-amend.hg
307 308 1 changesets found
308 309 uncompressed size of bundle content:
309 310 257 (changelog)
@@ -330,13 +331,13 b' Moving bookmarks, preserve active bookma'
330 331 $ hg book book1
331 332 $ hg book book2
332 333 $ hg ci --amend -m 'move bookmarks'
333 saved backup bundle to $TESTTMP/.hg/strip-backup/7892795b8e38-3fb46217-amend.hg
334 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/7892795b8e38-3fb46217-amend.hg
334 335 $ hg book
335 336 book1 1:8311f17e2616
336 337 * book2 1:8311f17e2616
337 338 $ echo a >> a
338 339 $ hg ci --amend -m 'move bookmarks'
339 saved backup bundle to $TESTTMP/.hg/strip-backup/8311f17e2616-f0504fe3-amend.hg
340 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/8311f17e2616-f0504fe3-amend.hg
340 341 $ hg book
341 342 book1 1:a3b65065808c
342 343 * book2 1:a3b65065808c
@@ -370,7 +371,7 b' Moving branches:'
370 371 $ hg branch default -f
371 372 marked working directory as branch default
372 373 $ hg ci --amend -m 'back to default'
373 saved backup bundle to $TESTTMP/.hg/strip-backup/f8339a38efe1-c18453c9-amend.hg
374 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f8339a38efe1-c18453c9-amend.hg
374 375 $ hg branches
375 376 default 2:9c07515f2650
376 377
@@ -386,7 +387,7 b' Close branch:'
386 387 $ echo b >> b
387 388 $ hg ci -mb
388 389 $ hg ci --amend --close-branch -m 'closing branch foo'
389 saved backup bundle to $TESTTMP/.hg/strip-backup/c962248fa264-54245dc7-amend.hg
390 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/c962248fa264-54245dc7-amend.hg
390 391
391 392 Same thing, different code path:
392 393
@@ -395,7 +396,7 b' Same thing, different code path:'
395 396 reopening closed branch head 4
396 397 $ echo b >> b
397 398 $ hg ci --amend --close-branch
398 saved backup bundle to $TESTTMP/.hg/strip-backup/027371728205-b900d9fa-amend.hg
399 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/027371728205-b900d9fa-amend.hg
399 400 $ hg branches
400 401 default 2:9c07515f2650
401 402
@@ -433,7 +434,7 b' Follow copies/renames:'
433 434 $ hg ci -m 'b -> c'
434 435 $ hg mv c d
435 436 $ hg ci --amend -m 'b -> d'
436 saved backup bundle to $TESTTMP/.hg/strip-backup/42f3f27a067d-f23cc9f7-amend.hg
437 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/42f3f27a067d-f23cc9f7-amend.hg
437 438 $ hg st --rev '.^' --copies d
438 439 A d
439 440 b
@@ -441,7 +442,7 b' Follow copies/renames:'
441 442 $ hg ci -m 'e = d'
442 443 $ hg cp e f
443 444 $ hg ci --amend -m 'f = d'
444 saved backup bundle to $TESTTMP/.hg/strip-backup/9198f73182d5-251d584a-amend.hg
445 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9198f73182d5-251d584a-amend.hg
445 446 $ hg st --rev '.^' --copies f
446 447 A f
447 448 d
@@ -452,7 +453,7 b' Follow copies/renames:'
452 453 $ hg cp a f
453 454 $ mv f.orig f
454 455 $ hg ci --amend -m replacef
455 saved backup bundle to $TESTTMP/.hg/strip-backup/f0993ab6b482-eda301bf-amend.hg
456 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f0993ab6b482-eda301bf-amend.hg
456 457 $ hg st --change . --copies
457 458 $ hg log -r . --template "{file_copies}\n"
458 459
@@ -464,7 +465,7 b' Move added file (issue3410):'
464 465 adding g
465 466 $ hg mv g h
466 467 $ hg ci --amend
467 saved backup bundle to $TESTTMP/.hg/strip-backup/58585e3f095c-0f5ebcda-amend.hg
468 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/58585e3f095c-0f5ebcda-amend.hg
468 469 $ hg st --change . --copies h
469 470 A h
470 471 $ hg log -r . --template "{file_copies}\n"
@@ -484,11 +485,11 b' Preserve extra dict (issue3430):'
484 485 $ echo a >> a
485 486 $ hg ci -ma
486 487 $ hg ci --amend -m "a'"
487 saved backup bundle to $TESTTMP/.hg/strip-backup/39a162f1d65e-9dfe13d8-amend.hg
488 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/39a162f1d65e-9dfe13d8-amend.hg
488 489 $ hg log -r . --template "{branch}\n"
489 490 a
490 491 $ hg ci --amend -m "a''"
491 saved backup bundle to $TESTTMP/.hg/strip-backup/d5ca7b1ac72b-0b4c1a34-amend.hg
492 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d5ca7b1ac72b-0b4c1a34-amend.hg
492 493 $ hg log -r . --template "{branch}\n"
493 494 a
494 495
@@ -505,7 +506,7 b" first graft something so there's an addi"
505 506 $ hg graft 12
506 507 grafting 12:2647734878ef "fork" (tip)
507 508 $ hg ci --amend -m 'graft amend'
508 saved backup bundle to $TESTTMP/.hg/strip-backup/fe8c6f7957ca-25638666-amend.hg
509 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fe8c6f7957ca-25638666-amend.hg
509 510 $ hg log -r . --debug | grep extra
510 511 extra: amend_source=fe8c6f7957ca1665ed77496ed7a07657d469ac60
511 512 extra: branch=a
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ cat << EOF > a
3 4 > Small Mathematical Series.
4 5 > One
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo foo > a
3 4 $ hg add a
4 5 $ hg commit -m "1"
@@ -2,6 +2,7 b''
2 2
3 3 $ git config -f $HOME/.gitconfig init.defaultBranch master
4 4 $ git config -f $HOME/.gitconfig core.autocrlf false
5 $ git config -f $HOME/.gitconfig protocol.file.allow always
5 6 $ echo "[extensions]" >> $HGRCPATH
6 7 $ echo "convert=" >> $HGRCPATH
7 8 $ cat >> $HGRCPATH <<EOF
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ cat > .hg/hgrc <<EOF
4 5 > [extensions]
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo a > a
3 4 $ hg ci -Am t
4 5 adding a
@@ -5,7 +5,8 b' Prepare tests:'
5 5 $ echo '[alias]' >> $HGRCPATH
6 6 $ echo 'ndiff = diff --nodates' >> $HGRCPATH
7 7
8 $ hg init
8 $ hg init repo
9 $ cd repo
9 10 $ printf 'hello world\ngoodbye world\n' >foo
10 11 $ hg ci -Amfoo -ufoo
11 12 adding foo
@@ -8,7 +8,8 b''
8 8 > EOF
9 9 #endif
10 10
11 $ hg init
11 $ hg init repo
12 $ cd repo
12 13
13 14 $ cat > a.c <<'EOF'
14 15 > /*
@@ -1,6 +1,7 b''
1 1 Test issue2761
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5
5 6 $ touch to-be-deleted
6 7 $ hg add
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ "$PYTHON" -c 'open("a", "wb").write(b"confuse str.splitlines\nembedded\rnewline\n")'
4 5 $ hg ci -Ama -d '1 0'
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ cat > a <<EOF
4 5 > a
@@ -1,6 +1,7 b''
1 1 Test temp file used with an editor has the expected suffix.
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5
5 6 Create an editor that writes its arguments to stdout and set it to $HGEDITOR.
6 7
@@ -9,7 +10,7 b' Create an editor that writes its argumen'
9 10 > exit 1
10 11 > EOF
11 12 $ hg add editor.sh
12 $ HGEDITOR="sh $TESTTMP/editor.sh"
13 $ HGEDITOR="sh $TESTTMP/repo/editor.sh"
13 14 $ export HGEDITOR
14 15
15 16 Verify that the path for a commit editor has the expected suffix.
@@ -1,6 +1,7 b''
1 1 Test encode/decode filters
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ cat > .hg/hgrc <<EOF
5 6 > [encode]
6 7 > not.gz = tr [:lower:] [:upper:]
@@ -1,6 +1,7 b''
1 1 #require execbit
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ echo a > a
5 6 $ hg ci -Am'not executable'
6 7 adding a
@@ -3,7 +3,8 b' Issue351: mq: qrefresh can create extra '
3 3 $ echo "[extensions]" >> $HGRCPATH
4 4 $ echo "mq=" >> $HGRCPATH
5 5
6 $ hg init
6 $ hg init repo
7 $ cd repo
7 8 $ hg qinit
8 9
9 10 $ echo b > b
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 Set up history and working copy
4 5
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo start > start
3 4 $ hg ci -Amstart
4 5 adding start
@@ -46,7 +47,7 b' Copy:'
46 47 Cross and same-directory copies with a relative root:
47 48
48 49 $ hg diff --git --root .. -r 1:tip
49 abort: .. not under root '$TESTTMP'
50 abort: .. not under root '$TESTTMP/repo'
50 51 [255]
51 52 $ hg diff --git --root doesnotexist -r 1:tip
52 53 $ hg diff --git --root . -r 1:tip
@@ -121,7 +122,7 b' Cross and same-directory copies with a r'
121 122 +copy2
122 123
123 124 $ hg diff --git --root ../.. -r 1:tip
124 abort: ../.. not under root '$TESTTMP'
125 abort: ../.. not under root '$TESTTMP/repo'
125 126 [255]
126 127 $ hg diff --git --root ../doesnotexist -r 1:tip
127 128 $ hg diff --git --root .. -r 1:tip
@@ -63,6 +63,81 b' Should display baz only:'
63 63 abort: $TESTTMP/ignorerepo/.hgignore: invalid pattern (relre): *.o (glob)
64 64 [255]
65 65
66 Test relre with flags (issue6759)
67 ---------------------------------
68
69 regexp with flag is the first one
70
71 $ echo 're:(?i)\.O$' > .hgignore
72 $ echo 're:.hgignore' >> .hgignore
73 $ hg status
74 A dir/b.o
75 ? a.c
76 ? syntax
77 $ hg debugignore
78 <includematcher includes='(?i:.*\\.O$)|.*.hgignore'>
79
80 regex with flag is not the first one
81
82 $ echo 're:.hgignore' > .hgignore
83 $ echo 're:(?i)\.O$' >> .hgignore
84 $ hg status
85 A dir/b.o
86 ? a.c
87 ? syntax
88 $ hg debugignore
89 <includematcher includes='.*.hgignore|(?i:.*\\.O$)'>
90
91 flag in a pattern should affect that pattern only
92
93 $ echo 're:(?i)\.O$' > .hgignore
94 $ echo 're:.HGIGNORE' >> .hgignore
95 $ hg status
96 A dir/b.o
97 ? .hgignore
98 ? a.c
99 ? syntax
100 $ hg debugignore
101 <includematcher includes='(?i:.*\\.O$)|.*.HGIGNORE'>
102
103 $ echo 're:.HGIGNORE' > .hgignore
104 $ echo 're:(?i)\.O$' >> .hgignore
105 $ hg status
106 A dir/b.o
107 ? .hgignore
108 ? a.c
109 ? syntax
110 $ hg debugignore
111 <includematcher includes='.*.HGIGNORE|(?i:.*\\.O$)'>
112
113 Check that '^' after flag is properly detected.
114
115 $ echo 're:(?i)^[^a].*\.O$' > .hgignore
116 $ echo 're:.HGIGNORE' >> .hgignore
117 $ hg status
118 A dir/b.o
119 ? .hgignore
120 ? a.c
121 ? a.o
122 ? syntax
123 $ hg debugignore
124 <includematcher includes='(?i:^[^a].*\\.O$)|.*.HGIGNORE'>
125
126 $ echo 're:.HGIGNORE' > .hgignore
127 $ echo 're:(?i)^[^a].*\.O$' >> .hgignore
128 $ hg status
129 A dir/b.o
130 ? .hgignore
131 ? a.c
132 ? a.o
133 ? syntax
134 $ hg debugignore
135 <includematcher includes='.*.HGIGNORE|(?i:^[^a].*\\.O$)'>
136
137
138 further testing
139 ---------------
140
66 141 $ echo 're:^(?!a).*\.o$' > .hgignore
67 142 $ hg status
68 143 A dir/b.o
@@ -1,6 +1,7 b''
1 1 https://bz.mercurial-scm.org/1089
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ mkdir a
5 6 $ echo a > a/b
6 7 $ hg ci -Am m
@@ -1,6 +1,7 b''
1 1 https://bz.mercurial-scm.org/1175
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ touch a
5 6 $ hg ci -Am0
6 7 adding a
@@ -2,7 +2,8 b''
2 2
3 3 https://bz.mercurial-scm.org/1438
4 4
5 $ hg init
5 $ hg init repo
6 $ cd repo
6 7
7 8 $ ln -s foo link
8 9 $ hg add link
@@ -6,7 +6,8 b' the version in p1 is an ancestor of the '
6 6 sure that we'll use the version from p2 in the manifest of the merge
7 7 revision.
8 8
9 $ hg init
9 $ hg init repo
10 $ cd repo
10 11
11 12 $ echo foo > foo
12 13 $ hg ci -qAm 'add foo'
@@ -1,6 +1,7 b''
1 1 https://bz.mercurial-scm.org/612
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ mkdir src
5 6 $ echo a > src/a.c
6 7 $ hg ci -Ama
@@ -1,6 +1,7 b''
1 1 https://bz.mercurial-scm.org/619
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ echo a > a
5 6 $ hg ci -Ama
6 7 adding a
@@ -6,7 +6,8 b' https://bz.mercurial-scm.org/672'
6 6 #
7 7 # rename in #1, content change in #4.
8 8
9 $ hg init
9 $ hg init repo
10 $ cd repo
10 11
11 12 $ touch 1
12 13 $ touch 2
@@ -1,6 +1,7 b''
1 1 https://bz.mercurial-scm.org/842
2 2
3 $ hg init
3 $ hg init repo
4 $ cd repo
4 5 $ echo foo > a
5 6 $ hg ci -Ama
6 7 adding a
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo a > a
3 4 $ hg ci -Am0
4 5 adding a
@@ -52,7 +53,7 b' Check that zero-size journals are correc'
52 53
53 54 $ hg -R foo unbundle repo.hg
54 55 adding changesets
55 abort: Permission denied: '$TESTTMP/foo/.hg/store/.00changelog.i-*' (glob)
56 abort: Permission denied: '$TESTTMP/repo/foo/.hg/store/.00changelog.i-*' (glob)
56 57 [255]
57 58
58 59 $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
@@ -6,7 +6,8 b' enabled.'
6 6 > detailed-exit-code=no
7 7 > EOF
8 8
9 $ hg init
9 $ hg init repo
10 $ cd repo
10 11 $ echo a > a
11 12 Expect exit code 0 on success
12 13 $ hg ci -Aqm initial
@@ -3,7 +3,8 b''
3 3 > git = true
4 4 > EOF
5 5
6 $ hg init
6 $ hg init repo
7 $ cd repo
7 8 $ cat > foo << EOF
8 9 > 0
9 10 > 1
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo a > a
3 4 $ hg commit -A -ma
4 5 adding a
@@ -6,7 +6,8 b" Make sure HGMERGE doesn't interfere with"
6 6
7 7 $ unset HGMERGE
8 8
9 $ hg init
9 $ hg init repo
10 $ cd repo
10 11
11 12 Initial file contents:
12 13
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 Revision 0:
4 5
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo foo > foo
4 5 $ echo bar > bar
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo "added file1" > file1
4 5 $ echo "added file2" > file2
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo "added file1" > file1
4 5 $ echo "another line of text" >> file1
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo a > a
4 5 $ hg ci -qAm 'add a'
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo This is file a1 > a
3 4 $ hg add a
4 5 $ hg commit -m "commit #0"
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ echo This is file a1 > a
3 4 $ echo This is file b1 > b
4 5 $ hg add a b
@@ -1,7 +1,8 b''
1 1 $ echo "[extensions]" >> $HGRCPATH
2 2 $ echo "mq=" >> $HGRCPATH
3 3
4 $ hg init
4 $ hg init repo
5 $ cd repo
5 6 $ hg qinit
6 7
7 8 $ echo x > x
@@ -1,7 +1,8 b''
1 1 $ echo "[extensions]" >> $HGRCPATH
2 2 $ echo "mq=" >> $HGRCPATH
3 3
4 $ hg init
4 $ hg init repo
5 $ cd repo
5 6
6 7 $ echo 'base' > base
7 8 $ hg ci -Ambase
@@ -3,7 +3,8 b''
3 3 $ echo "[extensions]" >> $HGRCPATH
4 4 $ echo "mq=" >> $HGRCPATH
5 5
6 $ hg init
6 $ hg init repo
7 $ cd repo
7 8 $ hg qinit
8 9 $ hg qnew base.patch
9 10 $ echo aaa > a
@@ -238,11 +238,6 b' Testing path referencing other paths'
238 238 basic setup
239 239 -----------
240 240
241 $ ls -1
242 a
243 b
244 gpath1
245 suboptions
246 241 $ hg init chained_path
247 242 $ cd chained_path
248 243 $ cat << EOF > .hg/hgrc
@@ -134,7 +134,8 b' Windows is not affected'
134 134 $ hg $DO_RM --config extensions.histedit= histedit -q --commands ../histedit_commands
135 135 current directory was removed (no-windows !)
136 136 (consider changing to repo root: $TESTTMP/hghistedit) (no-windows !)
137 $ ls -1 $TESTTMP/hghistedit/
137 $ ls -A $TESTTMP/hghistedit/
138 .hg
138 139 histedit_commands
139 140 r0
140 141 r1
@@ -143,16 +144,20 b' Windows is not affected'
143 144 #if windows
144 145 $ "$PYTHON" "$TESTTMP/pwd.py"
145 146 $TESTTMP/hghistedit/somedir
147 $ ls -A $TESTTMP/hghistedit/somedir
148 foo
149 $ ls -A
150 foo
146 151 #else
147 152 $ echo ${PWD} # no-pwd-check
148 153 $TESTTMP/hghistedit/somedir
149 154 $ "$PYTHON" "$TESTTMP/pwd.py"
150 155 <directory is no longer accessible>
151 #endif
152 $ ls -1 $TESTTMP/hghistedit/somedir
156 $ ls -A $TESTTMP/hghistedit/somedir
153 157 foo
154 $ ls -1
155 foo (windows !)
158 $ ls -A || true
159 ls: .: $ENOENT$ (?)
160 #endif
156 161
157 162 Get out of the doomed directory
158 163
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo "[merge]" >> .hg/hgrc
4 5 $ echo "followcopies = 1" >> .hg/hgrc
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ mkdir d1 d1/d11 d2
3 4 $ echo d1/a > d1/a
4 5 $ echo d1/ba > d1/ba
@@ -613,7 +614,7 b' check illegal path components'
613 614 [10]
614 615 $ hg status -C
615 616 $ hg rename d1/d11/a1 ../foo
616 abort: ../foo not under root '$TESTTMP'
617 abort: ../foo not under root '$TESTTMP/repo'
617 618 [255]
618 619 $ hg status -C
619 620
@@ -636,11 +637,11 b' check illegal path components'
636 637 [10]
637 638 $ hg status -C
638 639 $ hg rename d1/d11/a1 ..
639 abort: ../a1 not under root '$TESTTMP'
640 abort: ../a1 not under root '$TESTTMP/repo'
640 641 [255]
641 642 $ hg --config extensions.largefiles= rename d1/d11/a1 ..
642 643 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
643 abort: ../a1 not under root '$TESTTMP'
644 abort: ../a1 not under root '$TESTTMP/repo'
644 645 [255]
645 646 $ hg status -C
646 647
@@ -659,7 +660,7 b' check illegal path components'
659 660 [10]
660 661 $ hg status -C
661 662 $ (cd d1/d11; hg rename ../../d2/b ../../../foo)
662 abort: ../../../foo not under root '$TESTTMP'
663 abort: ../../../foo not under root '$TESTTMP/repo'
663 664 [255]
664 665 $ hg status -C
665 666
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ touch unknown
3 4
4 5 $ touch a
@@ -1,7 +1,8 b''
1 1 Tests of 'hg status --rev <rev>' to make sure status between <rev> and '.' get
2 2 combined correctly with the dirstate status.
3 3
4 $ hg init
4 $ hg init repo
5 $ cd repo
5 6
6 7 First commit
7 8
@@ -982,11 +982,11 b' Changing the hgignore rules makes us rec'
982 982 $ mkdir another-subdir
983 983 $ touch another-subdir/something-else
984 984
985 $ cat > "$TESTDIR"/extra-hgignore <<EOF
985 $ cat > "$TESTTMP"/extra-hgignore <<EOF
986 986 > something-else
987 987 > EOF
988 988
989 $ hg status --config ui.ignore.global="$TESTDIR"/extra-hgignore
989 $ hg status --config ui.ignore.global="$TESTTMP"/extra-hgignore
990 990 $ hg debugdirstate --all --no-dates | grep '^ '
991 991 0 -1 set subdir
992 992
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ echo a > a
4 5 $ hg ci -Ama
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3
3 4 $ touch a
4 5 $ hg add a
@@ -1,4 +1,5 b''
1 $ hg init
1 $ hg init repo
2 $ cd repo
2 3 $ touch a
3 4
4 5 $ unset HGUSER
General Comments 0
You need to be logged in to leave comments. Login now