Browse Source
Currently it does what git-blame does, but only faster. More importantly, its internal structure is designed to support content movement (aka cut-and-paste) more easily by allowing more than one paths to be taken from the same commit. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
Junio C Hamano
18 years ago
8 changed files with 1314 additions and 0 deletions
@ -0,0 +1,104 @@
@@ -0,0 +1,104 @@
|
||||
git-pickaxe(1) |
||||
============== |
||||
|
||||
NAME |
||||
---- |
||||
git-pickaxe - Show what revision and author last modified each line of a file |
||||
|
||||
SYNOPSIS |
||||
-------- |
||||
'git-pickaxe' [-c] [-l] [-t] [-f] [-n] [-p] [-L n,m] [-S <revs-file>] [<rev>] [--] <file> |
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
|
||||
Annotates each line in the given file with information from the revision which |
||||
last modified the line. Optionally, start annotating from the given revision. |
||||
|
||||
Also it can limit the range of lines annotated. |
||||
|
||||
This report doesn't tell you anything about lines which have been deleted or |
||||
replaced; you need to use a tool such as gitlink:git-diff[1] or the "pickaxe" |
||||
interface briefly mentioned in the following paragraph. |
||||
|
||||
Apart from supporting file annotation, git also supports searching the |
||||
development history for when a code snippet occured in a change. This makes it |
||||
possible to track when a code snippet was added to a file, moved or copied |
||||
between files, and eventually deleted or replaced. It works by searching for |
||||
a text string in the diff. A small example: |
||||
|
||||
----------------------------------------------------------------------------- |
||||
$ git log --pretty=oneline -S'blame_usage' |
||||
5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file> |
||||
ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output |
||||
----------------------------------------------------------------------------- |
||||
|
||||
OPTIONS |
||||
------- |
||||
-c, --compatibility:: |
||||
Use the same output mode as gitlink:git-annotate[1] (Default: off). |
||||
|
||||
-L n,m:: |
||||
Annotate only the specified line range (lines count from 1). |
||||
|
||||
-l, --long:: |
||||
Show long rev (Default: off). |
||||
|
||||
-t, --time:: |
||||
Show raw timestamp (Default: off). |
||||
|
||||
-S, --rev-file <revs-file>:: |
||||
Use revs from revs-file instead of calling gitlink:git-rev-list[1]. |
||||
|
||||
-f, --show-name:: |
||||
Show filename in the original commit. By default |
||||
filename is shown if there is any line that came from a |
||||
file with different name, due to rename detection. |
||||
|
||||
-n, --show-number:: |
||||
Show line number in the original commit (Default: off). |
||||
|
||||
-p, --porcelain:: |
||||
Show in a format designed for machine consumption. |
||||
|
||||
-h, --help:: |
||||
Show help message. |
||||
|
||||
|
||||
THE PORCELAIN FORMAT |
||||
-------------------- |
||||
|
||||
In this format, each line is output after a header; the |
||||
header at the minumum has the first line which has: |
||||
|
||||
- 40-byte SHA-1 of the commit the line is attributed to; |
||||
- the line number of the line in the original file; |
||||
- the line number of the line in the final file; |
||||
- on a line that starts a group of line from a different |
||||
commit than the previous one, the number of lines in this |
||||
group. On subsequent lines this field is absent. |
||||
|
||||
This header line is followed by the following information |
||||
at least once for each commit: |
||||
|
||||
- author name ("author"), email ("author-mail"), time |
||||
("author-time"), and timezone ("author-tz"); similarly |
||||
for committer. |
||||
- filename in the commit the line is attributed to. |
||||
- the first line of the commit log message ("summary"). |
||||
|
||||
The contents of the actual line is output after the above |
||||
header, prefixed by a TAB. This is to allow adding more |
||||
header elements later. |
||||
|
||||
SEE ALSO |
||||
-------- |
||||
gitlink:git-blame[1] |
||||
|
||||
AUTHOR |
||||
------ |
||||
Written by Junio C Hamano <junkio@cox.net> |
||||
|
||||
GIT |
||||
--- |
||||
Part of the gitlink:git[7] suite |
Loading…
Reference in new issue