threads / discuss / 24814

[feature request] gitweb: tags in history

Subject: [feature request] gitweb: tags in history

## tl;dr

9 messages between Aug 21, 2010 and Aug 21, 2010.

replies: 8people: 3as markdown or json

Jean Delvare· Aug 21, 2010, 07:26 UTC · lore
Hi there,

I have a feature request for gitweb. In the history view, I would like to be (optionally) able to see the tags, interlaced with the actual commits. The idea is to get an immediate view of all commits that happened between specific tags.

The actual format for displaying the tags can certainly be discussed, I have no strong opinion on this myself. We may want to let the admin filter which tags should show up that way, maybe even letting him/her define primary and secondary tag formats (think main releases vs. release candidates) for nicer output. Then we may want to group (or hide) tags when a file hasn't been modified in a long time. But these are implementation details, even the raw functionality would be quite useful IMHO, and hopefully not too difficult to implement.

At the moment I am using a custom tool when I need to answer this kind of question, but being backed-up by quilt, it's quite slow and disk-consuming. I would love to be able to get rid of it and use only gitweb.

Thanks,
-- 
Jean Delvare
Jakub Narebski· Aug 21, 2010, 08:22 UTC · re: Jean Delvare · lore

Re: [feature request] gitweb: tags in history

Jean Delvare <khali@linux-fr.org> writes:
Show 13 quoted lines
> I have a feature request for gitweb. In the history view, I would like
> to be (optionally) able to see the tags, interlaced with the actual
> commits. The idea is to get an immediate view of all commits that
> happened between specific tags.
> 
> The actual format for displaying the tags can certainly be discussed, I
> have no strong opinion on this myself. We may want to let the admin
> filter which tags should show up that way, maybe even letting him/her
> define primary and secondary tag formats (think main releases vs.
> release candidates) for nicer output. Then we may want to group (or
> hide) tags when a file hasn't been modified in a long time. But these
> are implementation details, even the raw functionality would be quite
> useful IMHO, and hopefully not too difficult to implement.

Currently in 'shortlog' view you can see 'ref' markers... which include tags.

For example 'shortlog' view for 'maint' branch has the following fragment:

 2010-07-28 	 Matthieu Moy	 Document ls-files -t as semi-obsolete.
 2010-07-27 	 Junio C Hamano	 Git 1.7.2.1  [v1.7.2.1]
 2010-07-27 	 Junio C Hamano	 Sync with 1.7.1.2
 2010-07-27 	 Junio C Hamano	 Git 1.7.1.2  [v1.7.1.2]
 2010-07-27 	 Junio C Hamano	 Sync with 1.7.0 series
 2010-07-27 	 Junio C Hamano	 Git 1.7.0.7  [v1.7.0.7]
where e.g. [v1.7.2.1] is ref marker for 'v1.7.2.1' tag.

If you have something different in mind, please provide moackup, either as ASCII-art, or link to HTML or image.

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Jean Delvare· Aug 21, 2010, 09:15 UTC · re: Jakub Narebski · lore

Re: [feature request] gitweb: tags in history

Hi Jakub,
On Sat, 21 Aug 2010 01:22:05 -0700 (PDT), Jakub Narebski wrote:
Show 33 quoted lines
> Jean Delvare <khali@linux-fr.org> writes:
> 
> > I have a feature request for gitweb. In the history view, I would like
> > to be (optionally) able to see the tags, interlaced with the actual
> > commits. The idea is to get an immediate view of all commits that
> > happened between specific tags.
> > 
> > The actual format for displaying the tags can certainly be discussed, I
> > have no strong opinion on this myself. We may want to let the admin
> > filter which tags should show up that way, maybe even letting him/her
> > define primary and secondary tag formats (think main releases vs.
> > release candidates) for nicer output. Then we may want to group (or
> > hide) tags when a file hasn't been modified in a long time. But these
> > are implementation details, even the raw functionality would be quite
> > useful IMHO, and hopefully not too difficult to implement.
> 
> Currently in 'shortlog' view you can see 'ref' markers... which
> include tags.
> 
> For example 'shortlog' view for 'maint' branch has the following
> fragment:
> 
>  2010-07-28 	 Matthieu Moy	 Document ls-files -t as semi-obsolete.
>  2010-07-27 	 Junio C Hamano	 Git 1.7.2.1  [v1.7.2.1]
>  2010-07-27 	 Junio C Hamano	 Sync with 1.7.1.2
>  2010-07-27 	 Junio C Hamano	 Git 1.7.1.2  [v1.7.1.2]
>  2010-07-27 	 Junio C Hamano	 Sync with 1.7.0 series
>  2010-07-27 	 Junio C Hamano	 Git 1.7.0.7  [v1.7.0.7]
> 
> where e.g. [v1.7.2.1] is ref marker for 'v1.7.2.1' tag.
> 
> If you have something different in mind, please provide moackup,
> either as ASCII-art, or link to HTML or image.
Yes, visually this would be very fine with me.

