From: Derrick Stolee <stolee@gmail.com>
To: "Martin Ågren" <martin.agren@gmail.com>,
"brian m. carlson" <sandals@crustytoothpaste.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 2/5] index-format.txt: document SHA-256 index format
Date: Fri, 14 Aug 2020 08:28:13 -0400 [thread overview]
Message-ID: <e9963ef1-cecd-cdf8-a5cf-2be884d8ced6@gmail.com> (raw)
In-Reply-To: <e811455d55cdb222a85d880f3cf3d5e28a8d4c91.1597406877.git.martin.agren@gmail.com>
On 8/14/2020 8:21 AM, Martin Ågren wrote:
> Similar to a recent commit, document that in SHA-1 repositories, we use
> SHA-1 and in SHA-256 repositories, we use SHA-256, then replace all
> other uses of "SHA-1" with something more neutral.
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
> Documentation/technical/index-format.txt | 27 +++++++++++++-----------
> 1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/Documentation/technical/index-format.txt b/Documentation/technical/index-format.txt
> index faa25c5c52..827ece2ed1 100644
> --- a/Documentation/technical/index-format.txt
> +++ b/Documentation/technical/index-format.txt
> @@ -3,8 +3,11 @@ Git index format
>
> == The Git index file has the following format
>
> - All binary numbers are in network byte order. Version 2 is described
> - here unless stated otherwise.
> + All binary numbers are in network byte order.
> + In a repository using the traditional SHA-1, checksums and object IDs
> + (object names) mentioned below are all computed using SHA-1. Similarly,
> + in SHA-256 repositories, these values are computed using SHA-256.
> + Version 2 is described here unless stated otherwise.
>
> - A 12-byte header consisting of
>
> @@ -32,7 +35,7 @@ Git index format
>
> Extension data
>
> - - 160-bit SHA-1 over the content of the index file before this
> + - 160-bit hash checksum over the content of the index file before this
> checksum.
If this hash is flexible, then "160-bit" is not correct anymore, right?
> == Index entry
> @@ -80,7 +83,7 @@ Git index format
> 32-bit file size
> This is the on-disk size from stat(2), truncated to 32-bit.
>
> - 160-bit SHA-1 for the represented object
> + 160-bit object name for the represented object
Same here. The later instances of "160-bit" were dropped.
> A 16-bit 'flags' field split into (high to low bits)
>
> @@ -211,8 +214,8 @@ Git index format
>
> The extension consists of:
>
> - - 160-bit SHA-1 of the shared index file. The shared index file path
> - is $GIT_DIR/sharedindex.<SHA-1>. If all 160 bits are zero, the
> + - Hash of the shared index file. The shared index file path
> + is $GIT_DIR/sharedindex.<hash>. If all bits are zero, the
> index does not require a shared index file.
>
> - An ewah-encoded delete bitmap, each bit represents an entry in the
> @@ -253,10 +256,10 @@ Git index format
>
> - 32-bit dir_flags (see struct dir_struct)
>
> - - 160-bit SHA-1 of $GIT_DIR/info/exclude. Null SHA-1 means the file
> + - Hash of $GIT_DIR/info/exclude. A null hash means the file
> does not exist.
>
> - - 160-bit SHA-1 of core.excludesfile. Null SHA-1 means the file does
> + - Hash of core.excludesfile. A null hash means the file does
> not exist.
>
> - NUL-terminated string of per-dir exclude file name. This usually
> @@ -285,13 +288,13 @@ The remaining data of each directory block is grouped by type:
> - An ewah bitmap, the n-th bit records "check-only" bit of
> read_directory_recursive() for the n-th directory.
>
> - - An ewah bitmap, the n-th bit indicates whether SHA-1 and stat data
> + - An ewah bitmap, the n-th bit indicates whether hash and stat data
> is valid for the n-th directory and exists in the next data.
>
> - An array of stat data. The n-th data corresponds with the n-th
> "one" bit in the previous ewah bitmap.
>
> - - An array of SHA-1. The n-th SHA-1 corresponds with the n-th "one" bit
> + - An array of hashes. The n-th hash corresponds with the n-th "one" bit
> in the previous ewah bitmap.
>
> - One NUL.
> @@ -330,12 +333,12 @@ The remaining data of each directory block is grouped by type:
>
> - 32-bit offset to the end of the index entries
>
> - - 160-bit SHA-1 over the extension types and their sizes (but not
> + - Hash over the extension types and their sizes (but not
> their contents). E.g. if we have "TREE" extension that is N-bytes
> long, "REUC" extension that is M-bytes long, followed by "EOIE",
> then the hash would be:
>
> - SHA-1("TREE" + <binary representation of N> +
> + Hash("TREE" + <binary representation of N> +
> "REUC" + <binary representation of M>)
>
> == Index Entry Offset Table
>
Thanks,
-Stolee
next prev parent reply other threads:[~2020-08-14 12:28 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-13 22:48 [PATCH 0/2] Documentation updates for SHA-256 brian m. carlson
2020-08-13 22:49 ` [PATCH 1/2] docs: document SHA-256 pack and indices brian m. carlson
2020-08-14 2:26 ` Derrick Stolee
2020-08-13 22:49 ` [PATCH 2/2] docs: fix step in transition plan brian m. carlson
2020-08-14 12:21 ` Martin Ågren
2020-08-14 2:33 ` [PATCH 0/2] Documentation updates for SHA-256 Derrick Stolee
2020-08-14 4:47 ` Junio C Hamano
2020-08-14 20:20 ` brian m. carlson
2020-08-14 20:25 ` Junio C Hamano
2020-08-14 12:21 ` [PATCH 0/5] more SHA-256 documentation Martin Ågren
2020-08-14 12:21 ` [PATCH 1/5] http-protocol.txt: document SHA-256 "want"/"have" format Martin Ågren
2020-08-14 17:28 ` Junio C Hamano
2020-08-14 20:23 ` brian m. carlson
2020-08-14 20:32 ` Martin Ågren
2020-08-14 20:39 ` Junio C Hamano
2020-08-14 20:47 ` Junio C Hamano
2020-08-14 12:21 ` [PATCH 2/5] index-format.txt: document SHA-256 index format Martin Ågren
2020-08-14 12:28 ` Derrick Stolee [this message]
2020-08-14 14:05 ` Martin Ågren
2020-08-14 12:21 ` [PATCH 3/5] protocol-capabilities.txt: clarify "allow-x-sha1-in-want" re SHA-256 Martin Ågren
2020-08-14 12:31 ` Derrick Stolee
2020-08-14 14:05 ` Martin Ågren
2020-08-14 17:33 ` Junio C Hamano
2020-08-14 20:35 ` Martin Ågren
2020-08-14 20:43 ` Junio C Hamano
2020-08-14 12:21 ` [PATCH 4/5] shallow.txt: document SHA-256 shallow format Martin Ågren
2020-08-14 12:21 ` [PATCH 5/5] commit-graph-format.txt: fix "Hash Version" description Martin Ågren
2020-08-14 12:37 ` Derrick Stolee
2020-08-14 14:10 ` Martin Ågren
2020-08-14 20:28 ` [PATCH 0/5] more SHA-256 documentation brian m. carlson
2020-08-15 16:05 ` [PATCH v2 0/4] " Martin Ågren
2020-08-15 16:05 ` [PATCH v2 1/4] http-protocol.txt: document SHA-256 "want"/"have" format Martin Ågren
2020-08-15 16:06 ` [PATCH v2 2/4] index-format.txt: document SHA-256 index format Martin Ågren
2020-08-15 16:06 ` [PATCH v2 3/4] protocol-capabilities.txt: clarify "allow-x-sha1-in-want" re SHA-256 Martin Ågren
2020-08-15 16:06 ` [PATCH v2 4/4] shallow.txt: document SHA-256 shallow format Martin Ågren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e9963ef1-cecd-cdf8-a5cf-2be884d8ced6@gmail.com \
--to=stolee@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=martin.agren@gmail.com \
--cc=sandals@crustytoothpaste.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).