-
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.
* sp/fetch-optim: Teach git-fetch to exploit server side automatic tag following Teach fetch-pack/upload-pack about --include-tag git-pack-objects: Automatically pack annotated tags if object was packed Teach git-fetch to grab a tag at the same time as a commit Make git-fetch follow tags we already have objects for sooner Teach upload-pack to log the received need lines to an fd Free the path_lists used to find non-local tags in git-fetch Allow builtin-fetch's find_non_local_tags to append onto a list Ensure tail pointer gets setup correctly when we fetch HEAD only Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch Remove unused variable in builtin-fetch find_non_local_tags
- Loading branch information
Showing
11 changed files
with
338 additions
and
24 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
#!/bin/sh | ||
|
||
test_description='git-pack-object --include-tag' | ||
. ./test-lib.sh | ||
|
||
TRASH=`pwd` | ||
|
||
test_expect_success setup ' | ||
echo c >d && | ||
git update-index --add d && | ||
tree=`git write-tree` && | ||
commit=`git commit-tree $tree </dev/null` && | ||
echo "object $commit" >sig && | ||
echo "type commit" >>sig && | ||
echo "tag mytag" >>sig && | ||
echo "tagger $(git var GIT_COMMITTER_IDENT)" >>sig && | ||
echo >>sig && | ||
echo "our test tag" >>sig && | ||
tag=`git mktag <sig` && | ||
rm d sig && | ||
git update-ref refs/tags/mytag $tag && { | ||
echo $tree && | ||
echo $commit && | ||
git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/" | ||
} >obj-list | ||
' | ||
|
||
rm -rf clone.git | ||
test_expect_success 'pack without --include-tag' ' | ||
packname_1=$(git pack-objects \ | ||
--window=0 \ | ||
test-1 <obj-list) | ||
' | ||
|
||
test_expect_success 'unpack objects' ' | ||
( | ||
GIT_DIR=clone.git && | ||
export GIT_DIR && | ||
git init && | ||
git unpack-objects -n <test-1-${packname_1}.pack && | ||
git unpack-objects <test-1-${packname_1}.pack | ||
) | ||
' | ||
|
||
test_expect_success 'check unpacked result (have commit, no tag)' ' | ||
git rev-list --objects $commit >list.expect && | ||
( | ||
GIT_DIR=clone.git && | ||
export GIT_DIR && | ||
test_must_fail git cat-file -e $tag && | ||
git rev-list --objects $commit | ||
) >list.actual && | ||
git diff list.expect list.actual | ||
' | ||
|
||
rm -rf clone.git | ||
test_expect_success 'pack with --include-tag' ' | ||
packname_1=$(git pack-objects \ | ||
--window=0 \ | ||
--include-tag \ | ||
test-2 <obj-list) | ||
' | ||
|
||
test_expect_success 'unpack objects' ' | ||
( | ||
GIT_DIR=clone.git && | ||
export GIT_DIR && | ||
git init && | ||
git unpack-objects -n <test-2-${packname_1}.pack && | ||
git unpack-objects <test-2-${packname_1}.pack | ||
) | ||
' | ||
|
||
test_expect_success 'check unpacked result (have commit, have tag)' ' | ||
git rev-list --objects mytag >list.expect && | ||
( | ||
GIT_DIR=clone.git && | ||
export GIT_DIR && | ||
git rev-list --objects $tag | ||
) >list.actual && | ||
git diff list.expect list.actual | ||
' | ||
|
||
test_done |
Oops, something went wrong.