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

Re: Wanted - a file browser interface to git

From
Linus Torvalds <torvalds@osdl.org>
Date
Oct 19, 2005, 03:03 UTC
Message-ID
<Pine.LNX.4.64.0510181952350.3369@g5.osdl.org>
In-Reply-To
<4355A00B.4000806@research.att.com>
On Tue, 18 Oct 2005, John Ellson wrote:
Show 10 quoted lines
> Linus Torvalds wrote:
> > 
> > You are aware of "git whatchanged -p xxx", right?
> 
> I wasn't aware of it, no.  Looks very useful.  Thanks.
> 
> I see that you can take the tree id from the diff-tree lines and
> then produce the state of the file at that time with "cg-admin-cat -r <id>
> xxx"
> Is that how you would do it?

Well, I'd do it with the git commands: once you see the diff, you should know the SHA1's of the source and destination, and then you can just do

	git-cat-file blob [sha1]
to get the before (or after) state.

The way I'd get the SHA1 is either (now with the extended diff format) in the short form from the diff itself (the "index" line), or by just separately doing a

	git-diff-tree -r [sha-of-commit]
to see the "raw" diff format.

All the diff things can take a pathname limiter, the same way "git-whatchanged" does, so if you are only interested in one file, just name the file:

	git-diff-tree -r [sha-of-commit] [filename]

And just to make clear how powerful this is: "filename" doesn't have to be a single file. It can be a set of files and/or directories, so if you want to track multiple things at the same time, just do multiple filenames.

What I do a lot is to check what has changed in some particular subsystem, ie somebody says that something broke in SCSI, and then I do

	git-whatchanged -p drivers/scsi/ include/scsi/

and it will show any changes to anything under either of those directories.

"git-whatchanged" really is very powerful. The silly thing is that it really boils down to just a single line script (well, with various argument handling etc it's actually five lines, but the "core" is really just a single pipeline of "git-rev-list | git-diff-tree --stdin".

> Are there any plans for cogito to support it?

Well, cogito could certainly just do a "cg-whatchanged", but it's really the same thing. Since cogito depends on git anyway, cogito users could just use the git-whatchanged functionality.

Or to make it more seamless, just do
	alias cg-whatchanged=git-whatchanged
or something like that ;^)
			Linus
Previous: John EllsonNext: John Ellson
Message 4 of 6 in “Wanted - a file browser interface to git”
  1. John EllsonOct 19, 2005
  2. Linus TorvaldsOct 19, 2005
  3. John EllsonOct 19, 2005
  4. Linus TorvaldsOct 19, 2005
  5. cg-history FILE [NTH_PARENT] - was: Re: Wanted - a file browser interface to gitJohn Ellson, Oct 19, 2005
  6. Linus TorvaldsOct 19, 2005

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.