-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* js/symlink: Tell multi-parent diff about core.symlinks. Handle core.symlinks=false case in merge-recursive. Add core.symlinks to mark filesystems that do not support symbolic links.
- Loading branch information
Showing
15 changed files
with
175 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2007 Johannes Sixt | ||
# | ||
|
||
test_description='git-checkout-index on filesystem w/o symlinks test. | ||
This tests that git-checkout-index creates a symbolic link as a plain | ||
file if core.symlinks is false.' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success \ | ||
'preparation' ' | ||
git-config core.symlinks false && | ||
l=$(echo -n file | git-hash-object -t blob -w --stdin) && | ||
echo "120000 $l symlink" | git-update-index --index-info' | ||
|
||
test_expect_success \ | ||
'the checked-out symlink must be a file' ' | ||
git-checkout-index symlink && | ||
test -f symlink' | ||
|
||
test_expect_success \ | ||
'the file must be the blob we added during the setup' ' | ||
test "$(git-hash-object -t blob symlink)" = $l' | ||
|
||
test_done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2007 Johannes Sixt | ||
# | ||
|
||
test_description='git-update-index on filesystem w/o symlinks test. | ||
This tests that git-update-index keeps the symbolic link property | ||
even if a plain file is in the working tree if core.symlinks is false.' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success \ | ||
'preparation' ' | ||
git-config core.symlinks false && | ||
l=$(echo -n file | git-hash-object -t blob -w --stdin) && | ||
echo "120000 $l symlink" | git-update-index --index-info' | ||
|
||
test_expect_success \ | ||
'modify the symbolic link' ' | ||
echo -n new-file > symlink && | ||
git-update-index symlink' | ||
|
||
test_expect_success \ | ||
'the index entry must still be a symbolic link' ' | ||
case "`git-ls-files --stage --cached symlink`" in | ||
120000" "*symlink) echo ok;; | ||
*) echo fail; git-ls-files --stage --cached symlink; (exit 1);; | ||
esac' | ||
|
||
test_done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#!/bin/sh | ||
# | ||
# Copyright (c) 2007 Johannes Sixt | ||
# | ||
|
||
test_description='merging symlinks on filesystem w/o symlink support. | ||
This tests that git-merge-recursive writes merge results as plain files | ||
if core.symlinks is false.' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success \ | ||
'setup' ' | ||
git-config core.symlinks false && | ||
> file && | ||
git-add file && | ||
git-commit -m initial && | ||
git-branch b-symlink && | ||
git-branch b-file && | ||
l=$(echo -n file | git-hash-object -t blob -w --stdin) && | ||
echo "120000 $l symlink" | git-update-index --index-info && | ||
git-commit -m master && | ||
git-checkout b-symlink && | ||
l=$(echo -n file-different | git-hash-object -t blob -w --stdin) && | ||
echo "120000 $l symlink" | git-update-index --index-info && | ||
git-commit -m b-symlink && | ||
git-checkout b-file && | ||
echo plain-file > symlink && | ||
git-add symlink && | ||
git-commit -m b-file' | ||
|
||
test_expect_failure \ | ||
'merge master into b-symlink, which has a different symbolic link' ' | ||
! git-checkout b-symlink || | ||
git-merge master' | ||
|
||
test_expect_success \ | ||
'the merge result must be a file' ' | ||
test -f symlink' | ||
|
||
test_expect_failure \ | ||
'merge master into b-file, which has a file instead of a symbolic link' ' | ||
! (git-reset --hard && | ||
git-checkout b-file) || | ||
git-merge master' | ||
|
||
test_expect_success \ | ||
'the merge result must be a file' ' | ||
test -f symlink' | ||
|
||
test_expect_failure \ | ||
'merge b-file, which has a file instead of a symbolic link, into master' ' | ||
! (git-reset --hard && | ||
git-checkout master) || | ||
git-merge b-file' | ||
|
||
test_expect_success \ | ||
'the merge result must be a file' ' | ||
test -f symlink' | ||
|
||
test_done |