John Soo <[email protected]> writes:
> I guess that makes me wonder what the desired specification is. > There is a lot of problem space to explore. As a user I would want to > be able to take my local patches as "the real truth". > > Because guix has a linear git history, that means the user needs to > always rebase. Often I have patches open for months that I am currently > testing and working on. It would be convenient for me to be able to guix > pull into my default user profile. > > On the other hand, as you point out, using a hash that disappears from > the git history is dangerous. The git history no longer tracks the guix > pull history and then there may exist pulls in history that may never be > recoverable. > > There seems to be some existing support for the rebasing into the > default profile since branches are allowed as references in the channels > configuration. Has the rebase use case been discussed before? Oh, also, > history items can be deleted in other places with --delete-generations > and friends. I am not sure what to classify this problem, bug or > something else. > > What do you think? This sounds like a use-case for changeset evolution with hidden-but-retrievable commits: https://www.mercurial-scm.org/doc/evolution/index.html With that you can rebase and have linear surface history, but the rewritten commits still exist as hidden commits with references to the commits that superseded them. Problem: It not possible with Git. It would require switching to Mercurial — which would also enable useful abilities like coordinated rebasing in a group: https://blog.disy.net/hg-evolution/ (and which is GPLv3-compatible) Best wishes, Arne -- Unpolitisch sein heißt politisch sein ohne es zu merken
