From: Junio C Hamano <gitster@pobox•com>
To: Jeff King <peff@peff•net>
Cc: Siddharth Agarwal <sid0@fb•com>, Vicent Marti <tanoku@gmail•com>,
git@vger•kernel.org
Subject: Re: [PATCH] repack: add `repack.honorpackkeep` config var
Date: Mon, 03 Mar 2014 11:51:06 -0800 [thread overview]
Message-ID: <xmqqeh2joyc5.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <20140303181558.GA16523@sigill.intra.peff.net> (Jeff King's message of "Mon, 3 Mar 2014 13:15:58 -0500")
Jeff King <peff@peff•net> writes:
> On Mon, Mar 03, 2014 at 10:13:47AM -0800, Junio C Hamano wrote:
>
>> > Or the flip side: if the user wants to use .keep, we should drop
>> > bitmaps. My point is that we do not know which way the user wants to
>> > go, so we should not tie the options together.
>>
>> Hmph. I think the short of your later explanation is "global config
>> may tell us to use bitmap, in which case we would need a way to
>> defeat that and have existing .keep honored, and it makes it easier
>> to do so if these two are kept separate, because you do not want to
>> run around and selectively disable bitmaps in these repositories.
>> We can instead do so with repack.packKeptObjects in the global
>> configuration." and I tend to agree with the reasoning.
>
> Yes. Do you need a re-roll from me? I think the last version I sent +
> the squash to tie the default to bitmap-writing makes the most sense.
I have 9e20b390 (repack: add `repack.packKeptObjects` config var,
2014-02-26); I do not recall I've squashed anything into it, though.
Do you mean this one?
Here's the interdiff for doing the fallback:
---
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 3a3d84f..a8ddc7f 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2139,7 +2139,9 @@ repack.usedeltabaseoffset::
repack.packKeptObjects::
If set to true, makes `git repack` act as if
`--pack-kept-objects` was passed. See linkgit:git-repack[1] for
- details. Defaults to false.
+ details. Defaults to `false` normally, but `true` if a bitmap
+ index is being written (either via `--write-bitmap-index` or
+ `pack.writeBitmaps`).
rerere.autoupdate::
When set to true, `git-rerere` updates the index with the
diff --git a/builtin/repack.c b/builtin/repack.c
index 49947b2..6b0b62d 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -9,7 +9,7 @@
#include "argv-array.h"
static int delta_base_offset = 1;
-static int pack_kept_objects;
+static int pack_kept_objects = -1;
static char *packdir, *packtmp;
static const char *const git_repack_usage[] = {
@@ -190,6 +190,9 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, builtin_repack_options,
git_repack_usage, 0);
+ if (pack_kept_objects < 0)
+ pack_kept_objects = write_bitmap;
+
packdir = mkpathdup("%s/pack", get_object_directory());
packtmp = mkpathdup("%s/.tmp-%d-pack", packdir, (int)getpid());
diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh
index f8431a8..b1eed5c 100755
--- a/t/t7700-repack.sh
+++ b/t/t7700-repack.sh
@@ -21,7 +21,7 @@ test_expect_success 'objects in packs marked .keep are not repacked' '
objsha1=$(git verify-pack -v pack-$packsha1.idx | head -n 1 |
sed -e "s/^\([0-9a-f]\{40\}\).*/\1/") &&
mv pack-* .git/objects/pack/ &&
- git repack -A -d -l &&
+ git repack --no-pack-kept-objects -A -d -l &&
git prune-packed &&
for p in .git/objects/pack/*.idx; do
idx=$(basename $p)
@@ -35,9 +35,9 @@ test_expect_success 'objects in packs marked .keep are not repacked' '
test -z "$found_duplicate_object"
'
-test_expect_success '--pack-kept-objects duplicates objects' '
+test_expect_success 'writing bitmaps duplicates .keep objects' '
# build on $objsha1, $packsha1, and .keep state from previous
- git repack -Adl --pack-kept-objects &&
+ git repack -Adl &&
test_when_finished "found_duplicate_object=" &&
for p in .git/objects/pack/*.idx; do
idx=$(basename $p)
next prev parent reply other threads:[~2014-03-03 19:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-23 2:38 WIth git-next, writing bitmaps fails when keep files are present Siddharth Agarwal
2014-01-23 20:36 ` Siddharth Agarwal
2014-01-23 22:52 ` [PATCH] pack-objects: turn off bitmaps when skipping objects Jeff King
2014-01-23 23:45 ` Siddharth Agarwal
2014-01-23 23:53 ` Siddharth Agarwal
2014-01-24 2:28 ` Jeff King
2014-01-24 2:44 ` Siddharth Agarwal
2014-01-28 6:09 ` [PATCH] repack: add `repack.honorpackkeep` config var Jeff King
2014-01-28 9:21 ` Junio C Hamano
2014-02-24 8:24 ` Jeff King
2014-02-24 19:10 ` Junio C Hamano
2014-02-26 10:13 ` Jeff King
2014-02-26 20:30 ` Junio C Hamano
2014-02-27 11:27 ` Jeff King
2014-02-27 18:04 ` Junio C Hamano
2014-02-28 8:55 ` Jeff King
2014-02-28 17:09 ` Nasser Grainawi
2014-03-01 6:05 ` Jeff King
2014-03-03 19:12 ` Shawn Pearce
2014-02-28 18:45 ` Junio C Hamano
2014-03-01 5:43 ` Jeff King
2014-03-03 18:13 ` Junio C Hamano
2014-03-03 18:15 ` Jeff King
2014-03-03 19:51 ` Junio C Hamano [this message]
2014-03-03 20:04 ` Jeff King
2014-01-23 23:56 ` [PATCH] pack-objects: turn off bitmaps when skipping objects Vicent Martí
2014-01-24 2:26 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqeh2joyc5.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=peff@peff$(echo .)net \
--cc=sid0@fb$(echo .)com \
--cc=tanoku@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox