Merge branch 'xx/disable-replace-when-building-midx' into maint-2.45
The procedure to build multi-pack-index got confused by the replace-refs mechanism, which has been corrected by disabling the latter. * xx/disable-replace-when-building-midx: midx: disable replace objectsmaint
commit
a41463e437
|
@ -8,6 +8,7 @@
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
#include "trace2.h"
|
#include "trace2.h"
|
||||||
#include "object-store-ll.h"
|
#include "object-store-ll.h"
|
||||||
|
#include "replace-object.h"
|
||||||
|
|
||||||
#define BUILTIN_MIDX_WRITE_USAGE \
|
#define BUILTIN_MIDX_WRITE_USAGE \
|
||||||
N_("git multi-pack-index [<options>] write [--preferred-pack=<pack>]" \
|
N_("git multi-pack-index [<options>] write [--preferred-pack=<pack>]" \
|
||||||
|
@ -273,6 +274,8 @@ int cmd_multi_pack_index(int argc, const char **argv,
|
||||||
};
|
};
|
||||||
struct option *options = parse_options_concat(builtin_multi_pack_index_options, common_opts);
|
struct option *options = parse_options_concat(builtin_multi_pack_index_options, common_opts);
|
||||||
|
|
||||||
|
disable_replace_refs();
|
||||||
|
|
||||||
git_config(git_default_config, NULL);
|
git_config(git_default_config, NULL);
|
||||||
|
|
||||||
if (the_repository &&
|
if (the_repository &&
|
||||||
|
|
|
@ -434,6 +434,27 @@ test_expect_success 'tagged commits are selected for bitmapping' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'do not follow replace objects for MIDX bitmap' '
|
||||||
|
rm -fr repo &&
|
||||||
|
git init repo &&
|
||||||
|
test_when_finished "rm -fr repo" &&
|
||||||
|
(
|
||||||
|
cd repo &&
|
||||||
|
|
||||||
|
test_commit A &&
|
||||||
|
test_commit B &&
|
||||||
|
git checkout --orphan=orphan A &&
|
||||||
|
test_commit orphan &&
|
||||||
|
|
||||||
|
git replace A HEAD &&
|
||||||
|
git repack -ad --write-midx --write-bitmap-index &&
|
||||||
|
|
||||||
|
# generating reachability bitmaps with replace refs
|
||||||
|
# enabled will result in broken clones
|
||||||
|
git clone --no-local --bare . clone.git
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
corrupt_file () {
|
corrupt_file () {
|
||||||
chmod a+w "$1" &&
|
chmod a+w "$1" &&
|
||||||
printf "bogus" | dd of="$1" bs=1 seek="12" conv=notrunc
|
printf "bogus" | dd of="$1" bs=1 seek="12" conv=notrunc
|
||||||
|
|
Loading…
Reference in New Issue