[PATCH 2 of 4] tests: add test for merging flags across renames
Laurens Holst
laurens.nospam at grauw.nl
Tue Dec 27 15:34:57 CST 2011
Op 27-12-2011 22:31, Laurens Holst schreef:
> # HG changeset patch
> # User Laurens Holst<laurens.hg at grauw.nl>
> # Date 1325009759 -3600
> # Node ID 1d836a646d9e5d26843e461b8d43f77d694df0b9
> # Parent 3317d5c34f384c6d1d8440e19980a2261beecc7a
> tests: add test for merging flags across renames
>
> diff -r 3317d5c34f38 -r 1d836a646d9e tests/test-merge-types.t
> --- a/tests/test-merge-types.t Wed Dec 21 18:20:15 2011 +0100
> +++ b/tests/test-merge-types.t Tue Dec 27 19:15:59 2011 +0100
> @@ -3,8 +3,11 @@
> $ hg init
>
> $ echo a> a
> + $ mkdir dir
> + $ echo a> dir/a
> $ hg ci -Amadd
> adding a
> + adding dir/a
>
> $ chmod +x a
> $ hg ci -mexecutable
> @@ -20,7 +23,7 @@
> searching for copies back to rev 1
> resolving manifests
> overwrite: False, partial: False
> - ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c
> + ancestor: dc8452f1f7df, local: 300b353ff13f+, remote: 5d0a685473c5
> conflicting flags for a
> (n)one, e(x)ec or sym(l)ink? n
> a: update permissions -> e
> @@ -48,7 +51,7 @@
> searching for copies back to rev 1
> resolving manifests
> overwrite: False, partial: False
> - ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
> + ancestor: dc8452f1f7df, local: 5d0a685473c5+, remote: 300b353ff13f
> conflicting flags for a
> (n)one, e(x)ec or sym(l)ink? n
> a: remote is newer -> g
> @@ -70,3 +73,207 @@
> > fi
> a has no flags (default for conflicts)
>
> +Executable in other parent, moved in local:
> +
> + $ hg up 0 -C
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + $ hg mv a b
> + $ hg ci -mmove
> + created new head
> + $ hg merge -r 1 --debug
> + searching for copies back to rev 1
> + unmatched files in local:
> + b
> + all copies found (* = to merge, ! = divergent):
> + b -> a
> + checking for directory renames
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: f95452bac98f+, remote: 5d0a685473c5
> + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f b ]; then
> +> echo b does not exist
> +> elif [ -h b ]; then
> +> echo b is a symlink
> +> $TESTDIR/readlink.py b
> +> elif [ -x b ]; then
> +> echo b is executable
> +> else
> +> echo b has no flags
> +> fi
> + b has no flags
This.
> +
> +Executable in local, moved in other parent:
> +
> + $ hg up 1 -C
> + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + $ hg merge -r 3 --debug
> + searching for copies back to rev 1
> + unmatched files in other:
> + b
> + all copies found (* = to merge, ! = divergent):
> + b -> a
> + checking for directory renames
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: 5d0a685473c5+, remote: f95452bac98f
> + a: other deleted -> r
> + b: remote created -> g
> + updating: a 1/2 files (50.00%)
> + removing a
> + updating: b 2/2 files (100.00%)
> + getting b
> + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f b ]; then
> +> echo b does not exist
> +> elif [ -h b ]; then
> +> echo b is a symlink
> +> $TESTDIR/readlink.py b
> +> elif [ -x b ]; then
> +> echo b is executable
> +> else
> +> echo b has no flags
> +> fi
> + b has no flags
This.
> +
> +Executable in other parent, copied in local:
> +
> + $ hg up 0 -C
> + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + $ hg cp a b
> + $ hg ci -mmove
> + created new head
> + $ hg merge -r 1 --debug
> + searching for copies back to rev 1
> + unmatched files in local:
> + b
> + all copies found (* = to merge, ! = divergent):
> + b -> a
> + checking for directory renames
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: a810d3446267+, remote: 5d0a685473c5
> + a: update permissions -> e
> + updating: a 1/1 files (100.00%)
> + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f b ]; then
> +> echo b does not exist
> +> elif [ -h b ]; then
> +> echo b is a symlink
> +> $TESTDIR/readlink.py b
> +> elif [ -x b ]; then
> +> echo b is executable
> +> else
> +> echo b has no flags
> +> fi
> + b has no flags
This.
> +
> +Executable in local, copied in other parent:
> +
> + $ hg up 1 -C
> + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + $ hg merge -r 4 --debug
> + searching for copies back to rev 1
> + unmatched files in other:
> + b
> + all copies found (* = to merge, ! = divergent):
> + b -> a
> + checking for directory renames
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: 5d0a685473c5+, remote: a810d3446267
> + b: remote created -> g
> + updating: b 1/1 files (100.00%)
> + getting b
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f b ]; then
> +> echo b does not exist
> +> elif [ -h b ]; then
> +> echo b is a symlink
> +> $TESTDIR/readlink.py b
> +> elif [ -x b ]; then
> +> echo b is executable
> +> else
> +> echo b has no flags
> +> fi
> + b has no flags
This.
> +
> +Executable in other parent, directory rename in local:
> +
> + $ hg up 0 -C
> + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + $ hg mv dir dir2
> + moving dir/a to dir2/a
> + $ hg ci -mdirectorymove
> + created new head
> + $ hg merge -r 1 --debug
> + searching for copies back to rev 1
> + unmatched files in local:
> + dir2/a
> + all copies found (* = to merge, ! = divergent):
> + dir2/a -> dir/a
> + checking for directory renames
> + dir dir/ -> dir2/
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: b3f243fb658c+, remote: 5d0a685473c5
> + a: update permissions -> e
> + updating: a 1/1 files (100.00%)
> + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f dir2/a ]; then
> +> echo dir2/a does not exist
> +> elif [ -h dir2/a ]; then
> +> echo dir2/a is a symlink
> +> $TESTDIR/readlink.py dir2/a
> +> elif [ -x dir2/a ]; then
> +> echo dir2/a is executable
> +> else
> +> echo dir2/a has no flags
> +> fi
> + dir2/a has no flags
This.
> +
> +Executable in local, directory rename in other parent:
> +
> + $ hg up 1 -C
> + 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + $ hg merge -r 5 --debug
> + searching for copies back to rev 1
> + unmatched files in other:
> + dir2/a
> + all copies found (* = to merge, ! = divergent):
> + dir2/a -> dir/a
> + checking for directory renames
> + dir dir/ -> dir2/
> + resolving manifests
> + overwrite: False, partial: False
> + ancestor: dc8452f1f7df, local: 5d0a685473c5+, remote: b3f243fb658c
> + dir/a: other deleted -> r
> + dir2/a: remote created -> g
> + updating: dir/a 1/2 files (50.00%)
> + removing dir/a
> + updating: dir2/a 2/2 files (100.00%)
> + getting dir2/a
> + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
> + (branch merge, don't forget to commit)
> +
> + $ if [ ! -f dir2/a ]; then
> +> echo dir2/a does not exist
> +> elif [ -h dir2/a ]; then
> +> echo dir2/a is a symlink
> +> $TESTDIR/readlink.py dir2/a
> +> elif [ -x dir2/a ]; then
> +> echo dir2/a is executable
> +> else
> +> echo dir2/a has no flags
> +> fi
> + dir2/a has no flags
And this seems odd to me. If the file contents are copied, shouldn’t the
executable (and symlink) flags for these be copied as well?
~Laurens
--
~~ Ushiko-san! Kimi wa doushite, Ushiko-san nan da!! ~~
Laurens Holst, developer, Utrecht, the Netherlands
Website: www.grauw.nl. Working @ www.roughcookie.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4332 bytes
Desc: S/MIME cryptografische ondertekening
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20111227/8f1861e2/attachment.bin>
More information about the Mercurial-devel
mailing list