how to make gitk to use specified history information

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

how to make gitk to use specified history information

From: Liu Yubao <hidden>
Date: 2016-06-15 22:47:43

Hi,

I want to obtain an outline of history information, for example:

  a - b - c - d - h -i -j
   \         /
    e- f - g

I simplify the graph like this:

  a - c - d - j
    \    /
      g

That's to say, I skip all commits that

  * have only one parent, and
  * have only one child, and
  * its child has only one parent

I checked `git help rev-list` but didn't find this feature, so I
write a little script[1] to parse output of `git rev-list --parents
--full-history --sparse --all` and get the simplified history:
j d
d c g
c a
g a

Now how can I make gitk to show this simpilified history? I have tried
GraphViz but the history information is still so large that GraphViz
crashes.


[1] http://jff.googlecode.com/svn/trunk/utils/git-branch-graph.pl

Best regards,

Liu Yubao

Re: how to make gitk to use specified history information

From: Eric Raible <hidden>
Date: 2016-06-15 22:47:43

Liu Yubao <yubao.liu <at> gmail.com> writes:
I want to obtain an outline of history information, for example:

  a - b - c - d - h -i -j
   \         /
    e- f - g

I simplify the graph like this:

  a - c - d - j
    \    /
      g
"gitk --simplify-by-decoration"?

- Eric

Re: how to make gitk to use specified history information

From: Liu Yubao <hidden>
Date: 2016-06-15 22:47:43

Eric Raible wrote:
Liu Yubao <yubao.liu <at> gmail.com> writes:
quoted
I want to obtain an outline of history information, for example:

  a - b - c - d - h -i -j
   \         /
    e- f - g

I simplify the graph like this:

  a - c - d - j
    \    /
      g
"gitk --simplify-by-decoration"?

- Eric
Thanks, but that gets "a - g - j" which isn't what I want.
(g and j are heads of two branches).

The command sequence to produce that full revision graph:

#!/bin/bash
d=/tmp/t$$
rm -rf $d && mkdir $d && cd $d || exit 1

doit () {
  for s in $@; do
    echo $s >> a.txt 
    git add a.txt
    git commit -q -m $s
  done
}

git init
doit a b c
git checkout -b t HEAD~2
doit e f g
git checkout master
git merge t
doit d h i j

gitk &

dirty code to get an outline of commit history with gitk [Was: how to make gitk to use specified history information]

From: Liu Yubao <hidden>
Date: 2016-06-15 22:47:43

Eric Raible wrote:
Liu Yubao <yubao.liu <at> gmail.com> writes:
quoted
I want to obtain an outline of history information, for example:

  a - b - c - d - h -i -j
   \         /
    e- f - g

I simplify the graph like this:

  a - c - d - j
    \    /
      g
"gitk --simplify-by-decoration"?

- Eric
Hi, I get a very dirty implementation, see

http://jff.googlecode.com/svn/trunk/utils/git-branch-graph/

http://jff.googlecode.com/files/gitk-branch-graph--all.png
http://jff.googlecode.com/files/gitk--all.png

These are just to show my expectation, the code is very very very dirty,
I hope git and gitk will add this feature in an elegant and efficent way.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help