git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git tree browsing in redmine

From
Jakub Narebski <jnareb@gmail.com>
Date
Nov 18, 2008, 10:06 UTC
Message-ID
<m3ej19l57c.fsf@localhost.localdomain>
In-Reply-To
<b8f2e1780811172034w6828ddc8n62cf85b5fa366e22@mail.gmail.com>
"Burt Culver" <burt@fishpond.co.nz> writes:
Show 15 quoted lines
> I'm trying to find some ideas for a better way to implement browsing
> of a git repository within the redmine application.
> 
> My top level directory in my git repository has 300 files. Redmine
> wants to display each file name, its most recent revision, and the
> comment for that revision. Currently it does a git log -1 on each file
> to find the latest revision.  Is there a quicker way of doing this for
> a whole directory?  git log runs from .2 seconds to 3 seconds
> depending on the file on my server.
> 
> Here is the open issue at redmine.org which has more details:
> http://www.redmine.org/issues/show/1435
> 
> A fix for this would help a whole bunch of redmine / git users
> including myself.

First, while it might be common and cheap view (information) for Subversion, it is not the case for Git. Git is whole project snapshot based, not per-file snapshot based, or patch based. Take a look at one of git web interfaces: gitweb, or cgit, or ViewGit to see how repository browsing is implemented there: it is log-like view, then tree, not tree, then history of files. Note also that for example history of two files is more than union of histories of individual files (history simplification, including merge simplification).

Second, I tried to implement such view (which I named 'tree blame' view, because it looks a bit like blame/annotate, but for directories/trees) for gitweb. You can view my attempts in 'gitweb/tree_blame' branch of my git fork:

  http://repo.or.cz/w/git/jnareb-git.git?a=shortlog;h=refs/heads/gitweb/tree_blame

But I think the correct solution, if you decide that you absolutely need so unnatural (and I think not that useful) view, would be to implement such view in git core, allowing 'git blame' to work for trees (directories). You would probably need to implement also some kind of '--porcelain' output for script/Redmine.

Or as suggested add your work to libgit2 library, and make use of it in Redmine...

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Andreas Ericsson
Message 3 of 3 in “git tree browsing in redmine”
  1. Burt CulverNov 18, 2008
  2. Andreas EricssonNov 18, 2008
  3. Jakub NarebskiNov 18, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.