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

Re: [PATCH 2/3] sha1dc: use sha1collisiondetection as a submodule

From
Junio C Hamano <gitster@pobox.com>
Date
May 20, 2017, 11:13 UTC
Message-ID
<xmqqpof3srw4.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170518212858.3649-3-avarab@gmail.com>
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 22 quoted lines
> Replace the forked sha1dc directory with a copy of the upstream code
> imported as a submodule. This is the exact same code as now exists in
> the sha1dc/ directory.
>
> The initial reason for copy/pasting the code into sha1dc and locally
> modifying it was that it needed to be altered to work with the git
> project.
>
> The upstream project has accepted my code changes to allow us to use
> their code as-is, see the preceding commit for details. So import the
> code as a submodule instead, this will make it easier to keep
> up-to-date with any upstream fixes or improvements.
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  .gitmodules            | 4 ++++
>  Makefile               | 4 ++--
>  hash.h                 | 2 +-
>  sha1collisiondetection | 1 +
>  4 files changed, 8 insertions(+), 3 deletions(-)
>  create mode 100644 .gitmodules
>  create mode 160000 sha1collisiondetection

I am not sure how prepared our .travis.yml is to deal with a submodule, I'd prefer to have this step broken down to two step process.

That is, [PATCH 2.1/3] first adds an otherwise unused submodule, so that people can optionally do "git submodule init && git submodule update" so that they can compare the contents of sha1dc/ that has been updated by [PATCH 1/3] with the up-to-date upstream. Then [PATCH 2.2/3] would update the Makefile and hash.h to use the code in the submodule.

I actually would want to see us proceed even more cautiously---if the latter-half, i.e. [PATCH 2.2/3], is arranged so that it uses the new sha1collisiondetection/ only when the submodule is initialized and populated, and otherwise it uses sha1dc/ as before, I would feel a lot safer. I wouldn't be this paranoid if this "let's start using submodule ourselves" were done to some optional corner (like compat/ or contrib/ somewhere), but this is the default hash function. I do want to have something like this to force us (and submodule folks) to get any kinks out, but I do not want to see many people not even be able to build while this new arrangement is eased in. Once people are comfortable with the new arrangement to use code from submodule, we can then take [PATCH 3/3] to remove the old sha1dc/ directory and the migration will be complete.

I also am not very happy with .gitmodules pointing at a single point of failure. It would be nice if you can arrange a couple of mirrors and have a comment in .gitmodules file to tell folks that they can use these alternates by insteadOf or some other mechanism.

Thanks.
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 4 of 20 in “Update sha1dc from upstream & optionally make it a submodule”
  1. 0/3 Update sha1dc from upstream & optionally make it a submoduleÆvar Arnfjörð Bjarmason, May 18, 2017
  2. 1/3 sha1dc: update from upstreamÆvar Arnfjörð Bjarmason, May 18, 2017
  3. 2/3 sha1dc: use sha1collisiondetection as a submoduleÆvar Arnfjörð Bjarmason, May 18, 2017
  4. Junio C HamanoMay 20, 2017
  5. 0/2 Update sha1dc from upstream & optionally make it a submoduleÆvar Arnfjörð Bjarmason, May 20, 2017
  6. 1/2 sha1dc: update from upstreamÆvar Arnfjörð Bjarmason, May 20, 2017
  7. 2/2 sha1dc: optionally use sha1collisiondetection as a submoduleÆvar Arnfjörð Bjarmason, May 20, 2017
  8. Junio C HamanoMay 22, 2017
  9. Junio C HamanoMay 22, 2017
  10. Ævar Arnfjörð BjarmasonMay 22, 2017
  11. Junio C HamanoMay 22, 2017
  12. Junio C HamanoMay 22, 2017
  13. Stefan BellerMay 22, 2017
  14. Junio C HamanoMay 23, 2017
  15. Ævar Arnfjörð BjarmasonMay 23, 2017
  16. Junio C HamanoMay 23, 2017
  17. Ævar Arnfjörð BjarmasonMay 25, 2017
  18. Junio C HamanoMay 25, 2017
  19. Ævar Arnfjörð BjarmasonMay 25, 2017
  20. 3/3 sha1dc: remove the unused sha1dc/ directoryÆvar Arnfjörð Bjarmason, May 18, 2017

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.