Mercurial > hg
view tests/test-batching.py.out @ 31209:dd2364f5180a
localrepo: handle rename with hardlinks properly
In "aftertrans", we rename "journal.*" to "undo.*". We expect "journal.*"
files to disappear after renaming.
However, if "journal.foo" and "undo.foo" refer to a same file (hardlink),
rename may be a no-op, leaving both files on disk, according to Linux
manpage [1]:
If oldpath and newpath are existing hard links referring to the same
file, then rename() does nothing, and returns a suc‐ cess status.
The POSIX specification [2] is not very clear about what to do.
To be safe, remove "undo.*" before the rename so "journal.*" cannot be left
on disk.
[1]: http://man7.org/linux/man-pages/man2/rename.2.html
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/
author | Jun Wu <quark@fb.com> |
---|---|
date | Thu, 02 Mar 2017 21:49:30 -0800 |
parents | 84094c0d2724 |
children | e2fc2122029c |
line wrap: on
line source
== Local Ready. Un and Deux Eins und Zwei One and Two Nope Eins und Zwei Hello, John Smith Ready. Uno und Due == Remote Ready. REQ: foo?one=Vo&two=Efvy -> Vo!boe!Efvy Un and Deux REQ: bar?b=Fjot&a=[xfj -> Fjot!voe![xfj Eins und Zwei REQ: batch?cmds=foo:one=Pof,two=Uxp;bar:b=Fjot,a=[xfj -> Pof!boe!Uxp;Fjot!voe![xfj REQ: greet?name=Kpio!Tnjui -> Ifmmp-!Kpio!Tnjui REQ: batch?cmds=bar:b=Vop,a=Evf -> Vop!voe!Evf One and Two Nope Eins und Zwei Hello, John Smith Ready. Uno und Due