-
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.
Make thin-pack generation subproject aware.
When a thin pack wants to send a tree object at "sub/dir", and the commit that is common between the sender and the receiver that is used as the base object has a subproject at that path, we should not try to use the data at "sub/dir" of the base tree as a tree object. It is not a tree to begin with, and more importantly, the commit object there does not have to even exist. Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Linus Torvalds
authored and
Junio C Hamano
committed
Aug 19, 2007
1 parent
95064cb
commit 1211be6
Showing
2 changed files
with
54 additions
and
0 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
#!/bin/sh | ||
|
||
test_description='fetching and pushing project with subproject' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success setup ' | ||
test_tick && | ||
mkdir -p sub && ( | ||
cd sub && | ||
git init && | ||
>subfile && | ||
git add subfile | ||
git commit -m "subproject commit #1" | ||
) && | ||
>mainfile | ||
git add sub mainfile && | ||
test_tick && | ||
git commit -m "superproject commit #1" | ||
' | ||
|
||
test_expect_success clone ' | ||
git clone file://`pwd`/.git cloned && | ||
(git rev-parse HEAD; git ls-files -s) >expected && | ||
( | ||
cd cloned && | ||
(git rev-parse HEAD; git ls-files -s) >../actual | ||
) && | ||
diff -u expected actual | ||
' | ||
|
||
test_expect_success advance ' | ||
echo more >mainfile && | ||
git update-index --force-remove sub && | ||
mv sub/.git sub/.git-disabled && | ||
git add sub/subfile mainfile && | ||
mv sub/.git-disabled sub/.git && | ||
test_tick && | ||
git commit -m "superproject commit #2" | ||
' | ||
|
||
test_expect_success fetch ' | ||
(git rev-parse HEAD; git ls-files -s) >expected && | ||
( | ||
cd cloned && | ||
git pull && | ||
(git rev-parse HEAD; git ls-files -s) >../actual | ||
) && | ||
diff -u expected actual | ||
' | ||
|
||
test_done |