diff options
Diffstat (limited to 'third_party/git/contrib/git-jump')
-rw-r--r-- | third_party/git/contrib/git-jump/README | 112 | ||||
-rwxr-xr-x | third_party/git/contrib/git-jump/git-jump | 78 |
2 files changed, 0 insertions, 190 deletions
diff --git a/third_party/git/contrib/git-jump/README b/third_party/git/contrib/git-jump/README deleted file mode 100644 index 2f618a7f9788..000000000000 --- a/third_party/git/contrib/git-jump/README +++ /dev/null @@ -1,112 +0,0 @@ -git-jump -======== - -Git-jump is a script for helping you jump to "interesting" parts of your -project in your editor. It works by outputting a set of interesting -spots in the "quickfix" format, which editors like vim can use as a -queue of places to visit (this feature is usually used to jump to errors -produced by a compiler). For example, given a diff like this: - ------------------------------------- -diff --git a/foo.c b/foo.c -index a655540..5a59044 100644 ---- a/foo.c -+++ b/foo.c -@@ -1,3 +1,3 @@ - int main(void) { -- printf("hello word!\n"); -+ printf("hello world!\n"); - } ------------------------------------ - -git-jump will feed this to the editor: - ------------------------------------ -foo.c:2: printf("hello word!\n"); ------------------------------------ - -Or, when running 'git jump grep', column numbers will also be emitted, -e.g. `git jump grep "hello"` would return: - ------------------------------------ -foo.c:2:9: printf("hello word!\n"); ------------------------------------ - -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 four types of interesting lists: - - 1. The beginning of any diff hunks. - - 2. The beginning of any merge conflict markers. - - 3. Any grep matches, including the column of the first match on a - line. - - 4. Any whitespace errors detected by `git diff --check`. - - -Using git-jump --------------- - -To use it, just drop git-jump in your PATH, and then invoke it like -this: - --------------------------------------------------- -# jump to changes not yet staged for commit -git jump diff - -# jump to changes that are staged for commit; you can give -# arbitrary diff options -git jump diff --cached - -# jump to merge conflicts -git jump merge - -# jump to all instances of foo_bar -git jump grep foo_bar - -# same as above, but case-insensitive; you can give -# arbitrary grep options -git jump grep -i foo_bar - -# use the silver searcher for git jump grep -git config jump.grepCmd "ag --column" --------------------------------------------------- - - -Related Programs ----------------- - -You can accomplish some of the same things with individual tools. For -example, you can use `git mergetool` to start vimdiff on each unmerged -file. `git jump merge` is for the vim-wielding luddite who just wants to -jump straight to the conflict text with no fanfare. - -As of git v1.7.2, `git grep` knows the `--open-files-in-pager` option, -which does something similar to `git jump grep`. However, it is limited -to positioning the cursor to the correct line in only the first file, -leaving you to locate subsequent hits in that file or other files using -the editor or pager. By contrast, git-jump provides the editor with a -complete list of files, lines, and a column number for each match. - - -Limitations ------------ - -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. - -The shell snippets to generate the quickfix lines will almost certainly -choke on filenames with exotic characters (like newlines). - -Contributing ------------- - -Bug fixes, bug reports, and feature requests should be discussed on the -Git mailing list <git@vger.kernel.org>, and cc'd to the git-jump -maintainer, Jeff King <peff@peff.net>. diff --git a/third_party/git/contrib/git-jump/git-jump b/third_party/git/contrib/git-jump/git-jump deleted file mode 100755 index 931b0fe3a948..000000000000 --- a/third_party/git/contrib/git-jump/git-jump +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -usage() { - cat <<\EOF -usage: git jump <mode> [<args>] - -Jump to interesting elements in an editor. -The <mode> parameter is one of: - -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 git grep or, if - configured, to the command in `jump.grepCmd`. - -ws: elements are whitespace errors. Arguments are given to diff --check. -EOF -} - -open_editor() { - editor=`git var GIT_EDITOR` - eval "$editor -q \$1" -} - -mode_diff() { - git diff --no-prefix --relative "$@" | - perl -ne ' - if (m{^\+\+\+ (.*)}) { $file = $1; next } - defined($file) or next; - if (m/^@@ .*?\+(\d+)/) { $line = $1; next } - defined($line) or next; - if (/^ /) { $line++; next } - if (/^[-+]\s*(.*)/) { - print "$file:$line: $1\n"; - $line = undef; - } - ' -} - -mode_merge() { - git ls-files -u | - perl -pe 's/^.*?\t//' | - sort -u | - while IFS= read fn; do - grep -Hn '^<<<<<<<' "$fn" - done -} - -# Grep -n generates nice quickfix-looking lines by itself, -# but let's clean up extra whitespace, so they look better if the -# editor shows them to us in the status bar. -mode_grep() { - cmd=$(git config jump.grepCmd) - test -n "$cmd" || cmd="git grep -n --column" - $cmd "$@" | - perl -pe ' - s/[ \t]+/ /g; - s/^ *//; - ' -} - -mode_ws() { - git diff --check "$@" -} - -if test $# -lt 1; then - usage >&2 - exit 1 -fi -mode=$1; shift - -trap 'rm -f "$tmp"' 0 1 2 3 15 -tmp=`mktemp -t git-jump.XXXXXX` || exit 1 -type "mode_$mode" >/dev/null 2>&1 || { usage >&2; exit 1; } -"mode_$mode" "$@" >"$tmp" -test -s "$tmp" || exit 0 -open_editor "$tmp" |