-
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.
This adds "--intent-to-add" option to "git add". This is to let the system know that you will tell it the final contents to be staged later, iow, just be aware of the presense of the path with the type of the blob for now. It is implemented by staging an empty blob as the content. With this sequence: $ git reset --hard $ edit newfile $ git add -N newfile $ edit newfile oldfile $ git diff the diff will show all changes relative to the current commit. Then you can do: $ git commit -a ;# commit everything or $ git commit oldfile ;# only oldfile, newfile not yet added to pretend you are working with an index-free system like CVS. Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Junio C Hamano
committed
Aug 31, 2008
1 parent
7df437e
commit 3942581
Showing
4 changed files
with
65 additions
and
6 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#!/bin/sh | ||
|
||
test_description='Intent to add' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success 'intent to add' ' | ||
echo hello >file && | ||
echo hello >elif && | ||
git add -N file && | ||
git add elif | ||
' | ||
|
||
test_expect_success 'check result of "add -N"' ' | ||
git ls-files -s file >actual && | ||
empty=$(git hash-object --stdin </dev/null) && | ||
echo "100644 $empty 0 file" >expect && | ||
test_cmp expect actual | ||
' | ||
|
||
test_expect_success 'intent to add is just an ordinary empty blob' ' | ||
git add -u && | ||
git ls-files -s file >actual && | ||
git ls-files -s elif | sed -e "s/elif/file/" >expect && | ||
test_cmp expect actual | ||
' | ||
|
||
test_expect_success 'intent to add does not clobber existing paths' ' | ||
git add -N file elif && | ||
empty=$(git hash-object --stdin </dev/null) && | ||
git ls-files -s >actual && | ||
! grep "$empty" actual | ||
' | ||
|
||
test_done | ||
|