git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Christian CouderNext: Christian Couder
Message 9 of 22 in “Rewrite packfile reuse code”
  1. 0/9 Rewrite packfile reuse codeChristian Couder, Oct 19, 2019
  2. 1/9 builtin/pack-objects: report reused packfile objectsChristian Couder, Oct 19, 2019
  3. 2/9 packfile: expose get_delta_base()Christian Couder, Oct 19, 2019
  4. 3/9 ewah/bitmap: introduce bitmap_word_alloc()Christian Couder, Oct 19, 2019
  5. Jonathan TanOct 22, 2019
  6. Christian CouderOct 26, 2019
  7. 4/9 pack-bitmap: don't rely on bitmap_git->reuse_objectsChristian Couder, Oct 19, 2019
  8. 5/9 pack-bitmap: introduce bitmap_walk_contains()Christian Couder, Oct 19, 2019
  9. Philip OakleyOct 19, 2019
  10. Christian CouderOct 19, 2019
  11. Philip OakleyOct 19, 2019
  12. Jeff KingOct 19, 2019
  13. 6/9 csum-file: introduce hashfile_total()Christian Couder, Oct 19, 2019
  14. 7/9 pack-objects: introduce pack.allowPackReuseChristian Couder, Oct 19, 2019
  15. 8/9 builtin/pack-objects: introduce obj_is_packed()Christian Couder, Oct 19, 2019
  16. 9/9 pack-objects: improve partial packfile reuseChristian Couder, Oct 19, 2019
  17. Philip OakleyOct 19, 2019
  18. Christian CouderOct 19, 2019
  19. Jeff KingOct 19, 2019
  20. Philip OakleyOct 20, 2019
  21. Jonathan TanOct 22, 2019
  22. Christian CouderOct 26, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.