threads / discuss / 30146

displaying subtree merges

Subject: displaying subtree merges

## tl;dr

3 messages between Apr 4, 2012 and Apr 4, 2012.

replies: 2people: 2as markdown or json

Zbigniew Jędrzejewski-Szmek· Apr 4, 2012, 16:36 UTC · lore

Hi, what is the best way to display merge commits of two branches with separate roots?

systemd and udev projects have merged [1], by a subtree merge of udev repo into systemd repo [2].

Displaying the commit shows:
% git show 19c5f19 --stat-count=10
commit 19c5f19d69bb5f520fa7213239490c55de06d99d (HEAD)
Merge: 3eff420 4db539b
Author: Kay Sievers <kay.sievers@vrfy.org>
Date:   Tue Apr 3 21:08:04 2012 +0200
    import udev repository
 src/udev/.gitignore  |   40 +
 src/udev/.vimrc      |    4 +
 src/udev/COPYING     |  339 +++
 src/udev/ChangeLog   | 6387 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/udev/INSTALL     |   44 +
 src/udev/Makefile.am |  712 ++++++
 src/udev/NEWS        | 1735 ++++++++++++++
 src/udev/README      |  101 +
 src/udev/TODO        |   22 +
 src/udev/autogen.sh  |   44 +
 ...
 209 files changed, 208701 insertions(+)

ie. only the change to the main repository, as if the everything was added in this commit.

Also, --follow doesn't really follow:

% git log --oneline --follow -- src/udev/src/udevd.c 3e21478 move imported udev into place

[src/udev/src/udevd.c is the new path]

% git log --oneline --follow -- src/udevd.c 4309599 warn about deprecated RUN+="socket:" use e64fae5 udevd: kill hanging event processes after 30 seconds 912541b tabs are as useful as a hole in the head ad29a9f merge udev/, libudev/, systemd/ files in src/; move extras/ to src/ ...

[src/udev/src/udevd.c is the original path]
Is there a way to follow the history also in the subtree?

Thanks, Zbyszek

[1] http://lwn.net/Articles/490413/ [2] http://cgit.freedesktop.org/systemd/systemd/commit/src/udev?id=19c5f19

Junio C Hamano· Apr 4, 2012, 21:09 UTC · re: Zbigniew Jędrzejewski-Szmek · lore

Re: displaying subtree merges

Zbigniew Jędrzejewski-Szmek  <zbyszek@in.waw.pl> writes:
Show 11 quoted lines
> what is the best way to display merge commits of two branches with
> separate roots?
> ...
> % git log --oneline --follow -- src/udevd.c
> 4309599 warn about deprecated RUN+="socket:" use
> e64fae5 udevd: kill hanging event processes after 30 seconds
> 912541b tabs are as useful as a hole in the head
> ad29a9f merge udev/, libudev/, systemd/ files in src/; move extras/ to src/
> ...
>
> [src/udev/src/udevd.c is the original path]

I am absolutely sure I wrote on how to look at gitk and gitweb part of the history on this list in the past few months, but my archive digging skill seems to be failing me today X-<.

I'd do something like this
	(
		echo ^v1.7.9
		git rev-list --first-parent --parents \
                	v1.7.9..master -- gitk-git |
	        sed -e 's/.* //'
	) | xargs git log
when I want to see a more detailed history than
	git log v1.7.9..master -- gitk-git

would give me. The inner rev-list grabs the tips of the gitk history as of each merge points between v1.7.9..master, and the first echo ^v1.7.9 excludes the part of gitk history that were already in v1.7.9.

> Is there a way to follow the history also in the subtree?

In any case, from the point of view of the history that is merged into the other history as its subpart, each and every merge looks like a humongous rename with bunch of new additions. It is a known limitation of the "subtree" merge, which was an ugly hack I invented before submodules have become ready. It does not help that the "--follow" is merely a checkbox hack and does not keep track of different set of paths for each individual traversal point is digging the history for; improving "--follow" to do so will make it more useful but nobody has bothered.

Junio C Hamano· Apr 4, 2012, 21:27 UTC · re: Junio C Hamano · lore

Re: displaying subtree merges

Junio C Hamano <gitster@pobox.com> writes:
> I am absolutely sure I wrote on how to look at gitk and gitweb part of the
> history on this list in the past few months, but my archive digging skill
> seems to be failing me today X-<.

It was http://thread.gmane.org/gmane.comp.version-control.git/190405/focus=190616 in case anybody cares.

← back to recent threads