[Ksummit-discuss] [TOPIC] Metadata addendum to git commit
Christian Couder
chriscool at tuxfamily.org
Wed May 21 05:36:24 UTC 2014
From: Takashi Iwai <tiwai at suse.de>
>
> At Tue, 20 May 2014 08:37:18 +0200 (CEST),
> Christian Couder wrote:
>>
>> From: Takashi Iwai <tiwai at suse.de>
>>
>> > We don't want to change the history at all.
>>
>> What I understood is that you want to be able to bisect on a history
>> where many bugs that prevent testing can easily be fixed.
>
> Well, the bisection is just an example where the extra metadata would
> help. It's not the purpose itself.
>
>>
>> Using git replace, it can go like this:
>>
>> - a developer learns that some part of the history can be fixed to
>> bisect more easily by applying a patch,
>>
>> - the developer recreates a part of the history where the patch has
>> been applied (using git cherry-pick or git rebase -i for example)
>>
>> - the developer uses git replace to create a replace ref so that the
>> new part of the history is used instead of the old one
>>
>> - the developer pushes this new replace ref to a common repo where
>> replace refs are shared (this pushes the new part of the history
>> too)
>>
>> - other developers fetch the replace refs from the common repo before
>> they bisect
>>
>> - when these other developers bisect, the new parts of the history are
>> automatically used, so bisecting is faster, easier and maybe safer
>> too
>>
>> I think that it is better than when everyone changes the history
>> manually by applying patches in the middle of a bisection.
>
> This is nice, but I'm not sure whether it'll work / suit well with a
> tree like kernel, which is the results of tons of merges from various
> maintainers. I guess little maintainers would publish the corrected
> repo. I hope my guess is wrong.
Yeah, I don't know if it's easy enough to redo many merges with
current Git. On the other hand, I don't see why it couldn't be made
easy if it isn't already.
About maintainers publishing the corrected/improved repo, I think if a
few developers publish one that provide some benefits, and come up
with a way/workflow to do so quite easily, then other will follow.
>> > A preferred option is
>> > just addendum on top of the existing commits, and the way to easily
>> > share the change (at best with the normal git pull). If git-replace
>> > provides such a good integration, I'd love to see it in our use case.
>>
>> git notes is probably better if what you want is only addendum on top
>> of the existing commits. git notes creates notes refs that you can
>> easily share.
>
> IMO, it's not that easy to share git notes. At least, it's not in the
> same level as sharing tags. If it were as easy as tags, I see no
> reason to avoid using git-notes. That said, having a separate refs
> that requires the extra non-standard step looks like a big obstacle.
I don't see why it is not easy to share git notes.
Basically I think that you just need to add refspecs like
push = +refs/notes/*:refs/notes/*
or
fetch = +refs/notes/*:refs/notes/*
in your config file, in the sections of the remotes you want to push
or fetch notes.
But we should probably CC Johan Herland <johan at herland.net> or Junio
when discussing this as I don't know notes well.
Best,
Christian.
More information about the Ksummit-discuss
mailing list