-
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.
Teach read-tree the -n|--dry-run option
The option can be used to check if read-tree with the same set of other options like "-m" and "-u" would succeed without actually changing either the index or the working tree. The relevant tests in the t10?? range were extended to do a read-tree -n before the real read-tree to make sure neither the index nor any local files were changed with -n and the same exit code as without -n is returned. The helper functions added for that purpose reside in the new t/lib-read-tree.sh file. The only exception is #13 in t1004 ("unlinking an un-unlink-able symlink"). As this is an issue of wrong directory permissions it is not detected with -n. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Jens Lehmann
authored and
Junio C Hamano
committed
May 25, 2011
1 parent
2c9078d
commit ea5070c
Showing
12 changed files
with
198 additions
and
140 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#!/bin/sh | ||
# | ||
# Helper functions to check if read-tree would succeed/fail as expected with | ||
# and without the dry-run option. They also test that the dry-run does not | ||
# write the index and that together with -u it doesn't touch the work tree. | ||
# | ||
read_tree_must_succeed () { | ||
git ls-files -s >pre-dry-run && | ||
git read-tree -n "$@" && | ||
git ls-files -s >post-dry-run && | ||
test_cmp pre-dry-run post-dry-run && | ||
git read-tree "$@" | ||
} | ||
|
||
read_tree_must_fail () { | ||
git ls-files -s >pre-dry-run && | ||
test_must_fail git read-tree -n "$@" && | ||
git ls-files -s >post-dry-run && | ||
test_cmp pre-dry-run post-dry-run && | ||
test_must_fail git read-tree "$@" | ||
} | ||
|
||
read_tree_u_must_succeed () { | ||
git ls-files -s >pre-dry-run && | ||
git diff-files -p >pre-dry-run-wt && | ||
git read-tree -n "$@" && | ||
git ls-files -s >post-dry-run && | ||
git diff-files -p >post-dry-run-wt && | ||
test_cmp pre-dry-run post-dry-run && | ||
test_cmp pre-dry-run-wt post-dry-run-wt && | ||
git read-tree "$@" | ||
} | ||
|
||
read_tree_u_must_fail () { | ||
git ls-files -s >pre-dry-run && | ||
git diff-files -p >pre-dry-run-wt && | ||
test_must_fail git read-tree -n "$@" && | ||
git ls-files -s >post-dry-run && | ||
git diff-files -p >post-dry-run-wt && | ||
test_cmp pre-dry-run post-dry-run && | ||
test_cmp pre-dry-run-wt post-dry-run-wt && | ||
test_must_fail git read-tree "$@" | ||
} |
Oops, something went wrong.