From: David Kastrup Date: Mon, 16 Jul 2007 16:38:56 GMT Subject: Re: Can someone explain this git-blame/git-rev behavior to me? Message-ID: <867ip05mn3.fsf@lola.quinscape.zz> Oops, I accidentally sent the following mail in private. So I have to forward back to the list (don't have the original): David Kastrup wrote: > > Johannes Sixt writes: > > > David Kastrup wrote: > > >> [nonsense not really related to the problem he has been seeing] > > > [Johannes replied with a reasonable analysis] > > Ok, scratch that. I got completely confused. Here is the gist of the > problem that kicked me, this time boiled down to the actually relevant > part: > > I am looking for a descendant of tags/v1.4.4-rc1~72 with regard to > contrib/emacs/vc-git.el by scanning the output of the first command > in the following pipeline: > > git-rev-list --parents HEAD ^tags/v1.4.4-rc1~72 -- vc-git.el|git-name-rev --stdin|fgrep tags/v1.4.4-rc1 > > This gives: > 4de0f9f9b6ed1731de00b67952504e5a783f54a4 (tags/v1.5.0-rc0~31) 1259404c7e5cd88b7f6692986469cd20cbfacdad (tags/v1.4.4-rc1~71) > 1259404c7e5cd88b7f6692986469cd20cbfacdad (tags/v1.4.4-rc1~71) b4aee09e610567529dc619d7324dc2fe85a11db5 (tags/v1.4.4-rc1~72) 0abc0260fa3419de649fcc1444e3d256a17ca6c7 (tags/v1.4.3.2~6) > > And this looks like it would tell us that tags/v1.4.4-rc1~72 has with > regard to vc-git.el a child tags/v1.4.4-rc1~71 and a grandchild of > tags/v1.5.0-rc0~31. > > Now if I instead do > git-rev-list --parents HEAD -- vc-git.el|git-name-rev --stdin|fgrep tags/v1.4.4-rc1 > > 4de0f9f9b6ed1731de00b67952504e5a783f54a4 (tags/v1.5.0-rc0~31) b4aee09e610567529dc619d7324dc2fe85a11db5 (tags/v1.4.4-rc1~72) > b4aee09e610567529dc619d7324dc2fe85a11db5 (tags/v1.4.4-rc1~72) 474a90fef9ebcdedee041b2def4b9a98b94cd146 (tags/v1.4.3.2~8) > > I get to see that the child of tags/v1.4.4-rc1~72 is actually > tags/v1.5.0-rc0~31, skipping tags/v1.4.4-rc1~71 which presumably did > not change vc-git.el. > > So the ^tags/v1.4.4-rc1~72 specification caused an additional mention > of tags/v1.4.4-rc1~71 even though, with regard to vc-git.el, it would > be equivalent to tags/v1.4.4-rc1~72. > > So is there a way I can get the information of the second call without > the performance loss of going through the entire history? You better send the question again, this time to the list. I'm certainly not the one who can answer this or even solve it. It seems that there is an unwanted interaction between --parents and history simplification at the edge commits. I don't think that there will be an easy solution. -- Hannes So anybody has an idea how to go about this? -- David Kastrup