# how to make gitk to use specified history information

4 messages from 2009-11-16 to 2009-11-16. Participants: Liu Yubao, Eric Raible.
Thread: https://gitlist.dev/t/21633

## Liu Yubao, 2009-11-16 07:51

Subject: how to make gitk to use specified history information
Message-ID: <4B01049A.5090402@gmail.com>
URL: https://gitlist.dev/e/4B01049A.5090402%40gmail.com

```
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

```

## Eric Raible, 2009-11-16 08:08

Subject: Re: how to make gitk to use specified history information
Message-ID: <loom.20091116T090441-576@post.gmane.org>
URL: https://gitlist.dev/e/loom.20091116T090441-576%40post.gmane.org
In-Reply-To: <4B01049A.5090402@gmail.com>

```
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

```

## Liu Yubao, 2009-11-16 08:38

Subject: Re: how to make gitk to use specified history information
Message-ID: <4B010F91.5010208@gmail.com>
URL: https://gitlist.dev/e/4B010F91.5010208%40gmail.com
In-Reply-To: <loom.20091116T090441-576@post.gmane.org>

```
Eric Raible wrote:
> 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
> 
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 &

```

## Liu Yubao, 2009-11-16 10:58

Subject: dirty code to get an outline of commit history with gitk [Was: how to make gitk to use specified history information]
Message-ID: <4B013072.5030208@gmail.com>
URL: https://gitlist.dev/e/4B013072.5030208%40gmail.com
In-Reply-To: <loom.20091116T090441-576@post.gmane.org>

```
Eric Raible wrote:
> 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
> 
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.

```
