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:
Junio C Hamano 2006-05-16 17:21:35 -07:00
commit 8a24f2fae0
4 changed files with 23 additions and 71 deletions

View File

@ -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
------

View File

@ -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)

View File

@ -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" --

View File

@ -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;