But shortlog is a repository-wide view, while I need the same for history which is a file-specific view. Things are obviously a little more complex there, because for a given file, it is statistically unlikely that each commit affecting the file in question corresponds to a tag. So we have to find the best tag to display in front of each commit (easiest bet would be the next tag time-wise) and maybe improve a bit from there (for example by not showing the same tag twice). But then again I would be very happy with a relatively raw output for the time being.

Thanks,
-- 
Jean Delvare
Jakub Narebski· Aug 21, 2010, 10:17 UTC · re: Jean Delvare · lore

Re: [feature request] gitweb: tags in history

On Sat, 21 Aug 2010, Jean Delvare wrote:
> On Sat, 21 Aug 2010 01:22:05 -0700 (PDT), Jakub Narebski wrote:
>> Jean Delvare <khali@linux-fr.org> writes:
>> 
>>> I have a feature request for gitweb. In the history view, I would like
                                                ^^^^^^^
                                                    |
I'm very sorry, somehow I didn't notice this part --/
Show 38 quoted lines
>>> to be (optionally) able to see the tags, interlaced with the actual
>>> commits. The idea is to get an immediate view of all commits that
>>> happened between specific tags.
>>> 
>>> The actual format for displaying the tags can certainly be discussed, I
>>> have no strong opinion on this myself. We may want to let the admin
>>> filter which tags should show up that way, maybe even letting him/her
>>> define primary and secondary tag formats (think main releases vs.
>>> release candidates) for nicer output. Then we may want to group (or
>>> hide) tags when a file hasn't been modified in a long time. But these
>>> are implementation details, even the raw functionality would be quite
>>> useful IMHO, and hopefully not too difficult to implement.
>> 
>> Currently in 'shortlog' view you can see 'ref' markers... which
>> include tags.
>> 
>> For example 'shortlog' view for 'maint' branch has the following
>> fragment:
>> 
>>  2010-07-28 	 Matthieu Moy	 Document ls-files -t as semi-obsolete.
>>  2010-07-27 	 Junio C Hamano	 Git 1.7.2.1  [v1.7.2.1]
>>  2010-07-27 	 Junio C Hamano	 Sync with 1.7.1.2
>>  2010-07-27 	 Junio C Hamano	 Git 1.7.1.2  [v1.7.1.2]
>>  2010-07-27 	 Junio C Hamano	 Sync with 1.7.0 series
>>  2010-07-27 	 Junio C Hamano	 Git 1.7.0.7  [v1.7.0.7]
>> 
>> where e.g. [v1.7.2.1] is ref marker for 'v1.7.2.1' tag.
>> 
>> If you have something different in mind, please provide moackup,
>> either as ASCII-art, or link to HTML or image.
> 
> Yes, visually this would be very fine with me.
> 
> But shortlog is a repository-wide view, while I need the same for
> history which is a file-specific view. Things are obviously a little
> more complex there, because for a given file, it is statistically
> unlikely that each commit affecting the file in question corresponds to
> a tag.

At least in git repository the 'Git X.Y.Z' commit, which is tagged with vX.Y.Z signed tag, touches only Documentation/RelNotes-X.Y.Z (and changes Documentation/RelNotes symlink to point to it, if needed), changes DEF_VER in GIT-VERSION-GEN (fallback version), and updates Documentation/git.txt (for example adding link to newest RelNotes).

So it is very unlikely that for a given file there would be any tag that points to commit in history of a file.

Show 5 quoted lines
> So we have to find the best tag to display in front of 
> each commit (easiest bet would be the next tag time-wise) and maybe
> improve a bit from there (for example by not showing the same tag
> twice). But then again I would be very happy with a relatively raw
> output for the time being.

