Mercurial > hg
view tests/test-ui-config.py.out @ 31720:dea2a17cbfd0
hardlink: check directory's st_dev when copying files
Previously, when copying a file, copyfiles will compare src's st_dev with
dirname(dst)'s st_dev, to decide whether to enable hardlink or not.
That could have issues on Linux's overlayfs, where stating directories could
result in different st_dev from st_dev of stating files, even if both the
directories and the files exist in the overlay's upperdir.
This patch fixes it by checking dirname(src) instead. It's more consistent
because we are checking directories for both src and dest.
That fixes test-hardlinks.t running on common Docker setups.
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 29 Mar 2017 12:37:03 -0700 |
parents | a6344df5108e |
children | 0ed730f3301c |
line wrap: on
line source
[('string', 'string value'), ('bool1', 'true'), ('bool2', 'false'), ('boolinvalid', 'foo'), ('int1', '42'), ('int2', '-42'), ('intinvalid', 'foo')] [('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob'), ('list5', 'abc d"ef"g "hij def"'), ('list6', '"hello world", "how are you?"'), ('list7', 'Do"Not"Separate'), ('list8', '"Do"Separate'), ('list9', '"Do\\"NotSeparate"'), ('list10', 'string "with extraneous" quotation mark"'), ('list11', 'x, y'), ('list12', '"x", "y"'), ('list13', '""" key = "x", "y" """'), ('list14', ',,,,'), ('list15', '" just with starting quotation'), ('list16', '"longer quotation" with "no ending quotation'), ('list17', 'this is \\" "not a quotation mark"'), ('list18', 'ding\ndong')] --- 'string value' 'true' 'false' None --- values.string is not a boolean ('string value') True False False False True --- 42 -42 --- ['foo'] ['foo', 'bar', 'baz'] ['alice', 'bob'] ['foo', 'bar', 'baz', 'alice', 'bob'] ['foo', 'bar', 'baz', 'alice', 'bob'] ['abc', 'd"ef"g', 'hij def'] ['hello world', 'how are you?'] ['Do"Not"Separate'] ['Do', 'Separate'] ['Do"NotSeparate'] ['string', 'with extraneous', 'quotation', 'mark"'] ['x', 'y'] ['x', 'y'] ['', ' key = ', 'x"', 'y', '', '"'] [] ['"', 'just', 'with', 'starting', 'quotation'] ['longer quotation', 'with', '"no', 'ending', 'quotation'] ['this', 'is', '"', 'not a quotation mark'] ['ding', 'dong'] [] [] ['foo'] ['foo'] ['foo', 'bar'] ['foo', 'bar'] ['foo bar'] ['foo', 'bar'] None True boolinvalid intinvalid