projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
diff-files: show diffs with stage0 and unmerged stage at the same time.
[git.git]
/
git-merge-one-file.sh
diff --git
a/git-merge-one-file.sh
b/git-merge-one-file.sh
index
d9ee458
..
739a072
100755
(executable)
--- a/
git-merge-one-file.sh
+++ b/
git-merge-one-file.sh
@@
-25,7
+25,8
@@
case "${1:-.}${2:-.}${3:-.}" in
echo "Removing $4"
fi
if test -f "$4"; then
echo "Removing $4"
fi
if test -f "$4"; then
- rm -f -- "$4"
+ rm -f -- "$4" &&
+ rmdir -p "$(expr "$4" : '\(.*\)/')" 2>/dev/null
fi &&
exec git-update-index --remove -- "$4"
;;
fi &&
exec git-update-index --remove -- "$4"
;;
@@
-64,7
+65,13
@@
case "${1:-.}${2:-.}${3:-.}" in
# This extracts OUR file in $orig, and uses git-apply to
# remove lines that are unique to ours.
orig=`git-unpack-file $2`
# This extracts OUR file in $orig, and uses git-apply to
# remove lines that are unique to ours.
orig=`git-unpack-file $2`
+ sz0=`wc -c <"$orig"`
diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add
diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add
+ sz1=`wc -c <"$orig"`
+
+ # If we do not have enough common material, it is not
+ # worth trying two-file merge using common subsections.
+ expr "$sz0" \< "$sz1" \* 2 >/dev/null || : >$orig
;;
*)
echo "Auto-merging $4."
;;
*)
echo "Auto-merging $4."
@@
-72,11
+79,7
@@
case "${1:-.}${2:-.}${3:-.}" in
;;
esac
;;
esac
- # We reset the index to the first branch, making
- # git-diff-file useful
- git-update-index --add --cacheinfo "$6" "$2" "$4"
- git-checkout-index -u -f -- "$4" &&
- merge "$4" "$orig" "$src2"
+ merge "$4" "$orig" "$src2"
ret=$?
rm -f -- "$orig" "$src2"
ret=$?
rm -f -- "$orig" "$src2"