It would be unfortunately more costly than ref markers in 'shortlog' and 'log' views, because it is not enough to get all refs and use reverse mapping (from commit to the tag that points to it). There is decorate / name-rev, but it creates some performance cost.

So it wouldn't be easy to create a UI for this (ref markers are not good, as they are meant to point directly to commit, not as 'tag pagination'), and it wouldn't be very easy to get data that is needed for that.

But this should be possible...
-- 
Jakub Narebski
Poland
Lars Hjemli· Aug 21, 2010, 16:31 UTC · re: Jean Delvare · lore

Re: [feature request] gitweb: tags in history

On Sat, Aug 21, 2010 at 11:15, Jean Delvare <khali@linux-fr.org> wrote:
Show 8 quoted lines
> On Sat, 21 Aug 2010 01:22:05 -0700 (PDT), Jakub Narebski wrote:
>> Jean Delvare <khali@linux-fr.org> writes:
>>
>> > I have a feature request for gitweb. In the history view, I would like
>> > to be (optionally) able to see the tags, interlaced with the actual
>> > commits. The idea is to get an immediate view of all commits that
>> > happened between specific tags.
>> >
....
>
> But shortlog is a repository-wide view, while I need the same for
> history which is a file-specific view.

<shameless plug> With cgit, you can answer such questions by combining path limiting and range queries, e.g. http://hjemli.net/git/cgit/log/scan-tree.c?qt=range&q=v0.8.2..v0.8.3 shows all commits affecting scan-tree.c between v0.8.2 and v0.8.3. Maybe gitweb could implement something similar? </shameless plug>

-- 
larsh
Jakub Narebski· Aug 21, 2010, 17:21 UTC · re: Lars Hjemli · lore

Re: [feature request] gitweb: tags in history

Lars Hjemli wrote:
Show 21 quoted lines
> On Sat, Aug 21, 2010 at 11:15, Jean Delvare <khali@linux-fr.org> wrote:
>> On Sat, 21 Aug 2010 01:22:05 -0700 (PDT), Jakub Narebski wrote:
>>> Jean Delvare <khali@linux-fr.org> writes:
>>>
>>>> I have a feature request for gitweb. In the history view, I would like
>>>> to be (optionally) able to see the tags, interlaced with the actual
>>>> commits. The idea is to get an immediate view of all commits that
>>>> happened between specific tags.
>>>>
> ....
>>
>> But shortlog is a repository-wide view, while I need the same for
>> history which is a file-specific view.
> 
> <shameless plug>
> With cgit, you can answer such questions by combining path limiting
> and range queries, e.g.
> http://hjemli.net/git/cgit/log/scan-tree.c?qt=range&q=v0.8.2..v0.8.3
> shows all commits affecting scan-tree.c between v0.8.2 and v0.8.3.
> Maybe gitweb could implement something similar?
> </shameless plug>

Gitweb also supports range limiting in log-like views from some time, but currently there is no UI for that, and you have to handcraft the URL, e.g.:

  http://gitweb.example.com/repo.git?a=history;f=foo.c;hpb=v0.8.2;hb=v0.8.3
or (in the path_info form)
    http://gitweb.example.com/repo.git/history/v0.8.2..v0.8.3:/foo.c
-- 
Jakub Narebski
Poland
Lars Hjemli· Aug 21, 2010, 17:47 UTC · re: Jakub Narebski · lore

Re: [feature request] gitweb: tags in history

On Sat, Aug 21, 2010 at 19:21, Jakub Narebski <jnareb@gmail.com> wrote:
Show 18 quoted lines
> Lars Hjemli wrote:
>> <shameless plug>
>> With cgit, you can answer such questions by combining path limiting
>> and range queries, e.g.
>> http://hjemli.net/git/cgit/log/scan-tree.c?qt=range&q=v0.8.2..v0.8.3
>> shows all commits affecting scan-tree.c between v0.8.2 and v0.8.3.
>> Maybe gitweb could implement something similar?
>> </shameless plug>
>
> Gitweb also supports range limiting in log-like views from some time,
> but currently there is no UI for that, and you have to handcraft the URL,
> e.g.:
>
>  http://gitweb.example.com/repo.git?a=history;f=foo.c;hpb=v0.8.2;hb=v0.8.3
>
> or (in the path_info form)
>
>    http://gitweb.example.com/repo.git/history/v0.8.2..v0.8.3:/foo.c
Nice, I didn't know gitweb supported this - maybe it's all Jean needs?
-- 
larsh
Jean Delvare· Aug 21, 2010, 18:07 UTC · re: Lars Hjemli · lore

