# gitk screenshots of complex history

5 messages from 2007-07-27 to 2007-07-27. Participants: Shawn O. Pearce, Linus Torvalds, David Kastrup, Brian Downing.
Thread: https://gitlist.dev/t/9250

## Shawn O. Pearce, 2007-07-27 04:13

Subject: gitk screenshots of complex history
Message-ID: <20070727041300.GD20052@spearce.org>
URL: https://gitlist.dev/e/20070727041300.GD20052%40spearce.org

```
I've mentioned both on list and on #git that one of my production
repositories has a few weird points in time.  Some folks have asked
to see at least screenshots of the line part of the gitk output,
as apparently they've never seen ugly history in Git.  Lucky them.

The images are rather large so I have posted them on my website
with a bit longer explanation of each:

  http://www.spearce.org/2007/07/difficult-gitk-graphs.html


I just compared my own history to Linus' linux-2.6 history.
The kernel team can't hold a candle to this mess.  Remember,
this is *with* me involved in the project on a daily basis.  Me.
Someone who knows Git fairly well...

OK, no more screenshots from *that* repository!  I don't ever want
to run `gitk --all` there again.  Ever.

PS: The really interesting data (subject lines, authors, dates)
has all been redacted from the images.  I can't publish that stuff.

-- 
Shawn.

```

## Linus Torvalds, 2007-07-27 05:20

Subject: Re: gitk screenshots of complex history
Message-ID: <alpine.LFD.0.999.0707262219210.3442@woody.linux-foundation.org>
URL: https://gitlist.dev/e/alpine.LFD.0.999.0707262219210.3442%40woody.linux-foundation.org
In-Reply-To: <20070727041300.GD20052@spearce.org>

```


On Fri, 27 Jul 2007, Shawn O. Pearce wrote:
> 
> I just compared my own history to Linus' linux-2.6 history.
> The kernel team can't hold a candle to this mess.

Rather on purpose, I might add. I've actually been fairly anal about 
having people maintain clean histories, to the point where I refuse to 
pull from trees that don't do a good enough job.

			Linus

```

## Shawn O. Pearce, 2007-07-27 05:29

Subject: Re: gitk screenshots of complex history
Message-ID: <20070727052934.GH20052@spearce.org>
URL: https://gitlist.dev/e/20070727052934.GH20052%40spearce.org
In-Reply-To: <alpine.LFD.0.999.0707262219210.3442@woody.linux-foundation.org>

```
Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Fri, 27 Jul 2007, Shawn O. Pearce wrote:
> > 
> > I just compared my own history to Linus' linux-2.6 history.
> > The kernel team can't hold a candle to this mess.
> 
> Rather on purpose, I might add. I've actually been fairly anal about 
> having people maintain clean histories, to the point where I refuse to 
> pull from trees that don't do a good enough job.

For 4 of our internal repositories I've taken that policy up now
myself, and nobody is allowed to create releases from them except me.
This has helped.  A lot.  So does sensible use of `git rebase -i`.
You and Junio have really sold me on the value of having someone
play a very strict gatekeeper role.  I get better work product from
my coworkers this way too.  They know someone else is looking at
what they are doing and try harder.

But it doesn't help the really old history, nor does it help
the repository these images came from.  I don't own/control that
development.  I just provide git help as much as I can.

-- 
Shawn.

```

## David Kastrup, 2007-07-27 05:49

Subject: Re: gitk screenshots of complex history
Message-ID: <85k5sm5rbw.fsf@lola.goethe.zz>
URL: https://gitlist.dev/e/85k5sm5rbw.fsf%40lola.goethe.zz
In-Reply-To: <20070727052934.GH20052@spearce.org>

```
"Shawn O. Pearce" <spearce@spearce.org> writes:

> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>> On Fri, 27 Jul 2007, Shawn O. Pearce wrote:
>> > 
>> > I just compared my own history to Linus' linux-2.6 history.
>> > The kernel team can't hold a candle to this mess.
>> 
>> Rather on purpose, I might add. I've actually been fairly anal about 
>> having people maintain clean histories, to the point where I refuse to 
>> pull from trees that don't do a good enough job.
>
> For 4 of our internal repositories I've taken that policy up now
> myself, and nobody is allowed to create releases from them except me.
> This has helped.  A lot.  So does sensible use of `git rebase -i`.
> You and Junio have really sold me on the value of having someone
> play a very strict gatekeeper role.  I get better work product from
> my coworkers this way too.  They know someone else is looking at
> what they are doing and try harder.
>
> But it doesn't help the really old history, nor does it help
> the repository these images came from.  I don't own/control that
> development.  I just provide git help as much as I can.

One idea I have not yet put into any code is using graphviz for
creating a nice (possibly clickable) layout of a commit history.  It
might be able to rearrange things such that the long parallel lines
get avoided.  Could be an interesting feature for the HTML
visualizers.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

```

## Brian Downing, 2007-07-27 13:52

Subject: Re: gitk screenshots of complex history
Message-ID: <20070727135238.GW21692@lavos.net>
URL: https://gitlist.dev/e/20070727135238.GW21692%40lavos.net
In-Reply-To: <20070727041300.GD20052@spearce.org>

```
On Fri, Jul 27, 2007 at 12:13:01AM -0400, Shawn O. Pearce wrote:
> I've mentioned both on list and on #git that one of my production
> repositories has a few weird points in time.  Some folks have asked
> to see at least screenshots of the line part of the gitk output,
> as apparently they've never seen ugly history in Git.  Lucky them.
> 
> The images are rather large so I have posted them on my website
> with a bit longer explanation of each:
> 
>   http://www.spearce.org/2007/07/difficult-gitk-graphs.html
 
> OK, no more screenshots from *that* repository!  I don't ever want
> to run `gitk --all` there again.  Ever.

Were those graphs generated with --topo-order (the default) or
--date-order?  I've found complex history usually looks a lot more
manageable with --date-order.  Certainly the Git history is a LOT less
wide with --all --date-order than --all.

Does this help your situation as well?

-bcd

```
