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

Re: [PATCH v2 0/2] Update sha1dc from upstream & optionally make it a submodule

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 23, 2017, 10:55 UTC
Message-ID
<CACBZZX4d4-EGiUtJQT8cvuMzm0c5DUu5sxUb11kUnJu3ocuSHw@mail.gmail.com>
In-Reply-To
<xmqqbmqko7c2.fsf@gitster.mtv.corp.google.com>
On Tue, May 23, 2017 at 12:27 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 13 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>
>> I liked the suggestion to make the URL a relative path, but this would
>> require you to maintain a mirror in the same places you push git.git
>> to, is that something you'd be willing to do?
>
> After thinking about this a bit more, I know what I think we want a
> bit better.
>
> Relative URL (e.g. ../sha1collisiondetection that sits next to the
> copy of git.git) may be a good way to go.  I can arrange to create
> necessary repository next to git.git on k.org and github.com but I
> need to double check about other places

If the URL doesn't point to the canonical upstream how do we review a patch to update sha1dc here on list? Doesn't change from "'git am' this and it'll work" to "'git am' this and it'll fail, then do this submodule config modification dance, and run some other command....".

I haven't tried repointing a submodule temporarily (and locally) to another URL for such a use, how is that even done?

Show 8 quoted lines
> Whether the submodule is referenced by a relative URL from the main
> project, the submodule should not come directly from the upstream,
> and various mirrors that sit next to git.git should not be blind and
> automated "mirrors".  This is because I do not want us to trust the
> security measures of https://github.com/cr-marcstevens/ repository.
> The consumers already need to trust k.org/pub/scm/git/git.git and by
> ensuring k.org/pub/scm/git/sha1dc is managed the same way, they do
> not have to trust anything extra.

I had the same comments Stefan pointed out below about this. So I won't repeat any of that...

Show 9 quoted lines
> Another reason is that we want to make sure all commits in the
> submodule that we bind to the superproject (i.e. git.git) are always
> in the submodule, regardless of what our upstream does, and one way
> to do so is to have control over _our_ canonical repository for the
> submodule.  In normal times, it will faithfully follow the upstream
> without doing anything else, but we'd keep the option of anchoring a
> submodule commit that is referenced by the superproject history with
> our own tag, if it is ever rewound away in the upstream history for
> whatever reason.

If we were talking about any other project but git.git I'd say "yeah this makes sense".

But I think in our case we should keep in mind the main point of this exercise is for us to dogfood submodule usage, not just so we get whatever trivial benefits from updating the sha1collision/ directory from upstream, but so that we run into issues with submodules that we solve for all our users.

In this case you're basically concerned with:
 * We have N mirrors, but the upstream submodule URL is just one URL,
so let's not point to that, but to our N mirrors

Could also be addressed with a combination of 'pullUrl' for submodules (inverse of pushUrl for push) to list the canonical one & list of mirrors (or use the relative URL).

 * What if upstream say 5 years in the future rewinds their history,
github shuts down or whatever, can we check out and work with older
versions of git.git?

Seems like it would be useful to have a way to ex-post-facto say "past history should use these URLs". i.e. if all git.git mirrors go down and we have to re-host, then you can just clone git.git and off you go, but the same isn't true of past submodule urls, or is it?

Previous: Junio C HamanoNext: Junio C Hamano
Message 15 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.