##// END OF EJS Templates
tests: use pattern matching to mask `ECONNREFUSED` messages...
tests: use pattern matching to mask `ECONNREFUSED` messages The second and third one of these in `test-http-proxy.t` was failing on Windows. The others were found by grep and by failed tests when output was matched and an attempt was made to emit the mask pattern. The first clonebundles failure on Windows emitted: error fetching bundle: [WinError 10061] $ECONNREFUSED$ We should probably stringify that better to get rid of the "[WinError 10061]" part.

File last commit:

r50516:55c6ebd1 stable
r52835:73a43fe3 default
Show More
test-rename.t
697 lines | 15.0 KiB | text/troff | Tads3Lexer
Arseniy Alekseyev
tests: run many tests in $TESTTMP/repo instead of $TESTTMP...
r50516 $ hg init repo
$ cd repo
Nicolas Dumazet
tests: unify test-rename
r12098 $ mkdir d1 d1/d11 d2
$ echo d1/a > d1/a
$ echo d1/ba > d1/ba
$ echo d1/a1 > d1/d11/a1
$ echo d1/b > d1/b
$ echo d2/b > d2/b
$ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m "1"
Nicolas Dumazet
tests: unify test-rename
r12098
rename a single file
$ hg rename d1/d11/a1 d2/c
Adrian Buehlmann
add: introduce a warning message for non-portable filenames (issue2756) (BC)...
r13962 $ hg --config ui.portablefilenames=abort rename d1/a d1/con.xml
Augie Fackler
scmutil: use util.shellquote instead of %r...
r33795 abort: filename contains 'con', which is reserved on Windows: d1/con.xml
Martin von Zweigbergk
errors: use InputError for errors about bad paths...
r46448 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg sum
Martin Geisler
tests: remove unneeded -d flags...
r12156 parent: 0:9b4b6e7b2c26 tip
Nicolas Dumazet
tests: unify test-rename
r12098 1
branch: default
commit: 1 renamed
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 1 draft
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/c
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/c
Martin Geisler
test-rename: test with absolute paths
r12898 rename a single file using absolute paths
$ hg rename `pwd`/d1/d11/a1 `pwd`/d2/c
$ hg status -C
A d2/c
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/c
Nicolas Dumazet
tests: unify test-rename
r12098 rename --after a single file
$ mv d1/d11/a1 d2/c
$ hg rename --after d1/d11/a1 d2/c
$ hg status -C
A d2/c
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/c
rename --after a single file when src and tgt already tracked
$ mv d1/d11/a1 d2/c
$ hg addrem -s 0
removing d1/d11/a1
adding d2/c
$ hg rename --after d1/d11/a1 d2/c
$ hg status -C
A d2/c
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/c
timeless@mozdev.org
spelling: nonexistent
r17492 rename --after a single file to a nonexistent target filename
Nicolas Dumazet
tests: unify test-rename
r12098
$ hg rename --after d1/a dummy
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 d1/a: not recording move - dummy does not exist
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Nicolas Dumazet
tests: unify test-rename
r12098
move a single file to an existing directory
$ hg rename d1/d11/a1 d2
$ hg status -C
A d2/a1
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/a1
move --after a single file to an existing directory
$ mv d1/d11/a1 d2
$ hg rename --after d1/d11/a1 d2
$ hg status -C
A d2/a1
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/a1
rename a file using a relative path
$ (cd d1/d11; hg rename ../../d2/b e)
$ hg status -C
A d1/d11/e
d2/b
R d2/b
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/d11/e
rename --after a file using a relative path
$ (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e)
$ hg status -C
A d1/d11/e
d2/b
R d2/b
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/d11/e
rename directory d1 as d3
$ hg rename d1/ d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d3/a
moving d1/b to d3/b
moving d1/ba to d3/ba
moving d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/a
d1/a
A d3/b
d1/b
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
rename --after directory d1 as d3
$ mv d1 d3
$ hg rename --after d1 d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d3/a
moving d1/b to d3/b
moving d1/ba to d3/ba
moving d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/a
d1/a
A d3/b
d1/b
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
move a directory using a relative path
$ (cd d2; mkdir d3; hg rename ../d1/d11 d3)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving ../d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d3/d11/a1
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d3
move --after a directory using a relative path
$ (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving ../d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d3/d11/a1
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d3
move directory d1/d11 to an existing directory d2 (removes empty d1)
$ hg rename d1/d11/ d2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/d11/a1 to d2/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d11/a1
d1/d11/a1
R d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d11
move directories d1 and d2 to a new directory d3
$ mkdir d3
$ hg rename d1 d2 d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d3/d1/a
moving d1/b to d3/d1/b
moving d1/ba to d3/d1/ba
moving d1/d11/a1 to d3/d1/d11/a1
moving d2/b to d3/d2/b
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/d1/a
d1/a
A d3/d1/b
d1/b
A d3/d1/ba
d1/ba
A d3/d1/d11/a1
d1/d11/a1
A d3/d2/b
d2/b
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
R d2/b
$ hg update -C
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
move --after directories d1 and d2 to a new directory d3
$ mkdir d3
$ mv d1 d2 d3
$ hg rename --after d1 d2 d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d3/d1/a
moving d1/b to d3/d1/b
moving d1/ba to d3/d1/ba
moving d1/d11/a1 to d3/d1/d11/a1
moving d2/b to d3/d2/b
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/d1/a
d1/a
A d3/d1/b
d1/b
A d3/d1/ba
d1/ba
A d3/d1/d11/a1
d1/d11/a1
A d3/d2/b
d2/b
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
R d2/b
$ hg update -C
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
move everything under directory d1 to existing directory d2, do not
overwrite existing files (d2/b)
$ hg rename d1/* d2
Augie Fackler
copy: distinguish "file exists" cases and add a hint (BC)...
r30151 d2/b: not overwriting - file already committed
Martin von Zweigbergk
rename: quote hg commands in warnings...
r39384 ('hg rename --force' to replace the file by recording a rename)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/d11/a1 to d2/d11/a1
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/a
d1/a
A d2/ba
d1/ba
A d2/d11/a1
d1/d11/a1
R d1/a
R d1/ba
R d1/d11/a1
$ diff -u d1/b d2/b
Brodie Rao
tests: add glob matching for unified tests...
r12376 --- d1/b * (glob)
+++ d2/b * (glob)
Mads Kiilerich
test-rename: accept solaris diff...
r12405 @@ * (glob)
Nicolas Dumazet
tests: unify test-rename
r12098 -d1/b
+d2/b
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg update -C
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d2/a d2/ba d2/d11/a1
attempt to move one file into a non-existent directory
$ hg rename d1/a dx/
abort: destination dx/ is not a directory
Martin von Zweigbergk
errors: introduce InputError and use it from commands and cmdutil...
r46431 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ hg update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
attempt to move potentially more than one file into a non-existent directory
$ hg rename 'glob:d1/**' dx
abort: with multiple sources, destination must be an existing directory
Martin von Zweigbergk
errors: introduce InputError and use it from commands and cmdutil...
r46431 [10]
Nicolas Dumazet
tests: unify test-rename
r12098
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 move every file under d1 to d2/d21
Nicolas Dumazet
tests: unify test-rename
r12098
$ mkdir d2/d21
$ hg rename 'glob:d1/**' d2/d21
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d2/d21/a
moving d1/b to d2/d21/b
moving d1/ba to d2/d21/ba
moving d1/d11/a1 to d2/d21/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d21/a
d1/a
A d2/d21/a1
d1/d11/a1
A d2/d21/b
d1/b
A d2/d21/ba
d1/ba
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d21
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 move --after some files under d1 to d2/d21
Nicolas Dumazet
tests: unify test-rename
r12098
$ mkdir d2/d21
$ mv d1/a d1/d11/a1 d2/d21
$ hg rename --after 'glob:d1/**' d2/d21
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d2/d21/a
d1/b: not recording move - d2/d21/b does not exist
d1/ba: not recording move - d2/d21/ba does not exist
moving d1/d11/a1 to d2/d21/a1
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d21/a
d1/a
A d2/d21/a1
d1/d11/a1
R d1/a
R d1/d11/a1
$ hg update -C
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d21
move every file under d1 starting with an 'a' to d2/d21 (regexp)
$ mkdir d2/d21
$ hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d2/d21/a
moving d1/d11/a1 to d2/d21/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d2/d21/a
d1/a
A d2/d21/a1
d1/d11/a1
R d1/a
R d1/d11/a1
$ hg update -C
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d2/d21
attempt to overwrite an existing file
$ echo "ca" > d1/ca
$ hg rename d1/ba d1/ca
d1/ca: not overwriting - file exists
Martin von Zweigbergk
rename: quote hg commands in warnings...
r39384 ('hg rename --after' to record the rename)
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
? d1/ca
$ hg update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
forced overwrite of an existing file
$ echo "ca" > d1/ca
$ hg rename --force d1/ba d1/ca
$ hg status -C
A d1/ca
d1/ba
R d1/ba
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/ca
Patrick Mezard
Merge with stable
r12345 attempt to overwrite an existing broken symlink
Adrian Buehlmann
test-rename.t: enable for Windows
r16902 #if symlink
Patrick Mezard
Merge with stable
r12345 $ ln -s ba d1/ca
$ hg rename --traceback d1/ba d1/ca
d1/ca: not overwriting - file exists
Martin von Zweigbergk
rename: quote hg commands in warnings...
r39384 ('hg rename --after' to record the rename)
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Patrick Mezard
Merge with stable
r12345 $ hg status -C
? d1/ca
$ hg update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/ca
Nicolas Dumazet
tests: unify test-rename
r12098 replace a symlink with a file
$ ln -s ba d1/ca
$ hg rename --force d1/ba d1/ca
$ hg status -C
A d1/ca
d1/ba
R d1/ba
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/ca
Adrian Buehlmann
test-rename.t: enable for Windows
r16902 #endif
Nicolas Dumazet
tests: unify test-rename
r12098
do not copy more than one source file to the same destination file
$ mkdir d3
$ hg rename d1/* d2/* d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 d3/b: not overwriting - d2/b collides with d1/b
Martin von Zweigbergk
rename: return error status if any rename/copy failed...
r39386 [1]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/a
d1/a
A d3/b
d1/b
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
Martin Geisler
test-rename: fix \" -> " in comments
r12897 move a whole subtree with "hg rename ."
Nicolas Dumazet
tests: unify test-rename
r12098
$ mkdir d3
$ (cd d1; hg rename . ../d3)
moving a to ../d3/d1/a
moving b to ../d3/d1/b
moving ba to ../d3/d1/ba
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d11/a1 to ../d3/d1/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/d1/a
d1/a
A d3/d1/b
d1/b
A d3/d1/ba
d1/ba
A d3/d1/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
Martin Geisler
test-rename: fix \" -> " in comments
r12897 move a whole subtree with "hg rename --after ."
Nicolas Dumazet
tests: unify test-rename
r12098
$ mkdir d3
$ mv d1/* d3
$ (cd d1; hg rename --after . ../d3)
moving a to ../d3/a
moving b to ../d3/b
moving ba to ../d3/ba
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d11/a1 to ../d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/a
d1/a
A d3/b
d1/b
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
Martin Geisler
test-rename: fix \" -> " in comments
r12897 move the parent tree with "hg rename .."
Nicolas Dumazet
tests: unify test-rename
r12098
$ (cd d1/d11; hg rename .. ../../d3)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving ../a to ../../d3/a
moving ../b to ../../d3/b
moving ../ba to ../../d3/ba
Nicolas Dumazet
tests: unify test-rename
r12098 moving a1 to ../../d3/d11/a1
$ hg status -C
A d3/a
d1/a
A d3/b
d1/b
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
skip removed files
$ hg remove d1/b
$ hg rename d1 d3
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 moving d1/a to d3/a
moving d1/ba to d3/ba
moving d1/d11/a1 to d3/d11/a1
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
A d3/a
d1/a
A d3/ba
d1/ba
A d3/d11/a1
d1/d11/a1
R d1/a
R d1/b
R d1/ba
R d1/d11/a1
$ hg update -C
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm -rf d3
transitive rename
$ hg rename d1/b d1/bb
$ hg rename d1/bb d1/bc
$ hg status -C
A d1/bc
d1/b
R d1/b
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/bc
transitive rename --after
$ hg rename d1/b d1/bb
$ mv d1/bb d1/bc
$ hg rename --after d1/bb d1/bc
$ hg status -C
A d1/bc
d1/b
R d1/b
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/bc
$ echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)"
# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)
$ hg rename d1/b d1/bb
$ echo "some stuff added to d1/bb" >> d1/bb
$ hg rename d1/bb d1/b
$ hg status -C
M d1/b
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
overwriting with renames (issue1959)
$ hg rename d1/a d1/c
$ hg rename d1/b d1/a
$ hg status -C
Pierre-Yves David
rename: properly report removed and added file as modified (issue4458)...
r23402 M d1/a
Nicolas Dumazet
tests: unify test-rename
r12098 d1/b
A d1/c
d1/a
R d1/b
$ hg diff --git
Pierre-Yves David
rename: properly report removed and added file as modified (issue4458)...
r23402 diff --git a/d1/a b/d1/a
--- a/d1/a
+++ b/d1/a
@@ -1,1 +1,1 @@
-d1/a
+d1/b
diff --git a/d1/b b/d1/b
deleted file mode 100644
--- a/d1/b
+++ /dev/null
@@ -1,1 +0,0 @@
-d1/b
Nicolas Dumazet
tests: unify test-rename
r12098 diff --git a/d1/a b/d1/c
copy from d1/a
copy to d1/c
$ hg update -C
Pierre-Yves David
manifest: fix a bug where working copy file 'add' mark was buggy...
r23401 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm d1/c # The file was marked as added, so 'hg update' action was 'forget'
Nicolas Dumazet
tests: unify test-rename
r12098
check illegal path components
$ hg rename d1/d11/a1 .hg/foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/foo
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ hg rename d1/d11/a1 ../foo
Arseniy Alekseyev
tests: run many tests in $TESTTMP/repo instead of $TESTTMP...
r50516 abort: ../foo not under root '$TESTTMP/repo'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ mv d1/d11/a1 .hg/foo
$ hg rename --after d1/d11/a1 .hg/foo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/foo
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
! d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm .hg/foo
$ hg rename d1/d11/a1 .hg
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/a1
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Matt Harbison
largefiles: use the core file copy logic to validate the destination path...
r24006 $ hg --config extensions.largefiles= rename d1/d11/a1 .hg
FUJIWARA Katsunori
tests: add fsmonitor specific output lines at enabling largefiles...
r33209 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/a1
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ hg rename d1/d11/a1 ..
Arseniy Alekseyev
tests: run many tests in $TESTTMP/repo instead of $TESTTMP...
r50516 abort: ../a1 not under root '$TESTTMP/repo'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Matt Harbison
largefiles: use the core file copy logic to validate the destination path...
r24006 $ hg --config extensions.largefiles= rename d1/d11/a1 ..
FUJIWARA Katsunori
tests: add fsmonitor specific output lines at enabling largefiles...
r33209 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
Arseniy Alekseyev
tests: run many tests in $TESTTMP/repo instead of $TESTTMP...
r50516 abort: ../a1 not under root '$TESTTMP/repo'
Matt Harbison
largefiles: use the core file copy logic to validate the destination path...
r24006 [255]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ mv d1/d11/a1 .hg
$ hg rename --after d1/d11/a1 .hg
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/a1
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
! d1/d11/a1
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm .hg/a1
$ (cd d1/d11; hg rename ../../d2/b ../../.hg/foo)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: .hg/foo
Martin von Zweigbergk
errors: use detailed exit code in pathauditor...
r49192 [10]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
$ (cd d1/d11; hg rename ../../d2/b ../../../foo)
Arseniy Alekseyev
tests: run many tests in $TESTTMP/repo instead of $TESTTMP...
r50516 abort: ../../../foo not under root '$TESTTMP/repo'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-rename
r12098 $ hg status -C
Kyle Lippincott
copyfile: preserve stat info (mtime, etc.) when doing copies/renames...
r37106 check that stat information such as mtime is preserved on rename - it's unclear
whether the `touch` and `stat` commands are portable, so we mimic them using
python. Not all platforms support precision of even one-second granularity, so
we allow a rather generous fudge factor here; 1234567890 is 2009, and the
primary thing we care about is that it's not the machine's current time;
hopefully it's really unlikely for a machine to have such a broken clock that
this test fails. :)
$ mkdir mtime
Create the file (as empty), then update its mtime and atime to be 1234567890.
>>> import os
>>> filename = "mtime/f"
>>> mtime = 1234567890
>>> open(filename, "w").close()
>>> os.utime(filename, (mtime, mtime))
$ hg ci -qAm 'add mtime dir'
"hg cp" does not preserve the mtime, so it should be newer than the 2009
timestamp.
$ hg cp -q mtime mtime_cp
>>> import os
>>> filename = "mtime_cp/f"
>>> print(os.stat(filename).st_mtime < 1234567999)
False
"hg mv" preserves the mtime, so it should be ~equal to the 2009 timestamp
(modulo some fudge factor due to not every system supporting 1s-level
precision).
$ hg mv -q mtime mtime_mv
>>> import os
>>> filename = "mtime_mv/f"
>>> print(os.stat(filename).st_mtime < 1234567999)
True