Re: [feature request] gitweb: tags in history

On Sat, 21 Aug 2010 19:47:12 +0200, Lars Hjemli wrote:
Show 21 quoted lines
> On Sat, Aug 21, 2010 at 19:21, Jakub Narebski <jnareb@gmail.com> wrote:
> > Lars Hjemli wrote:
> >> <shameless plug>
> >> With cgit, you can answer such questions by combining path limiting
> >> and range queries, e.g.
> >> http://hjemli.net/git/cgit/log/scan-tree.c?qt=range&q=v0.8.2..v0.8.3
> >> shows all commits affecting scan-tree.c between v0.8.2 and v0.8.3.
> >> Maybe gitweb could implement something similar?
> >> </shameless plug>
> >
> > Gitweb also supports range limiting in log-like views from some time,
> > but currently there is no UI for that, and you have to handcraft the URL,
> > e.g.:
> >
> >  http://gitweb.example.com/repo.git?a=history;f=foo.c;hpb=v0.8.2;hb=v0.8.3
> >
> > or (in the path_info form)
> >
> >    http://gitweb.example.com/repo.git/history/v0.8.2..v0.8.3:/foo.c
> 
> Nice, I didn't know gitweb supported this - maybe it's all Jean needs?

Well, as long as there is no UI for it, it's not too useful: I'm can run git on the command line for the same result (with git log.)

Also, it doesn't exactly suits my needs. I don't necessarily know in advance the range in which the change happened. Quite often, the question I have to answer is the other way around, that is: when did a given change happen? Sometimes I know the commit ID and I can just call "git name-rev" (although it's somewhat slow and the output isn't friendly), but sometimes I don't know even that, and this is when I'd like to be able to just browse the history for a given file with all relevant tags printed. This also gives a more general picture of what happened to the file over time immediately, which is sometimes useful.

Thanks,
-- 
Jean Delvare
Lars Hjemli· Aug 21, 2010, 18:50 UTC · re: Jean Delvare · lore

Re: [feature request] gitweb: tags in history

On Sat, Aug 21, 2010 at 20:07, Jean Delvare <khali@linux-fr.org> wrote:
Show 36 quoted lines
> On Sat, 21 Aug 2010 19:47:12 +0200, Lars Hjemli wrote:
>> On Sat, Aug 21, 2010 at 19:21, Jakub Narebski <jnareb@gmail.com> wrote:
>> > Lars Hjemli wrote:
>> >> <shameless plug>
>> >> With cgit, you can answer such questions by combining path limiting
>> >> and range queries, e.g.
>> >> http://hjemli.net/git/cgit/log/scan-tree.c?qt=range&q=v0.8.2..v0.8.3
>> >> shows all commits affecting scan-tree.c between v0.8.2 and v0.8.3.
>> >> Maybe gitweb could implement something similar?
>> >> </shameless plug>
>> >
>> > Gitweb also supports range limiting in log-like views from some time,
>> > but currently there is no UI for that, and you have to handcraft the URL,
>> > e.g.:
>> >
>> >  http://gitweb.example.com/repo.git?a=history;f=foo.c;hpb=v0.8.2;hb=v0.8.3
>> >
>> > or (in the path_info form)
>> >
>> >    http://gitweb.example.com/repo.git/history/v0.8.2..v0.8.3:/foo.c
>>
>> Nice, I didn't know gitweb supported this - maybe it's all Jean needs?
>
> Well, as long as there is no UI for it, it's not too useful: I'm can
> run git on the command line for the same result (with git log.)
>
> Also, it doesn't exactly suits my needs. I don't necessarily know in
> advance the range in which the change happened. Quite often, the
> question I have to answer is the other way around, that is: when did a
> given change happen? Sometimes I know the commit ID and I can just call
> "git name-rev" (although it's somewhat slow and the output isn't
> friendly), but sometimes I don't know even that, and this is when I'd
> like to be able to just browse the history for a given file with
> all relevant tags printed. This also gives a more general picture
> of what happened to the file over time immediately, which is sometimes
> useful.

Ok, this fundamentally does not mix well with the kind of output which gitweb/cgit generates (linear list of commits) - you'll need --topo-order and a visual indication of "branch timelines", i.e. gitk.

-- 
larsh

← back to recent threads