{"thread":{"id":"24142","subject":"[GSoC 2010 Update] Please try the initial version of the line level history browser","startedAt":"2010-06-17T16:05:10Z","lastAt":"2010-06-25T01:45:50Z","messageCount":2,"participants":["Bo Yang","Jonathan Nieder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"143875","messageId":"AANLkTimRGZziLnffQXmzYnNhhE3dE_5Hsp1mxAEmBiIk@mail.gmail.com","threadId":"24142","inReplyTo":null,"subject":"[GSoC 2010 Update] Please try the initial version of the line level history browser","fromName":"Bo Yang","fromEmail":"struggleyb.nku@gmail.com","sentAt":"2010-06-17T16:05:10Z","receivedAt":"2010-06-17T16:05:10Z","isPatch":false,"sender":{"key":"struggleyb.nku@gmail.com","avatar":"https://avatars.githubusercontent.com/u/233030?v=4"},"body":"Hi all,\n\n    After 3 weeks of heavy development, I have finally made up a\nusable version of line level history browser. Thomas and I have try\nsome use cases with it indeed generate useful output for us. :) So, I\nthink it is a good chance to let all of the ones who is interested in\nthis feature have a try with it, and please give me any advice if any.\n\n    Generally, the code is located at:\n\nssh://repo.or.cz/srv/git/line.git   phrase2\n\nYes, this is a tag on 'diff-range' branch, all development is on this\nbranch and phrase1/phrase2 are tags used for 'public testing' version.\n:)\n\nFor the feature itself, it supports a command line syntax:  git-log\nlog [rev] -L <s>,<e> -L <s>,<e> <file1> -L <s>,<e> file2. And the\nmultiple ranges case is not fully tested, but mostly works well.\n\nHere are some interesting cases we have run until now. Generally, the\nline level history will show users the complete change story of any\nline range.\nI usually use it for two purpose:\n1. Understand code. Many times, when I want to read/modify some lines\nof code, the first thing is to try to find out whether my changes has\nbeen considered by other ones. And viewing the whole history of just\nthese lines( the function contain these lines) is necessary, so ./git\nlog -L /try_to_find_renames/,/^}/ tree-diff.c and \"git log -L '/int\nrev_compare_tree/,/^}/' revision.c\" helps. :)\n2. Find out some code I have delete. :) yes, sometimes, after some\ncommits, I find the 3 lines deleted the day before yerstoday may be\nbetter than current one. But I really forget what they exactly are\nexcept I know they have appeared in which function. So, run the line\nlog to find it like. ./git log -L '/void map_lines/,/^}/' line.c to\nfind it.\n\nAnd Thomas give some other interesting usecases.\n1. Use  \"git log -L /common_prefix/,/^}/ dir.c\" to replace a series\n'git blame; git show' to find what whether the function is buggy.\n2. Try 'git log be58e70^ -L /builtin_funcname_pattern/,/^}/ diff.c',\nthe line level browser will report the 'nontrivial merges' touch the\ninteresting lines.\n\nSo, come on everybody, try it in your way, and tell me your advice,\nthanks a lot!\n\n\nFinally, below are the change summary:\n Makefile        |    2 +\n builtin/log.c   |  125 ++++++-\n diff.c          |    6 +-\n diff.h          |   22 +\n diffcore.h      |    3 +\n line.c          | 1210 +++++++++++++++++++++++++++++++++++++++++++++++++++++++\n line.h          |  120 ++++++\n parse-options.c |   24 +-\n parse-options.h |    5 +\n revision.c      |   16 +-\n revision.h      |   12 +-\n 11 files changed, 1534 insertions(+), 11 deletions(-)\n\n\nAnd finally, my future plans are:\n1. Fix some memory leaks of this verion.\n2. Collect advice of this version and improve it.\n3. Start to prepare this version to list and submit patches.\n\n-- \nRegards!\nBo\n----------------------------\nMy blog: http://blog.morebits.org\nWhy Git: http://www.whygitisbetterthanx.com/\n"},{"id":"144219","messageId":"20100625014550.GA5077@burratino","threadId":"24142","inReplyTo":"AANLkTimRGZziLnffQXmzYnNhhE3dE_5Hsp1mxAEmBiIk@mail.gmail.com","subject":"Re: [GSoC 2010 Update] Please try the initial version of the line level history browser","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-06-25T01:45:50Z","receivedAt":"2010-06-25T01:45:50Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi Bo,\n\nBo Yang wrote:\n\n> ssh://repo.or.cz/srv/git/line.git   phrase2\n\nFor those without ssh access, it seems the place to look is\n\n git://repo.or.cz/line.git diff-range\n http://repo.or.cz/r/line.git diff-range\n\n> And finally, my future plans are:\n> 1. Fix some memory leaks of this verion.\n> 2. Collect advice of this version and improve it.\n> 3. Start to prepare this version to list and submit patches.\n\nLooking forward to it!\n\nThanks,\nJonathan\n"}]}