Re: [PATCH v4 00/25] multi-pack reachability bitmaps
- From
Johannes Berg <johannes@sipsolutions.net>
- Date
- Aug 25, 2021, 07:48 UTC
- Message-ID
- <d66f040e663f935c5407fdecad43a4c3d8e57105.camel@sipsolutions.net>
- In-Reply-To
- <YSXy73lWKteiuY6s@coredump.intra.peff.net>
On Wed, 2021-08-25 at 03:36 -0400, Jeff King wrote:
Show 12 quoted lines
> On Tue, Aug 24, 2021 at 10:10:12PM -0400, Taylor Blau wrote: > > > > It's not clear to me that we have a resolution on whether calling "cd .. > > > && git multi-pack-index write --object-dir repo.git" is supposed to > > > work. > > > > My recommendation would be to do the following things, all in a reroll > > of this series: > > > > - Fix the bug by which we would delete a .rev or .bitmap file out of a > > different object store than we were working in (when the caller > > passes `--object-dir`).
That was what my patch did, afaict.
Show 18 quoted lines
> > - Disallow running `git multi-pack-index` outside of a Git repository. > > > > - Restrict `--object-dir` to only work with alternates of the > > repository in the current working directory. > > > > To me, that seems like both the least-surprising behavior, and what > > would lend itself to the easiest implementation. I would probably argue > > that the existing behavior (where `--object-dir` would work against > > arbitrary repositories) is a bug, and shouldn't continue to be > > supported. > > All of those seem reasonable to me, and are what I would suggest if we > were starting from scratch. My only hesitation is whether people are > using the weird behavior of --object-dir in the wild (e.g., are bup > folks relying on it). > > Johannes, is this something you're using _now_, and it works, or > something you hoped to use in the future?
I was "hoping" to use
git multi-pack-index --object-dir=... write
but never
$ git multi-pack-index write --object-dir=...
which almost seems like it really is more like
$ git -C ... multi-pack-index write
anyway, because you specify a repo? At least per the above example, I never tried.
As I started playing with that again (I had done before, and it worked) I noticed the segfault, hence my previous patch.
However, what I was thinking of doing is more outlined in this thread: https://lore.kernel.org/git/20210820195558.44275-1-johannes@sipsolutions.net/
And essentially, as I described later in https://lore.kernel.org/git/dbb24573efc3dd945acd8acdfd9fe627ad7cbcd2.camel@sipsolutions.net/
I have two only vaguely overlapping use cases.
One of them doesn't need "--object-dir", and the other requires that [RFC PATCH] to be applied as well, which would basically let me use only the small subset of git that is "git multi-pack-index" as machinery to *just* do indexing, *without* really ever having a real "repository" that git could otherwise operate on and worry about the actual objects etc.
I might resend that with the code style issues fixed, but the objects seemed more fundamental.
> But what I'm wondering is whether using --object-dir from outside a repo > entirely is actually something that even works. I.e., would we be > disabling a behavior that was not intended, but does happen to work? Or > are we closing off a possibly buggy and half-working part of the system?
Well, it does work now, modulo the segfault, but that is actually a very recent addition, I'd tried this before :)
johannes