Follow-up: User-configurable log graph option

Daniel Campbell dlcampbell at
Sat Jul 1 06:28:39 UTC 2023

On Thu, Jan 05, 2023 at 03:14:42PM -0800, Kian Kasad wrote:
> Hello cgit developers,
> Just over a year ago, I proposed a configurable "graph" option for the
> log page. The idea was met with positive feedback, but when I proposed
> my implementation I never heard back. So I'm trying again in hopes that
> I can get a response. It would be nice if this was merged into the
> upstream so I don't have to maintain my fork, but if the way I've
> chosen to go about it isn't desirable, then I understand. But even in
> the latter case, I need a "no" so I know to stop trying to push this.
> The original conversation is below. I've also finished the
> implementation and am using it at if you'd like
> to test it out.
> See here for my fork of cgit implementing this change:
> On Thu, 2021-12-30 at 13:08 -0800, Kian Kasad wrote:
> > On 21/02/19 12:22PM, John Keeping wrote:
> > > On Thu, Feb 18, 2021 at 02:31:26PM -0800, Kian Kasad wrote:
> > > > I'm using cgit on my website and I'm wondering if it's possible
> > > > to allow
> > > > the user (i.e. the person visiting the site) to choose whether or
> > > > not
> > > > the commit graph is displayed on the log page.
> > > >
> > > > If this isn't currently possible, what do you think about adding
> > > > such
> > > > functionality? Maybe something like how the diff page lets the
> > > > user
> > > > choose between a "unified diff" and "ssdiff".
> > >
> > > This sounds like a great new feature!
> > >
> > > I think we still want to allow the administrator to turn the
> > > feature
> > > on/off but if it is permitted, then it makes sense to allow the end
> > > user
> > > to choose whether or not they want it enabled.
> >
> > Following up on this as I'm finally getting around to implementing
> > this
> > feature. I'm not too familiar with CGit's codebase, so I think it
> > would
> > be easier to implement this as a separate "graph" page which is
> > identical to the log page except that it always displays a graph.
> >
> > This graph page would only be shown in the navbar's tab list if the
> > "enable-commit-graph" option is set to "separate" in the
> > configuration.
> > If it is set to "combined" then the graph page will be disabled and
> > the
> > commit graph will be displayed on the log page as it currently is
> > when
> > the "enable-commit-graph" option is set to "1".
> >
> > In order to maintain backwards compatibility, the value "1" could
> > also
> > be interpreted as the value "combined" since it has the same
> > functionality currently.
> >
> > The value "none" (or "0" for backwards compatibility) would disable
> > the
> > graph page as well as disabling the commit graph on the log page.
> >
> > I've already started working on this as I want it for my own CGit
> > site.
> > If this is something that the maintainer(s) want to integrate, I'll
> > send
> > patches when I'm done.
> --
> Kian Kasad
> PGP 0x1715EEAA14DAEC1
> kian at
> (925) 871-9823


I'm not a regular developer of cgit, so I can't make any claims
regarding whether it's suitable for merge, but I took some time to
check out your cgit instance. I encountered some difficulty fully
understanding what your patchset did, until I looked at the links and
played around a little.

Your graph page's "Expand" and "Collapse" links are pointing to the log
page.  I have to navigate *back* to /graph/ with the ?showmsg=1 GET data
to see the commit-graph's pipes (indicating linear history in most
repositories, as expected), and Collapse will remove the GET data,
but bump me back over to the log page. I also looked around your instance
trying to find a repository with a complex commit graph so I could
better visualize your work. Can you recommend one to look at? The
feature sounds interesting but there is trouble getting to it for now.

The graph page still shows the Age column, but the column data is the
commit date. Is it possible to modify column headers without having to
duplicate the log page's code? Less a direct question, just something to
ponder. It may be necessary, if the graph page's features diverge too
far from what the log page currently offers.

I think this feature could be handy, especially for projects with
complex commit graphs.

To be more explicit, I would:

* find a way to get the expand and collapse links to stay on the graph
  page, so the new code is triggered.
* change "Age" to "Date" in the first column header of the graph page

If I understand correctly, the graph page is only accessible when the
option is set to 'separate'. Assuming your instance is using this
setting, is there any major difference between what we see on your
instance, and the 'combined' setting? I am imagining that the log page
just takes on the commit graph settings and the graph tab disappears.
Is the column that holds dates still labeled 'Age' in that mode?

Maybe it's not considered major enough to worry about -- age and date
both having to do with time -- but it may also point to a need for a
graph page to be distinct flavor of the log page's code. It'd be best to
defer to cgit devs on this particular decision. Being its own page seems
better imo.

Please let me know if I've misunderstood something or am unclear. It's
been a while since I've reviewed code and I mean no offense or insult.


More information about the CGit mailing list