Merge branch 'jk/git-jump'
authorJunio C Hamano <gitster@pobox.com>
Wed, 3 Aug 2016 22:10:27 +0000 (15:10 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 3 Aug 2016 22:10:27 +0000 (15:10 -0700)
"git jump" script (in contrib/) has been updated a bit.

* jk/git-jump:
contrib/git-jump: fix typo in README
contrib/git-jump: add whitespace-checking mode
contrib/git-jump: fix greedy regex when matching hunks

contrib/git-jump/README
contrib/git-jump/git-jump
index 1cebc328cbfa1daffd1e0ce9f4fe1807140340d5..225e3f09547d07563a8da34b21677dce514659fa 100644 (file)
@@ -29,7 +29,7 @@ Obviously this trivial case isn't that interesting; you could just open
 `foo.c` yourself. But when you have many changes scattered across a
 project, you can use the editor's support to "jump" from point to point.
 
-Git-jump can generate three types of interesting lists:
+Git-jump can generate four types of interesting lists:
 
   1. The beginning of any diff hunks.
 
@@ -37,6 +37,8 @@ Git-jump can generate three types of interesting lists:
 
   3. Any grep matches.
 
+  4. Any whitespace errors detected by `git diff --check`.
+
 
 Using git-jump
 --------------
@@ -83,7 +85,7 @@ complete list of files and line numbers for each match.
 Limitations
 -----------
 
-This scripts was written and tested with vim. Given that the quickfix
+This script was written and tested with vim. Given that the quickfix
 format is the same as what gcc produces, I expect emacs users have a
 similar feature for iterating through the list, but I know nothing about
 how to activate it.
index dc90cd6379de4e9bf1eadc69560867601227b55d..427f206a45b326f2ee80af0fae7080d5f794c14a 100755 (executable)
@@ -12,6 +12,8 @@ diff: elements are diff hunks. Arguments are given to diff.
 merge: elements are merge conflicts. Arguments are ignored.
 
 grep: elements are grep hits. Arguments are given to grep.
+
+ws: elements are whitespace errors. Arguments are given to diff --check.
 EOF
 }
 
@@ -25,7 +27,7 @@ mode_diff() {
        perl -ne '
        if (m{^\+\+\+ (.*)}) { $file = $1; next }
        defined($file) or next;
-       if (m/^@@ .*\+(\d+)/) { $line = $1; next }
+       if (m/^@@ .*?\+(\d+)/) { $line = $1; next }
        defined($line) or next;
        if (/^ /) { $line++; next }
        if (/^[-+]\s*(.*)/) {
@@ -55,6 +57,10 @@ mode_grep() {
        '
 }
 
+mode_ws() {
+       git diff --check "$@"
+}
+
 if test $# -lt 1; then
        usage >&2
        exit 1