Merge branch 'master' into next
* master: Remove old "git-grep.sh" remnants merge-base: Clarify the comments on post processing. Update the documentation for git-merge-base
This commit is contained in:
commit
8a24f2fae0
@ -8,16 +8,26 @@ git-merge-base - Finds as good a common ancestor as possible for a merge
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
'git-merge-base' <commit> <commit>
|
||||
'git-merge-base' [--all] <commit> <commit>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
"git-merge-base" finds as good a common ancestor as possible. Given a
|
||||
selection of equally good common ancestors it should not be relied on
|
||||
to decide in any particular way.
|
||||
|
||||
"git-merge-base" finds as good a common ancestor as possible between
|
||||
the two commits. That is, given two commits A and B 'git-merge-base A
|
||||
B' will output a commit which is reachable from both A and B through
|
||||
the parent relationship.
|
||||
|
||||
Given a selection of equally good common ancestors it should not be
|
||||
relied on to decide in any particular way.
|
||||
|
||||
The "git-merge-base" algorithm is still in flux - use the source...
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--all::
|
||||
Output all common ancestors for the two commits instead of
|
||||
just one.
|
||||
|
||||
Author
|
||||
------
|
||||
|
5
Makefile
5
Makefile
@ -124,7 +124,7 @@ SCRIPT_SH = \
|
||||
git-tag.sh git-verify-tag.sh \
|
||||
git-applymbox.sh git-applypatch.sh git-am.sh \
|
||||
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
|
||||
git-merge-resolve.sh git-merge-ours.sh git-grep.sh \
|
||||
git-merge-resolve.sh git-merge-ours.sh \
|
||||
git-lost-found.sh
|
||||
|
||||
SCRIPT_PERL = \
|
||||
@ -169,7 +169,8 @@ PROGRAMS = \
|
||||
git-describe$X git-merge-tree$X git-blame$X git-imap-send$X
|
||||
|
||||
BUILT_INS = git-log$X git-whatchanged$X git-show$X \
|
||||
git-count-objects$X git-diff$X git-push$X
|
||||
git-count-objects$X git-diff$X git-push$X \
|
||||
git-grep$X
|
||||
|
||||
# what 'all' will build and 'install' will install, in gitexecdir
|
||||
ALL_PROGRAMS = $(PROGRAMS) $(SIMPLE_PROGRAMS) $(SCRIPTS)
|
||||
|
62
git-grep.sh
62
git-grep.sh
@ -1,62 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) Linus Torvalds, 2005
|
||||
#
|
||||
|
||||
USAGE='[<option>...] [-e] <pattern> [<path>...]'
|
||||
SUBDIRECTORY_OK='Yes'
|
||||
. git-sh-setup
|
||||
|
||||
got_pattern () {
|
||||
if [ -z "$no_more_patterns" ]
|
||||
then
|
||||
pattern="$1" no_more_patterns=yes
|
||||
else
|
||||
die "git-grep: do not specify more than one pattern"
|
||||
fi
|
||||
}
|
||||
|
||||
no_more_patterns=
|
||||
pattern=
|
||||
flags=()
|
||||
git_flags=()
|
||||
while : ; do
|
||||
case "$1" in
|
||||
-o|--cached|--deleted|--others|--killed|\
|
||||
--ignored|--modified|--exclude=*|\
|
||||
--exclude-from=*|\--exclude-per-directory=*)
|
||||
git_flags=("${git_flags[@]}" "$1")
|
||||
;;
|
||||
-e)
|
||||
got_pattern "$2"
|
||||
shift
|
||||
;;
|
||||
-A|-B|-C|-D|-d|-f|-m)
|
||||
flags=("${flags[@]}" "$1" "$2")
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
# The rest are git-ls-files paths
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*)
|
||||
flags=("${flags[@]}" "$1")
|
||||
;;
|
||||
*)
|
||||
if [ -z "$no_more_patterns" ]
|
||||
then
|
||||
got_pattern "$1"
|
||||
shift
|
||||
fi
|
||||
[ "$1" = -- ] && shift
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
[ "$pattern" ] || {
|
||||
usage
|
||||
}
|
||||
git-ls-files -z "${git_flags[@]}" -- "$@" |
|
||||
xargs -0 grep "${flags[@]}" -e "$pattern" --
|
@ -82,8 +82,9 @@ static struct commit *interesting(struct commit_list *list)
|
||||
* commit B.
|
||||
*
|
||||
*
|
||||
* Another pathological example how this thing can fail to mark an ancestor
|
||||
* of a merge base as UNINTERESTING without the postprocessing phase.
|
||||
* Another pathological example how this thing used to fail to mark an
|
||||
* ancestor of a merge base as UNINTERESTING before we introduced the
|
||||
* postprocessing phase (mark_reachable_commits).
|
||||
*
|
||||
* 2
|
||||
* H
|
||||
@ -118,7 +119,9 @@ static struct commit *interesting(struct commit_list *list)
|
||||
* D7 2 3 7 7 3 2 1 2
|
||||
* E7 2 3 7 7 7 2 1 2
|
||||
*
|
||||
* and we end up showing E as an interesting merge base.
|
||||
* and we ended up showing E as an interesting merge base.
|
||||
* The postprocessing phase re-injects C and continues traversal
|
||||
* to contaminate D and E.
|
||||
*/
|
||||
|
||||
static int show_all = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user