mirror of
https://github.com/git/git.git
synced 2026-02-07 00:05:02 +00:00
Merge branch 'racy-dissociate'
This fixes a file-locking problem with `git clone --dissociate`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
@@ -999,8 +999,15 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
||||
transport_unlock_pack(transport);
|
||||
transport_disconnect(transport);
|
||||
|
||||
if (option_dissociate)
|
||||
if (option_dissociate) {
|
||||
struct packed_git *p;
|
||||
|
||||
for (p = packed_git; p; p = p->next) {
|
||||
close_pack_windows(p);
|
||||
close_pack_index(p);
|
||||
}
|
||||
dissociate_from_references();
|
||||
}
|
||||
|
||||
junk_mode = JUNK_LEAVE_REPO;
|
||||
err = checkout();
|
||||
|
||||
@@ -214,5 +214,26 @@ test_expect_success 'clone and dissociate from reference' '
|
||||
test_must_fail git -C R fsck &&
|
||||
git -C S fsck
|
||||
'
|
||||
test_expect_success 'clone, dissociate from partial reference and repack' '
|
||||
rm -fr P Q R &&
|
||||
git init P &&
|
||||
(
|
||||
cd P &&
|
||||
test_commit one &&
|
||||
git repack &&
|
||||
test_commit two &&
|
||||
git repack
|
||||
) &&
|
||||
git clone --bare P Q &&
|
||||
(
|
||||
cd P &&
|
||||
git checkout -b second &&
|
||||
test_commit three &&
|
||||
git repack
|
||||
) &&
|
||||
git clone --bare --dissociate --reference=P Q R &&
|
||||
ls R/objects/pack/*.pack >packs.txt &&
|
||||
test_line_count = 1 packs.txt
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user