Merged repo for protocol headers? Why are they split?

Daniel Martin consume.noise at gmail.com
Wed Nov 29 15:06:49 UTC 2017


On 29 November 2017 at 15:52, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Wed, 29 Nov 2017 15:44:53 +0100
> Daniel Martin <consume.noise at gmail.com> wrote:
>
>> On 29 November 2017 at 15:01, Daniel Stone <daniel at fooishbar.org> wrote:
>> > Hi,
>> >
>> > On 28 November 2017 at 12:38, Daniel Martin <consume.noise at gmail.com> wrote:
>> >> On 27 November 2017 at 23:18, Peter Hutterer <peter.hutterer at who-t.net> wrote:
>> >>> have you looked at subtree merges? Keeps the repo history for each merged
>> >>> repository and the one from the top-level repository. And it forces you to
>> >>> merge into a directory anyway, so that's a win right there.
>> >>
>> >> Oh? No, didn't knew that before. But, tested it:
>> >> $ git remote add -f randrproto
>> >> git://anongit.freedesktop.org/xorg/proto/randrproto
>> >> $ git subtree add --prefix=randrproto/ randrproto master
>> >>
>> >> The history in the toplevel looks good. But, log -p shows the original
>> >> paths in the commits. Okay, it doesn't rewrite history. I can deal
>> >> with that.
>> >> Though,
>> >> $ git log (--graph) randrproto/randr.h
>> >> just shows one commit from the subtree add.
>> >
>> > git log --follow -- randrproto/randr.h
>>
>> Nope, doesn't work, even if I'm in randrproto/ and omit the path.
>> But, it works if I'm in the toplevel and omit the path. O.o?
>
>        --follow
>            Continue listing the history of a file beyond renames (works
>            only for a single file).
>
> You tried with a single file?

Yes. Just try:

mkdir test
cd test
git init && git commit --alow-empty -m "init"
git remote add -f randrproto git://anongit.freedesktop.org/xorg/proto/randrproto
git subtree add --prefix=randrproto/ randrproto master

# randr.h is where we want it:
ls randrproto/randr.h

# this works:
git log --follow -- randr.h

# doesn't work:
git log --follow -- randrproto/randr.h

# doesn't work:
cd randrproto
git log --follow -- randr.h

# git blame works in toplevel:
git blame randrproto/randr.h
# and in subdir:
cd randrproto
git blame randr.h


More information about the xorg-devel mailing list