Re: [PATCH v2 5/9] pack-bitmap: introduce bitmap_walk_contains()
- From
Philip Oakley <philipoakley@iee.email>
- Date
- Oct 19, 2019, 15:25 UTC
- Message-ID
- <dce8e0b5-c4ea-f4f6-6275-1322f2d7200b@iee.email>
- In-Reply-To
- <20191019103531.23274-6-chriscool@tuxfamily.org>
Hi Christian, can I check one thing?
On 19/10/2019 11:35, Christian Couder wrote:
Show 24 quoted lines
> From: Jeff King <peff@peff.net>
>
> We will use this helper function in a following commit to
> tell us if an object is packed.
>
> Signed-off-by: Jeff King <peff@peff.net>
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
> ---
> pack-bitmap.c | 12 ++++++++++++
> pack-bitmap.h | 3 +++
> 2 files changed, 15 insertions(+)
>
> diff --git a/pack-bitmap.c b/pack-bitmap.c
> index 016d0319fc..8a51302a1a 100644
> --- a/pack-bitmap.c
> +++ b/pack-bitmap.c
> @@ -826,6 +826,18 @@ int reuse_partial_packfile_from_bitmap(struct bitmap_index *bitmap_git,
> return 0;
> }
>
> +int bitmap_walk_contains(struct bitmap_index *bitmap_git,
> + struct bitmap *bitmap, const struct object_id *oid)
> +{
> + int idx;Excuse my ignorance here...
For the case on Windows (int/long 32 bit), is this return value guaranteed to be less than 2GiB, i.e. not a memory offset?
I'm just thinking ahead to the resolution of the 4GiB file limit issue on Git-for-Windows (https://github.com/git-for-windows/git/pull/2179)
Show 32 quoted lines
> +
> + if (!bitmap)
> + return 0;
> +
> + idx = bitmap_position(bitmap_git, oid);
> + return idx >= 0 && bitmap_get(bitmap, idx);
> +}
> +
> void traverse_bitmap_commit_list(struct bitmap_index *bitmap_git,
> show_reachable_fn show_reachable)
> {
> diff --git a/pack-bitmap.h b/pack-bitmap.h
> index 466c5afa09..6ab6033dbe 100644
> --- a/pack-bitmap.h
> +++ b/pack-bitmap.h
> @@ -3,6 +3,7 @@
>
> #include "ewah/ewok.h"
> #include "khash.h"
> +#include "pack.h"
> #include "pack-objects.h"
>
> struct commit;
> @@ -53,6 +54,8 @@ int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
> int rebuild_existing_bitmaps(struct bitmap_index *, struct packing_data *mapping,
> kh_oid_map_t *reused_bitmaps, int show_progress);
> void free_bitmap_index(struct bitmap_index *);
> +int bitmap_walk_contains(struct bitmap_index *,
> + struct bitmap *bitmap, const struct object_id *oid);
>
> /*
> * After a traversal has been performed by prepare_bitmap_walk(), this can be-- Philip