{"thread":{"id":"5436","subject":"[PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","startedAt":"2006-08-30T22:43:12Z","lastAt":"2006-08-31T09:22:34Z","messageCount":9,"participants":["Jakub Narebski","Junio C Hamano","Josef Weidendorfer","Thomas Glanzmann"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"26121","messageId":"200608310043.12606.jnareb@gmail.com","threadId":"5436","inReplyTo":null,"subject":"[PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-30T22:43:12Z","receivedAt":"2006-08-30T22:43:12Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"In response to Thomas Glanzmann (or rather a friend of his) request, \nhere is series of patches which adds to tree view information about \nwhen last time and by whom was given file or directory touched.  As git \nrecords \"snapshot history\" and commits are whole tree, and not have per \nfile history, it means that one wants to know last commit counting from \nthe top which has the same version of file or the same tree.  This is \nsomething similar to blame (aka. annotate) for file, hence naming such \nview \"tree_blame\".\n\nCurrent implementation is done inefficiently directly in gitweb, and \nserves rather as a proof of concept than as a serious implementation to \nuse.\n\nThis series of patches is based on 'next' (v1.4.2-g39ee2f6) equivalent, \nbut with the commit 25691fbe6d02135d55dfc3a5180e29890dce1521\n   gitweb: Use --git-dir parameter instead of setting $ENV{'GIT_DIR'}\nreverted, as it needs git version post v1.4.2-rc2, while I use git \nversion 1.4.1.1, as there are no i386 RPMS for 1.4.2 yet.\n\nViewCVS/ViewVC prints the last touch of a a file in a directory and you \ncan tell it to sort after the date criteria:\nhttp://faumachine.informatik.uni-erlangen.de/cgi-bin/viewcvs.cgi/mutt/?sortby=date#dirlist\n\n-- \nJakub Narebski\nShadeHawk on #git\nPoland\n"},{"id":"26122","messageId":"ed55nu$62k$1@sea.gmane.org","threadId":"5436","inReplyTo":"200608310043.12606.jnareb@gmail.com","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-30T23:08:07Z","receivedAt":"2006-08-30T23:08:07Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"At the below URL (links of course _won't_ work)\n  http://front.fuw.edu.pl/jnareb/tree_blame.html\nis output of  \"tree_blame\" view. One can sort by Date (age), Author, Mode\nand Filename. The date view was modelled after 'ls -l' view; the order of\ncolumns probably should be changed to match it more closely.\n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"26123","messageId":"7vfyfdg4fw.fsf@assigned-by-dhcp.cox.net","threadId":"5436","inReplyTo":"ed55nu$62k$1@sea.gmane.org","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-08-31T00:00:03Z","receivedAt":"2006-08-31T00:00:03Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> At the below URL (links of course _won't_ work)\n>   http://front.fuw.edu.pl/jnareb/tree_blame.html\n> is output of  \"tree_blame\" view. One can sort by Date (age), Author, Mode\n> and Filename. The date view was modelled after 'ls -l' view; the order of\n> columns probably should be changed to match it more closely.\n\nJust a quick impression.\n\n - \"Mode\" looks too wide for the information it conveys.  Path\n   being a link already tells whether it is a tree, so the only\n   information you would need is a bit and half (regular file,\n   executable regular file, or symbolic link).\n\n - Spelling out Date in human readable form is fine but I suspect\n   it would be nicer if it used YYYY-MM-DD / MM-DD HH:MM\n\n - I personally do not like blaming the last person who touched\n   the file, but that is probably just me so it is fine.\n\n - \"Commit\" column does not seem to convey much useful\n   information; I would suggest perhaps making Date and/or\n   Author clickable to take the browser to the commit, but I do\n   not understand what the strike-through is about...\n\n - Since the rightmost links have quite a lot of information\n   these days, it _might_ be reasonable to make the main part\n   2 lines, like so:\n\n\tdate    author   mode    path\n        short-commit-log-message\n\n\tdate    author   mode    path\n        short-commit-log-message\n\n        ...\n\n - I wonder how expensive it is to generate this.\n"},{"id":"26124","messageId":"ed59rk$hk0$1@sea.gmane.org","threadId":"5436","inReplyTo":"7vfyfdg4fw.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-31T00:18:19Z","receivedAt":"2006-08-31T00:18:19Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> Jakub Narebski <jnareb@gmail.com> writes:\n> \n>> At the below URL (links of course _won't_ work)\n>>   http://front.fuw.edu.pl/jnareb/tree_blame.html\n>> is output of  \"tree_blame\" view. One can sort by Date (age), Author, Mode\n>> and Filename. The date view was modelled after 'ls -l' view; the order of\n>> columns probably should be changed to match it more closely.\n> \n> Just a quick impression.\n> \n>  - \"Mode\" looks too wide for the information it conveys.  Path\n>    being a link already tells whether it is a tree, so the only\n>    information you would need is a bit and half (regular file,\n>    executable regular file, or symbolic link).\n> \n>  - Spelling out Date in human readable form is fine but I suspect\n>    it would be nicer if it used YYYY-MM-DD / MM-DD HH:MM\n\nGood idea.\n\n>  - I personally do not like blaming the last person who touched\n>    the file, but that is probably just me so it is fine.\n\nI was going for something similar to the 'ls -l' look, with symbolic mode,\nuser (\"blame\" i.e. last person who touched the file for gitweb), date in\n'ls -l' format but in UTC and in C locale, file name. Preceded by commit,\nfollowed by related links (tree/blob, blame, history, raw).\n\n>  - \"Commit\" column does not seem to convey much useful\n>    information; I would suggest perhaps making Date and/or\n>    Author clickable to take the browser to the commit, but I do\n>    not understand what the strike-through is about...\n\nOoops, I forgot to explain this. Strike-through, which actually should be\nusing different color like red for example means that the file has 1-commit\nlong history, i.e. it just appeared in given commit.\n\nBTW. commit link should show commit title on mouseover.\n\n>  - Since the rightmost links have quite a lot of information\n>    these days, it _might_ be reasonable to make the main part\n>    2 lines, like so:\n> \n>       date    author   mode    path\n>         short-commit-log-message\n> \n>       date    author   mode    path\n>         short-commit-log-message\n> \n>         ...\n\nI'd rather have 1 line per entry, especially considering that one of key\nfeatures is ability to sort the \"tree_blame\" table by date.\n\n>  - I wonder how expensive it is to generate this.\n\nQuite expensive, especially for directories (trees) containing larger number\nof files, but if I remember correctly not much longer than for example\nsummary or tags page. Speed is constrained by the forking, one per\nfile/tree in given directory, at least for now.\n\nThere are three implementations in git_tree_blame...\n\nOf course the engine should be rewritten in C, made into git-blame-tree\n(similar to git-blame).\n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"26125","messageId":"200608310247.05385.Josef.Weidendorfer@gmx.de","threadId":"5436","inReplyTo":"ed59rk$hk0$1@sea.gmane.org","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Josef Weidendorfer","fromEmail":"josef.weidendorfer@gmx.de","sentAt":"2006-08-31T00:47:05Z","receivedAt":"2006-08-31T00:47:05Z","isPatch":true,"sender":{"key":"josef.weidendorfer@gmx.de","avatar":null},"body":"On Thursday 31 August 2006 02:18, Jakub Narebski wrote:\n> Ooops, I forgot to explain this. Strike-through, which actually should be\n> using different color like red for example means that the file has 1-commit\n> long history, i.e. it just appeared in given commit.\n\nSeems useful. Perhaps better green. And red for...\n(As you talk about \"just appeared\") What's about deleted files, similar\nto attic in CVS? It could be quite useful to provide an alternate\ntree-blame mode including deleted files; where the given commit\nwould specify the deletion.\n\nJosef\n"},{"id":"26126","messageId":"ed5cke$n4m$1@sea.gmane.org","threadId":"5436","inReplyTo":"200608310247.05385.Josef.Weidendorfer@gmx.de","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-31T01:05:43Z","receivedAt":"2006-08-31T01:05:43Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Josef Weidendorfer wrote:\n\n> On Thursday 31 August 2006 02:18, Jakub Narebski wrote:\n>> Ooops, I forgot to explain this. Strike-through, which actually should be\n>> using different color like red for example means that the file has\n>> 1-commit long history, i.e. it just appeared in given commit.\n> \n> Seems useful. Perhaps better green. And red for...\n> (As you talk about \"just appeared\") What's about deleted files, similar\n> to attic in CVS? It could be quite useful to provide an alternate\n> tree-blame mode including deleted files; where the given commit\n> would specify the deletion.\n\nDeletion, or renaming.\n\nActually the currently used implementation (2-items max length history for\neach file) doesn't allow for that. The other two implementations (you can\nchoose other 2 implementations by changing 'rev-list' in \"my $version =\nshift || 'rev-list'\" to 'diff-tree' or 'ls-tree') can do this. I think it\nwould be perhaps easiest with git-ls-tree, if git-ls-tree would acquire\n--stdin option, similar to git-diff-tree...\n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"26128","messageId":"20060831082002.GT8856@cip.informatik.uni-erlangen.de","threadId":"5436","inReplyTo":"200608310043.12606.jnareb@gmail.com","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Thomas Glanzmann","fromEmail":"sithglan@stud.uni-erlangen.de","sentAt":"2006-08-31T08:20:02Z","receivedAt":"2006-08-31T08:20:02Z","isPatch":true,"sender":{"key":"sithglan@stud.uni-erlangen.de","avatar":null},"body":"Hello,\n\n> In response to Thomas Glanzmann (or rather a friend of his) request,\n> here is series of patches which adds to tree view information about\n> when last time and by whom was given file or directory touched. \n\nthanks, I bounced the messages to him.\n\n        Thomas\n"},{"id":"26131","messageId":"ed69lm$285$1@sea.gmane.org","threadId":"5436","inReplyTo":"20060831082002.GT8856@cip.informatik.uni-erlangen.de","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-31T09:20:53Z","receivedAt":"2006-08-31T09:20:53Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Thomas Glanzmann wrote:\n\n\n>> In response to Thomas Glanzmann (or rather a friend of his) request,\n>> here is series of patches which adds to tree view information about\n>> when last time and by whom was given file or directory touched. \n> \n> thanks, I bounced the messages to him.\n\nJust to note: this is proof of concept. The final implementation should have\nengine written in C, in \"core git\", like git-blame. Currently this is very\nexpensive, so I didn't made gitweb with tree_blame available...\n\nBTW. my reply to the first message have link to \"screenshot\" (saved view of\npage to HTML) of the output.\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"26132","messageId":"ed69or$285$2@sea.gmane.org","threadId":"5436","inReplyTo":"ed5cke$n4m$1@sea.gmane.org","subject":"Re: [PATCH/RFC 0/4] gitweb: ViewVC-like \"tree_blame\" view","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-31T09:22:34Z","receivedAt":"2006-08-31T09:22:34Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Jakub Narebski wrote:\n\n> Josef Weidendorfer wrote:\n> \n>> On Thursday 31 August 2006 02:18, Jakub Narebski wrote:\n>>> Ooops, I forgot to explain this. Strike-through, which actually should\n>>> be using different color like red for example means that the file has\n>>> 1-commit long history, i.e. it just appeared in given commit.\n>> \n>> Seems useful. Perhaps better green. And red for...\n>> (As you talk about \"just appeared\") What's about deleted files, similar\n>> to attic in CVS? It could be quite useful to provide an alternate\n>> tree-blame mode including deleted files; where the given commit\n>> would specify the deletion.\n> \n> Deletion, or renaming.\n> \n> Actually the currently used implementation (2-items max length history for\n> each file) doesn't allow for that. The other two implementations (you can\n> choose other 2 implementations by changing 'rev-list' in \"my $version =\n> shift || 'rev-list'\" to 'diff-tree' or 'ls-tree') can do this. I think it\n> would be perhaps easiest with git-ls-tree, if git-ls-tree would acquire\n> --stdin option, similar to git-diff-tree...\n\nActually, unless you list only \"accidental\" deleted files, i.e. the ones\nencountered during \"blaming\" all the files in given directory, you would\nneed to go all the way back to the root to be sure that all deleted or\nrenamed files are listed.\n\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"}]}