{"thread":{"id":"45933","subject":"git-log(1) Doesn't Describe -L start,end Fully.","startedAt":"2017-05-11T13:54:15Z","lastAt":"2017-05-11T13:54:15Z","messageCount":1,"participants":["Ralph Corderoy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"319407","messageId":"20170511134500.4EA9E20162@orac.inputplus.co.uk","threadId":"45933","inReplyTo":null,"subject":"git-log(1) Doesn't Describe -L start,end Fully.","fromName":"Ralph Corderoy","fromEmail":"ralph@inputplus.co.uk","sentAt":"2017-05-11T13:45:00Z","receivedAt":"2017-05-11T13:54:15Z","isPatch":false,"sender":{"key":"ralph@inputplus.co.uk","avatar":null},"body":"Hi,\n\nArch Linux's git 2.12.2-4's git-log(1) says\n\n    -L <start>,<end>:<file>, -L :<funcname>:<file>\n        Trace the evolution of the line range given by \"<start>,<end>\"\n        (or the function name regex <funcname>) within the <file>.  You\n        may not give any pathspec limiters.  This is currently limited\n        to a walk starting from a single revision, i.e. you may only\n        give zero or one positive revision arguments.  You can specify\n        this option more than once.\n\n\t<start> and <end> can take one of these forms:\n\n\tnumber\n            If <start> or <end> is a number, it specifies an absolute\n            line number (lines count from 1).\n\nIt doesn't say one or both of start and end may be omitted.  Thus `-L\n,:foobar.c' is valid with start defaulting to 1 and end to the number of\nlines in foobar.c.  \n\nNor does it explain if 1,42 covering all of foobar.c as it is now swells\nto be 1,314 as the commits are walked to larger versions of foobar.c.\n\nThis was noticed because I've started with foo.c and bar.c, and each was\n`git mv'd to foobar.c in separate commits that were then each merged.\nI'm trying to `git log' HEAD's foobar.c and have it walk past the merges\nto show be foo.c and bar.c's history.\n\n`git log HEAD -- foobar.c foo.c bar.c' works, but one has to specify all\nthe old names.  `git log -L ,:foobar.c' works for a simple test case,\nbut I don't know if changes outside of foobar.c's current 1,42 lines\nwould always show up.  And also -L triggers patches and --no-patch\ndoesn't stop that;  bug?  The -L logic seems particular to `git log' so\nI can't have git-rev-list(1) do that work to provide the commits and\nthen log them separately.\n\n-- \nCheers, Ralph.\nhttps://plus.google.com/+RalphCorderoy\n"}]}