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

Unified 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, 11 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: man/html/git-hyper-blame.html
diff --git a/man/html/git-footers.html b/man/html/git-hyper-blame.html
similarity index 81%
copy from man/html/git-footers.html
copy to man/html/git-hyper-blame.html
index 0315f4a9385ac199281374f6b0fc0bc71a8fb0c1..a08de12f5b9c443388f3fbe76b969d1e396e58d0 100644
--- a/man/html/git-footers.html
+++ b/man/html/git-hyper-blame.html
@@ -4,7 +4,7 @@
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.9" />
-<title>git-footers(1)</title>
+<title>git-hyper-blame(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
@@ -741,12 +741,12 @@ asciidoc.install();
<body class="manpage">
<div id="header">
<h1>
-git-footers(1) Manual Page
+git-hyper-blame(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
-<p>git-footers -
- Extract meta-information expressed as footers in a commit message.
+<p>git-hyper-blame -
+ Like git blame, but with the ability to ignore or bypass certain commits.
</p>
</div>
</div>
@@ -755,8 +755,7 @@ git-footers(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
-<pre class="content"><em>git footers</em> [--key FOOTER] REF
-<em>git footers</em> [--position | --position-ref | --position-num] REF</pre>
+<pre class="content"><em>git hyper-blame</em> [-i &lt;rev&gt; [-i &lt;rev&gt; &#8230;]] [&lt;rev&gt;] [--] &lt;file&gt;</pre>
<div class="attribution">
</div></div>
</div>
@@ -764,71 +763,28 @@ git-footers(1) Manual Page
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
-<div class="paragraph"><p><code>git footers</code> extracts information included in commit messages as "footers",
-which are roughly like HTTP headers except they are at the end. For example, a
-commit might look like:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>This is a fancy commit message.</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>Cr-Commit-Position: refs/heads/master@{#292272}
-Tech-Debt-Introduced: 17 nanoMSOffices</code></pre>
-</div></div>
-<div class="paragraph"><p><code>git footers</code> knows how to extract this information.</p></div>
-<div class="paragraph"><p>Footers are order-independent and can appear more than once. Thus they are
-treated as a multimap.</p></div>
+<div class="paragraph"><p><code>git hyper-blame</code> is like <code>git blame</code> but it can ignore or "look through" a
+given set of commits, to find the real culprit.</p></div>
+<div class="paragraph"><p>This is useful if you have a commit that makes sweeping changes that are
+unlikely to be what you are looking for in a blame, such as mass reformatting or
+renaming. By adding these commits to the hyper-blame ignore list, <code>git
+hyper-blame</code> will look past these commits to find the previous commit that
+touched a given line.</p></div>
+<div class="paragraph"><p>Follows the normal <code>blame</code> syntax: annotates <code>&lt;file&gt;</code> with the revision that
+last modified each line. Optional <code>&lt;rev&gt;</code> specifies the revision of <code>&lt;file&gt;</code> to
+start from.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
-<div class="paragraph"><p>If no options are given, all footers are printed, with their names
-case-normalized.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
---key FOOTER
-</dt>
-<dd>
-<p>
- Extract all the headers associated with the given key, and print one per
- line. If there are no footers with this key, produces no output and exits
- successfully.
-</p>
-</dd>
-<dt class="hdlist1">
---position
-</dt>
-<dd>
-<p>
- Extract the Chrome commit position from the footers. This first attempts
- to get the value of the <code>Cr-Commit-Position</code> footer. If that doesn&#8217;t exist
- then it tries a heuristic based on <code>Git-Svn-Id</code>. Output is in one of the
- following forms:
-</p>
-<div class="literalblock">
-<div class="content">
-<pre><code>refs/heads/master@{#292272}
-refs/branch-heads/branchname</code></pre>
-</div></div>
-</dd>
-<dt class="hdlist1">
---position-num
-</dt>
-<dd>
-<p>
- Extracts and prints the Chrome commit position number only (292272 in the
- example above). Exits with an error if one cannot be found.
-</p>
-</dd>
-<dt class="hdlist1">
---position-ref
+-i &lt;rev&gt;
</dt>
<dd>
<p>
- Extracts and prints the Chrome commit position ref name only
- (<code>ref/heads/master</code> or <code>refs/branch-heads/branchname</code> in the example above).
+ A revision to ignore. Can be specified as many times as needed.
</p>
</dd>
</dl></div>
@@ -837,26 +793,63 @@ refs/branch-heads/branchname</code></pre>
<div class="sect1">
<h2 id="_example">EXAMPLE</h2>
<div class="sectionbody">
-<div class="paragraph"><p></p></div><div class="listingblock"><div class="content"><pre><code><span style="font-weight: bold; color: #ffffff">$ git footers HEAD</span>
-Tech-Debt-Introduced: -4 microMSOffices
-Tech-Debt-Introduced: 17 microMSOffices
-Cr-Commit-Position: refs/heads/master@{#292272}
-<span style="font-weight: bold; color: #ffffff">$ git footers --key Tech-Debt-Introduced HEAD</span>
--4 microMSOffices
-17 microMSOffices
-<span style="font-weight: bold; color: #ffffff">$ git footers --position HEAD</span>
-refs/heads/master@{#292272}
-<span style="font-weight: bold; color: #ffffff">$ git footers --position-num HEAD</span>
-292272
-<span style="font-weight: bold; color: #ffffff">$ git footers --position-ref HEAD</span>
-refs/heads/master
+<div class="paragraph"><p>Let&#8217;s run <code>git blame</code> on a file:</p></div>
+<div class="paragraph"><p></p></div><div class="listingblock"><div class="content"><pre><code><span style="font-weight: bold; color: #ffffff">$ git blame ipsum.txt</span>
+c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 1) LOREM IPSUM DOLOR SIT AMET, CONSECTETUR
+3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 2) ADIPISCING ELIT, SED DO EIUSMOD TEMPOR
+3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 3) INCIDIDUNT UT LABORE ET DOLORE MAGNA
+3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 4) ALIQUA. UT ENIM AD MINIM VENIAM, QUIS
+c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 5) NOSTRUD EXERCITATION ULLAMCO LABORIS
+3ddda43c (auto-uppercaser 2014-07-05 02:05:18 +0000 6) NISI UT ALIQUIP EX EA COMMODO CONSEQUAT.
+</code></pre></div></div><p><div class="paragraph"></p></div>
+<div class="paragraph"><p>Notice that almost the entire file has been blamed on a formatting change? You
+aren&#8217;t interested in the uppercasing of the file. You want to know who
+wrote/modified those lines in the first place. Just tell <code>hyper-blame</code> to ignore
+that commit:</p></div>
+<div class="paragraph"><p></p></div><div class="listingblock"><div class="content"><pre><code><span style="font-weight: bold; color: #ffffff">$ git hyper-blame -i 3ddda43c ipsum.txt</span>
+c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 1) LOREM IPSUM DOLOR SIT AMET, CONSECTETUR
+134200d1 (lorem 2014-04-10 08:54:46 +0000 2*) ADIPISCING ELIT, SED DO EIUSMOD TEMPOR
+a34a1d0d (ipsum 2014-04-11 11:25:04 +0000 3*) INCIDIDUNT UT LABORE ET DOLORE MAGNA
+134200d1 (lorem 2014-04-10 08:54:46 +0000 4*) ALIQUA. UT ENIM AD MINIM VENIAM, QUIS
+c6eb3bfa (lorem 2014-08-11 23:15:57 +0000 5) NOSTRUD EXERCITATION ULLAMCO LABORIS
+0f0d17bd (dolor 2014-06-02 11:31:48 +0000 6*) NISI UT ALIQUIP EX EA COMMODO CONSEQUAT.
</code></pre></div></div><p><div class="paragraph"></p></div>
+<div class="paragraph"><p><code>hyper-blame</code> places a <code>*</code> next to any line where it has skipped over an ignored
+commit, so you know that the line in question has been changed (by an ignored
+commit) since the given person wrote it.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bugs">BUGS</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+When a commit is ignored, hyper-blame currently just blames the same line in
+ the previous version of the file. This can be wildly inaccurate if the ignored
+ commit adds or removes lines, resulting in a completely wrong commit being
+ blamed.
+</p>
+</li>
+<li>
+<p>
+There is currently no way to pass the ignore list as a file.
+</p>
+</li>
+<li>
+<p>
+It should be possible for a git repository to configure an automatic list of
+ commits to ignore (like <code>.gitignore</code>), so that project owners can maintain a
+ list of "big change" commits that are ignored by hyper-blame by default.
+</p>
+</li>
+</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
-<div class="paragraph"><p><a href="git-number.html">git-number(1)</a></p></div>
+<div class="paragraph"><p><a href="git-blame.html">git-blame(1)</a></p></div>
</div>
</div>
<div class="sect1">
@@ -871,7 +864,7 @@ from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2014-09-09 14:13:46 PDT
+Last updated 2016-01-28 16:40:21 AEDT
</div>
</div>
</body>
« 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