groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Groff History in Git. (Was: groff in git)


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.70

And 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/>

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]