Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(303)

Side by Side Diff: man/html/git-hyper-blame.html

Issue 1559943003: Added git hyper-blame, a tool that skips unwanted commits in git blame. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Respond to review. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « man/html/depot_tools.html ('k') | man/man1/git-hyper-blame.1 » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 &lt;rev&gt; [-i &lt;rev&gt; &# 8230;]] [&lt;rev&gt;] [--] &lt;file&gt;</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>&lt;file&gt;</code> with the revision that
775 <div class="content"> 774 last modified each line. Optional <code>&lt;rev&gt;</code> specifies the revisio n of <code>&lt;file&gt;</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 &lt;rev&gt;
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 &#8217;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&#8217;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&#8217;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>
OLDNEW
« no previous file with comments | « man/html/depot_tools.html ('k') | man/man1/git-hyper-blame.1 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698