|
From: | Alejandro Colomar |
Subject: | Re: Groff History in Git. (Was: groff in git) |
Date: | Mon, 12 Dec 2022 16:43:16 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 |
Hi! On 12/12/22 14:58, G. Branden Robinson wrote:
At 2022-12-12T09:06:22+0000, Ralph Corderoy wrote:Eric, can reposurgeon retroactively add an earlier release to git without changing all the existing git hashes (which are referenced all over the place, in the bug tracker and elsewhere)? I know nothing about how these hashes are generated, so this may be utterly infeasible.A Git commit ID is effectively a hash of its ancestry so that history can't be changed in this case without the unwanted ripple.I concur with Ralph's analysis. Because each object's ID is hashed using the ID of its predecessor as part of its input, there is no way to insert new items into an object's history at any point, including the origin, without altering all subsequent IDs.[1] We could indeed rebuild groff's Git repo as proposed, but it would invalidate _every checkout of it in the world_. I assume Keith Marshall would notice that.
I have a plan of integrating pre-git history of the Linux man-pages into the official git repository. I have two approaches in mind:
- Start at the first git commit: commit fea681dafb1363a154b7fc6d59baa83d2a9ebc5c (tag: man-pages-1.70) Author: Michael Kerrisk <mtk.manpages@gmail.com> Date: Wed Nov 3 13:51:07 2004 +0000 Import of man-pages 1.70And branch from it in a 'prehistory' branch which would go backwards, that is, every commit would be farther in time, so the tip of the branch would be the oldest tarball I can reach. This has the benefit of always being able to go farther, just by adding a commit to that branch.
- Or create a parallel branch that has nothing in common, and put it in normal order, so the first commit would again be the oldest one known, and then go on from there. This one has several disadvantages: (*) If we find yet an older release, you need to either rebase or create a third line; (*) You can't compare against that branch with git.
I'm very likely going for the first approach.That may serve you, Branden; wouldn't it be nice to have those prehistoric roffs in a branch that has a common ancestor with HEAD? :P
Cheers, Alex -- <http://www.alejandro-colomar.es/>
OpenPGP_signature
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |