{"thread":{"id":"30146","subject":"displaying subtree merges","startedAt":"2012-04-04T16:36:10Z","lastAt":"2012-04-04T21:27:25Z","messageCount":3,"participants":["Zbigniew Jędrzejewski-Szmek","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"188495","messageId":"4F7C787A.6050905@in.waw.pl","threadId":"30146","inReplyTo":null,"subject":"displaying subtree merges","fromName":"Zbigniew Jędrzejewski-Szmek","fromEmail":"zbyszek@in.waw.pl","sentAt":"2012-04-04T16:36:10Z","receivedAt":"2012-04-04T16:36:10Z","isPatch":false,"sender":{"key":"zbyszek@in.waw.pl","avatar":"https://avatars.githubusercontent.com/u/349618?v=4"},"body":"Hi,\nwhat is the best way to display merge commits of two branches with\nseparate roots?\n\nsystemd and udev projects have merged [1], by a subtree merge of\nudev repo into systemd repo [2].\n\nDisplaying the commit shows:\n% git show 19c5f19 --stat-count=10\ncommit 19c5f19d69bb5f520fa7213239490c55de06d99d (HEAD)\nMerge: 3eff420 4db539b\nAuthor: Kay Sievers <kay.sievers@vrfy.org>\nDate:   Tue Apr 3 21:08:04 2012 +0200\n\n    import udev repository\n\n src/udev/.gitignore  |   40 +\n src/udev/.vimrc      |    4 +\n src/udev/COPYING     |  339 +++\n src/udev/ChangeLog   | 6387 ++++++++++++++++++++++++++++++++++++++++++++++++++\n src/udev/INSTALL     |   44 +\n src/udev/Makefile.am |  712 ++++++\n src/udev/NEWS        | 1735 ++++++++++++++\n src/udev/README      |  101 +\n src/udev/TODO        |   22 +\n src/udev/autogen.sh  |   44 +\n ...\n 209 files changed, 208701 insertions(+)\n\nie. only the change to the main repository, as if the everything was\nadded in this commit.\n\nAlso, --follow doesn't really follow:\n\n% git log --oneline --follow -- src/udev/src/udevd.c\n3e21478 move imported udev into place\n\n[src/udev/src/udevd.c is the new path]\n\n% git log --oneline --follow -- src/udevd.c\n4309599 warn about deprecated RUN+=\"socket:\" use\ne64fae5 udevd: kill hanging event processes after 30 seconds\n912541b tabs are as useful as a hole in the head\nad29a9f merge udev/, libudev/, systemd/ files in src/; move extras/ to src/\n...\n\n[src/udev/src/udevd.c is the original path]\n\nIs there a way to follow the history also in the subtree?\n\nThanks,\nZbyszek\n\n[1] http://lwn.net/Articles/490413/\n[2] http://cgit.freedesktop.org/systemd/systemd/commit/src/udev?id=19c5f19\n"},{"id":"188530","messageId":"7vehs38arm.fsf@alter.siamese.dyndns.org","threadId":"30146","inReplyTo":"4F7C787A.6050905@in.waw.pl","subject":"Re: displaying subtree merges","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-04T21:09:17Z","receivedAt":"2012-04-04T21:09:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Zbigniew Jędrzejewski-Szmek  <zbyszek@in.waw.pl> writes:\n\n> what is the best way to display merge commits of two branches with\n> separate roots?\n> ...\n> % git log --oneline --follow -- src/udevd.c\n> 4309599 warn about deprecated RUN+=\"socket:\" use\n> e64fae5 udevd: kill hanging event processes after 30 seconds\n> 912541b tabs are as useful as a hole in the head\n> ad29a9f merge udev/, libudev/, systemd/ files in src/; move extras/ to src/\n> ...\n>\n> [src/udev/src/udevd.c is the original path]\n\nI am absolutely sure I wrote on how to look at gitk and gitweb part of the\nhistory on this list in the past few months, but my archive digging skill\nseems to be failing me today X-<.\n\nI'd do something like this\n\n\t(\n\t\techo ^v1.7.9\n\t\tgit rev-list --first-parent --parents \\\n                \tv1.7.9..master -- gitk-git |\n\t        sed -e 's/.* //'\n\t) | xargs git log\n\nwhen I want to see a more detailed history than\n\n\tgit log v1.7.9..master -- gitk-git\n\nwould give me.  The inner rev-list grabs the tips of the gitk history as\nof each merge points between v1.7.9..master, and the first echo ^v1.7.9\nexcludes the part of gitk history that were already in v1.7.9.\n\n> Is there a way to follow the history also in the subtree?\n\nIn any case, from the point of view of the history that is merged into the\nother history as its subpart, each and every merge looks like a humongous\nrename with bunch of new additions.  It is a known limitation of the\n\"subtree\" merge, which was an ugly hack I invented before submodules have\nbecome ready.  It does not help that the \"--follow\" is merely a checkbox\nhack and does not keep track of different set of paths for each individual\ntraversal point is digging the history for; improving \"--follow\" to do so\nwill make it more useful but nobody has bothered.\n"},{"id":"188533","messageId":"7vaa2r89xe.fsf@alter.siamese.dyndns.org","threadId":"30146","inReplyTo":"7vehs38arm.fsf@alter.siamese.dyndns.org","subject":"Re: displaying subtree merges","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-04T21:27:25Z","receivedAt":"2012-04-04T21:27:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> I am absolutely sure I wrote on how to look at gitk and gitweb part of the\n> history on this list in the past few months, but my archive digging skill\n> seems to be failing me today X-<.\n\nIt was http://thread.gmane.org/gmane.comp.version-control.git/190405/focus=190616\nin case anybody cares.\n"}]}