On Wed, Oct 30, 2013 at 05:28:08PM +0700, Nguyen Thai Ngoc Duy wrote:
> > One other criterion I should have mentioned: we must be using the
> > internal rev-list. That prevented us in v1.8.4.1 and earlier from using
> > bitmaps for shallow fetches. But as of v1.8.4.2, we always use
> > pack-objects' rev-walker. We may need to pass --no-use-bitmap-index for
> > shallow fetches.
>
> I don't think a new option is needed. The code just needs to check if
> there are any commit grafts. If there are, fall back to the old way.
> That covers both shallow fetches and some rare grafted repos. I think
> refs/replace/* does not impact rev walking, so we should be fine if
> it's used.
I think there are two cases that we need to consider:
1. We have a full repo and somebody requests a shallow clone for us.
We probably do not want to use bitmaps here. In the series we have
been testing, shallow clones turned off bitmaps because we do not
use the internal rev_list. But as of cdab485 (upload-pack: delegate
rev walking in shallow fetch to pack-objects), that distinction
doesn't hold. I think we can check the use of --shallow-file
instead of explicitly turning off bitmaps there.
2. We have a shallow clone that wants to repack. We probably want to
turn off bitmap writing here. I don't think that grafts actually
matter here, because pack-objects should always be looking at the
true graph. It would mean that using "git rev-list
--use-bitmap-index" does not respect the grafts, and we should
probably disable it in that case (and ditto for replacements).
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html