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

Re: [PATCH] Extend index to save more flags

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 2, 2008, 07:25 UTC
Message-ID
<7vhc8zm2ka.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1220278585-26969-1-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 10 quoted lines
> The on-disk format of index only saves 16 bit flags, nearly all have
> been used. The last bit (CE_EXTENDED) is used to for future extension.
>
> This patch extends index entry format to save more flags in future.
> The new entry format will be used when CE_EXTENDED bit is 1.
>
> Because older implementation may not understand CE_EXTENDED bit and
> misread the new format, if there is any extended entry in index, index
> header version will turn 3, which makes it incompatible for older git.
> If there is none, header version will return to 2 again.
I think this is a good change.
Show 28 quoted lines
> diff --git a/cache.h b/cache.h
> index f725783..f8578d1 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -109,6 +109,26 @@ struct ondisk_cache_entry {
>  	char name[FLEX_ARRAY]; /* more */
>  };
>  
> +/*
> + * This struct is used when CE_EXTENDED bit is 1
> + * The struct must match ondisk_cache_entry exactly from
> + * ctime till flags
> + */
> +struct ondisk_cache_entry_extended {
> +	struct cache_time ctime;
> +	struct cache_time mtime;
> +	unsigned int dev;
> +	unsigned int ino;
> +	unsigned int mode;
> +	unsigned int uid;
> +	unsigned int gid;
> +	unsigned int size;
> +	unsigned char sha1[20];
> +	unsigned short flags;
> +	unsigned short flags2;
> +	char name[FLEX_ARRAY]; /* more */
> +};
> +

We should change these to more explicitly sized uint32_t both in the original and this extended structure, but after this patch (or later variant of it) lands in the tree.

Previous: Nguyễn Thái Ngọc DuyNext: Nguyen Thai Ngoc Duy
Message 4 of 5 in “Extend index to save more flags”
  1. Extend index to save more flagsNguyễn Thái Ngọc Duy, Sep 1, 2008
  2. Johannes SixtSep 1, 2008
  3. Extend index to save more flagsNguyễn Thái Ngọc Duy, Sep 1, 2008
  4. Junio C HamanoSep 2, 2008
  5. Nguyen Thai Ngoc DuySep 2, 2008

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.