| OLD | NEW |
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
| 2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | 2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> |
| 4 <head> | 4 <head> |
| 5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /
> | 5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /
> |
| 6 <meta name="generator" content="AsciiDoc 8.6.9" /> | 6 <meta name="generator" content="AsciiDoc 8.6.9" /> |
| 7 <title>git-footers(1)</title> | 7 <title>git-hyper-blame(1)</title> |
| 8 <style type="text/css"> | 8 <style type="text/css"> |
| 9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ | 9 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ |
| 10 | 10 |
| 11 /* Default font. */ | 11 /* Default font. */ |
| 12 body { | 12 body { |
| 13 font-family: Georgia,serif; | 13 font-family: Georgia,serif; |
| 14 } | 14 } |
| 15 | 15 |
| 16 /* Title font. */ | 16 /* Title font. */ |
| 17 h1, h2, h3, h4, h5, h6, | 17 h1, h2, h3, h4, h5, h6, |
| (...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 734 } | 734 } |
| 735 | 735 |
| 736 } | 736 } |
| 737 asciidoc.install(); | 737 asciidoc.install(); |
| 738 /*]]>*/ | 738 /*]]>*/ |
| 739 </script> | 739 </script> |
| 740 </head> | 740 </head> |
| 741 <body class="manpage"> | 741 <body class="manpage"> |
| 742 <div id="header"> | 742 <div id="header"> |
| 743 <h1> | 743 <h1> |
| 744 git-footers(1) Manual Page | 744 git-hyper-blame(1) Manual Page |
| 745 </h1> | 745 </h1> |
| 746 <h2>NAME</h2> | 746 <h2>NAME</h2> |
| 747 <div class="sectionbody"> | 747 <div class="sectionbody"> |
| 748 <p>git-footers - | 748 <p>git-hyper-blame - |
| 749 Extract meta-information expressed as footers in a commit message. | 749 Like git blame, but with the ability to ignore or bypass certain commits. |
| 750 </p> | 750 </p> |
| 751 </div> | 751 </div> |
| 752 </div> | 752 </div> |
| 753 <div id="content"> | 753 <div id="content"> |
| 754 <div class="sect1"> | 754 <div class="sect1"> |
| 755 <h2 id="_synopsis">SYNOPSIS</h2> | 755 <h2 id="_synopsis">SYNOPSIS</h2> |
| 756 <div class="sectionbody"> | 756 <div class="sectionbody"> |
| 757 <div class="verseblock"> | 757 <div class="verseblock"> |
| 758 <pre class="content"><em>git footers</em> [--key FOOTER] REF | 758 <pre class="content"><em>git hyper-blame</em> [-i <rev> [-i <rev> &#
8230;]] [<rev>] [--] <file></pre> |
| 759 <em>git footers</em> [--position | --position-ref | --position-num] REF</pre> | |
| 760 <div class="attribution"> | 759 <div class="attribution"> |
| 761 </div></div> | 760 </div></div> |
| 762 </div> | 761 </div> |
| 763 </div> | 762 </div> |
| 764 <div class="sect1"> | 763 <div class="sect1"> |
| 765 <h2 id="_description">DESCRIPTION</h2> | 764 <h2 id="_description">DESCRIPTION</h2> |
| 766 <div class="sectionbody"> | 765 <div class="sectionbody"> |
| 767 <div class="paragraph"><p><code>git footers</code> extracts information included
in commit messages as "footers", | 766 <div class="paragraph"><p><code>git hyper-blame</code> is like <code>git blame</
code> but it can ignore or "look through" a |
| 768 which are roughly like HTTP headers except they are at the end. For example, a | 767 given set of commits, to find the real culprit.</p></div> |
| 769 commit might look like:</p></div> | 768 <div class="paragraph"><p>This is useful if you have a commit that makes sweepin
g changes that are |
| 770 <div class="literalblock"> | 769 unlikely to be what you are looking for in a blame, such as mass reformatting or |
| 771 <div class="content"> | 770 renaming. By adding these commits to the hyper-blame ignore list, <code>git |
| 772 <pre><code>This is a fancy commit message.</code></pre> | 771 hyper-blame</code> will look past these commits to find the previous commit that |
| 773 </div></div> | 772 touched a given line.</p></div> |
| 774 <div class="literalblock"> | 773 <div class="paragraph"><p>Follows the normal <code>blame</code> syntax: annotate
s <code><file></code> with the revision that |
| 775 <div class="content"> | 774 last modified each line. Optional <code><rev></code> specifies the revisio
n of <code><file></code> to |
| 776 <pre><code>Cr-Commit-Position: refs/heads/master@{#292272} | 775 start from.</p></div> |
| 777 Tech-Debt-Introduced: 17 nanoMSOffices</code></pre> | |
| 778 </div></div> | |
| 779 <div class="paragraph"><p><code>git footers</code> knows how to extract this inf
ormation.</p></div> | |
| 780 <div class="paragraph"><p>Footers are order-independent and can appear more than
once. Thus they are | |
| 781 treated as a multimap.</p></div> | |
| 782 </div> | 776 </div> |
| 783 </div> | 777 </div> |
| 784 <div class="sect1"> | 778 <div class="sect1"> |
| 785 <h2 id="_options">OPTIONS</h2> | 779 <h2 id="_options">OPTIONS</h2> |
| 786 <div class="sectionbody"> | 780 <div class="sectionbody"> |
| 787 <div class="paragraph"><p>If no options are given, all footers are printed, with
their names | |
| 788 case-normalized.</p></div> | |
| 789 <div class="dlist"><dl> | 781 <div class="dlist"><dl> |
| 790 <dt class="hdlist1"> | 782 <dt class="hdlist1"> |
| 791 --key FOOTER | 783 -i <rev> |
| 792 </dt> | 784 </dt> |
| 793 <dd> | 785 <dd> |
| 794 <p> | 786 <p> |
| 795 Extract all the headers associated with the given key, and print one per | 787 A revision to ignore. Can be specified as many times as needed. |
| 796 line. If there are no footers with this key, produces no output and exits | |
| 797 successfully. | |
| 798 </p> | |
| 799 </dd> | |
| 800 <dt class="hdlist1"> | |
| 801 --position | |
| 802 </dt> | |
| 803 <dd> | |
| 804 <p> | |
| 805 Extract the Chrome commit position from the footers. This first attempts | |
| 806 to get the value of the <code>Cr-Commit-Position</code> footer. If that doesn
’t exist | |
| 807 then it tries a heuristic based on <code>Git-Svn-Id</code>. Output is in one
of the | |
| 808 following forms: | |
| 809 </p> | |
| 810 <div class="literalblock"> | |
| 811 <div class="content"> | |
| 812 <pre><code>refs/heads/master@{#292272} | |
| 813 refs/branch-heads/branchname</code></pre> | |
| 814 </div></div> | |
| 815 </dd> | |
| 816 <dt class="hdlist1"> | |
| 817 --position-num | |
| 818 </dt> | |
| 819 <dd> | |
| 820 <p> | |
| 821 Extracts and prints the Chrome commit position number only (292272 in the | |
| 822 example above). Exits with an error if one cannot be found. | |
| 823 </p> | |
| 824 </dd> | |
| 825 <dt class="hdlist1"> | |
| 826 --position-ref | |
| 827 </dt> | |
| 828 <dd> | |
| 829 <p> | |
| 830 Extracts and prints the Chrome commit position ref name only | |
| 831 (<code>ref/heads/master</code> or <code>refs/branch-heads/branchname</code> in
the example above). | |
| 832 </p> | 788 </p> |
| 833 </dd> | 789 </dd> |
| 834 </dl></div> | 790 </dl></div> |
| 835 </div> | 791 </div> |
| 836 </div> | 792 </div> |
| 837 <div class="sect1"> | 793 <div class="sect1"> |
| 838 <h2 id="_example">EXAMPLE</h2> | 794 <h2 id="_example">EXAMPLE</h2> |
| 839 <div class="sectionbody"> | 795 <div class="sectionbody"> |
| 840 <div class="paragraph"><p></p></div><div class="listingblock"><div class="conten
t"><pre><code><span style="font-weight: bold; color: #ffffff">$ git footers HEAD
</span> | 796 <div class="paragraph"><p>Let’s run <code>git blame</code> on a file:</p><
/div> |
| 841 Tech-Debt-Introduced: -4 microMSOffices | 797 <div class="paragraph"><p></p></div><div class="listingblock"><div class="conten
t"><pre><code><span style="font-weight: bold; color: #ffffff">$ git blame ipsum.
txt</span> |
| 842 Tech-Debt-Introduced: 17 microMSOffices | 798 c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 1) LOREM IPSUM DOLOR SIT AME
T, CONSECTETUR |
| 843 Cr-Commit-Position: refs/heads/master@{#292272} | 799 3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 2) ADIPISCING ELIT, SED DO E
IUSMOD TEMPOR |
| 844 <span style="font-weight: bold; color: #ffffff">$ git footers --key Tech-Debt-In
troduced HEAD</span> | 800 3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 3) INCIDIDUNT UT LABORE ET D
OLORE MAGNA |
| 845 -4 microMSOffices | 801 3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 4) ALIQUA. UT ENIM AD MINIM
VENIAM, QUIS |
| 846 17 microMSOffices | 802 c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 5) NOSTRUD EXERCITATION ULLA
MCO LABORIS |
| 847 <span style="font-weight: bold; color: #ffffff">$ git footers --position HEAD</s
pan> | 803 3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 6) NISI UT ALIQUIP EX EA COM
MODO CONSEQUAT. |
| 848 refs/heads/master@{#292272} | |
| 849 <span style="font-weight: bold; color: #ffffff">$ git footers --position-num HEA
D</span> | |
| 850 292272 | |
| 851 <span style="font-weight: bold; color: #ffffff">$ git footers --position-ref HEA
D</span> | |
| 852 refs/heads/master | |
| 853 </code></pre></div></div><p><div class="paragraph"></p></div> | 804 </code></pre></div></div><p><div class="paragraph"></p></div> |
| 805 <div class="paragraph"><p>Notice that almost the entire file has been blamed on
a formatting change? You |
| 806 aren’t interested in the uppercasing of the file. You want to know who |
| 807 wrote/modified those lines in the first place. Just tell <code>hyper-blame</code
> to ignore |
| 808 that commit:</p></div> |
| 809 <div class="paragraph"><p></p></div><div class="listingblock"><div class="conten
t"><pre><code><span style="font-weight: bold; color: #ffffff">$ git hyper-blame
-i 3ddda43c ipsum.txt</span> |
| 810 c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 1) LOREM IPSUM DOLOR SIT AMET, CONSEC
TETUR |
| 811 134200d1 (lorem 2014-04-10 08:54:46 +0000 2*) ADIPISCING ELIT, SED DO EIUSMOD TE
MPOR |
| 812 a34a1d0d (ipsum 2014-04-11 11:25:04 +0000 3*) INCIDIDUNT UT LABORE ET DOLORE MAG
NA |
| 813 134200d1 (lorem 2014-04-10 08:54:46 +0000 4*) ALIQUA. UT ENIM AD MINIM VENIAM, Q
UIS |
| 814 c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 5) NOSTRUD EXERCITATION ULLAMCO LABOR
IS |
| 815 0f0d17bd (dolor 2014-06-02 11:31:48 +0000 6*) NISI UT ALIQUIP EX EA COMMODO CONS
EQUAT. |
| 816 </code></pre></div></div><p><div class="paragraph"></p></div> |
| 817 <div class="paragraph"><p><code>hyper-blame</code> places a <code>*</code> next
to any line where it has skipped over an ignored |
| 818 commit, so you know that the line in question has been changed (by an ignored |
| 819 commit) since the given person wrote it.</p></div> |
| 820 </div> |
| 821 </div> |
| 822 <div class="sect1"> |
| 823 <h2 id="_bugs">BUGS</h2> |
| 824 <div class="sectionbody"> |
| 825 <div class="ulist"><ul> |
| 826 <li> |
| 827 <p> |
| 828 When a commit is ignored, hyper-blame currently just blames the same line in |
| 829 the previous version of the file. This can be wildly inaccurate if the ignored |
| 830 commit adds or removes lines, resulting in a completely wrong commit being |
| 831 blamed. |
| 832 </p> |
| 833 </li> |
| 834 <li> |
| 835 <p> |
| 836 There is currently no way to pass the ignore list as a file. |
| 837 </p> |
| 838 </li> |
| 839 <li> |
| 840 <p> |
| 841 It should be possible for a git repository to configure an automatic list of |
| 842 commits to ignore (like <code>.gitignore</code>), so that project owners can m
aintain a |
| 843 list of "big change" commits that are ignored by hyper-blame by default. |
| 844 </p> |
| 845 </li> |
| 846 </ul></div> |
| 854 </div> | 847 </div> |
| 855 </div> | 848 </div> |
| 856 <div class="sect1"> | 849 <div class="sect1"> |
| 857 <h2 id="_see_also">SEE ALSO</h2> | 850 <h2 id="_see_also">SEE ALSO</h2> |
| 858 <div class="sectionbody"> | 851 <div class="sectionbody"> |
| 859 <div class="paragraph"><p><a href="git-number.html">git-number(1)</a></p></div> | 852 <div class="paragraph"><p><a href="git-blame.html">git-blame(1)</a></p></div> |
| 860 </div> | 853 </div> |
| 861 </div> | 854 </div> |
| 862 <div class="sect1"> | 855 <div class="sect1"> |
| 863 <h2 id="_chromium_depot_tools">CHROMIUM DEPOT_TOOLS</h2> | 856 <h2 id="_chromium_depot_tools">CHROMIUM DEPOT_TOOLS</h2> |
| 864 <div class="sectionbody"> | 857 <div class="sectionbody"> |
| 865 <div class="paragraph"><p>Part of the chromium <a href="depot_tools.html">depot_
tools(7)</a> suite. These tools are meant to | 858 <div class="paragraph"><p>Part of the chromium <a href="depot_tools.html">depot_
tools(7)</a> suite. These tools are meant to |
| 866 assist with the development of chromium and related projects. Download the tools | 859 assist with the development of chromium and related projects. Download the tools |
| 867 from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
here</a>.</p></div> | 860 from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
here</a>.</p></div> |
| 868 </div> | 861 </div> |
| 869 </div> | 862 </div> |
| 870 </div> | 863 </div> |
| 871 <div id="footnotes"><hr /></div> | 864 <div id="footnotes"><hr /></div> |
| 872 <div id="footer"> | 865 <div id="footer"> |
| 873 <div id="footer-text"> | 866 <div id="footer-text"> |
| 874 Last updated 2014-09-09 14:13:46 PDT | 867 Last updated 2016-01-28 16:40:21 AEDT |
| 875 </div> | 868 </div> |
| 876 </div> | 869 </div> |
| 877 </body> | 870 </body> |
| 878 </html> | 871 </html> |
| OLD | NEW |