summaryrefslogtreecommitdiff
path: root/git-am.sh
diff options
context:
space:
mode:
authorAlex Riesen <raa.lkml@gmail.com>2007-03-25 00:56:13 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-03-25 06:01:36 (GMT)
commit06aff47b225506c4603a6f5ec5b4b16aa6a9d7ba (patch)
treebef4b0af1de7ecdc5f8b5b374be4b86e4f654484 /git-am.sh
parent2a18c266d04273be05ed29c589a5c29b8e68134d (diff)
downloadgit-06aff47b225506c4603a6f5ec5b4b16aa6a9d7ba.zip
git-06aff47b225506c4603a6f5ec5b4b16aa6a9d7ba.tar.gz
git-06aff47b225506c4603a6f5ec5b4b16aa6a9d7ba.tar.bz2
Use diff* with --exit-code in git-am, git-rebase and git-merge-ours
This simplifies the shell code, reduces its memory footprint, and speeds things up. The performance improvements should be noticable when git-rebase works on big commits. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-am.sh')
-rwxr-xr-xgit-am.sh18
1 files changed, 7 insertions, 11 deletions
diff --git a/git-am.sh b/git-am.sh
index 88af8dd..e69ecbf 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -408,12 +408,10 @@ do
# trust what the user has in the index file and the
# working tree.
resolved=
- changed="$(git-diff-index --cached --name-only HEAD)"
- if test '' = "$changed"
- then
+ git-diff-index --quiet --cached HEAD && {
echo "No changes - did you forget to use 'git add'?"
stop_here_user_resolve $this
- fi
+ }
unmerged=$(git-ls-files -u)
if test -n "$unmerged"
then
@@ -435,13 +433,11 @@ do
then
# Applying the patch to an earlier tree and merging the
# result may have produced the same tree as ours.
- changed="$(git-diff-index --cached --name-only HEAD)"
- if test '' = "$changed"
- then
- echo No changes -- Patch already applied.
- go_next
- continue
- fi
+ git-diff-index --quiet --cached HEAD && {
+ echo No changes -- Patch already applied.
+ go_next
+ continue
+ }
# clear apply_status -- we have successfully merged.
apply_status=0
fi