More work on merging with git-read-tree..

Add a "-u" flag to update the tree as a result of a merge.

Right now this code is way too anal about things, and fails merges it
shouldn't, but let me fix up the different cases and this will allow for
much smoother merging even in the presense of dirty data in the working
tree.
This commit is contained in:
Linus Torvalds
2005-06-05 22:07:31 -07:00
parent 12dccc1654
commit 220a0b527b
3 changed files with 107 additions and 23 deletions

View File

@ -39,14 +39,13 @@ if [ "$common" == "$head" ]; then
echo "Destroying all noncommitted data!"
echo "Kill me within 3 seconds.."
sleep 3
git-read-tree -m $merge || exit 1
git-checkout-cache -f -u -a
git-read-tree -u -m $head $merge || exit 1
echo $merge > "$GIT_DIR"/HEAD
git-diff-tree -p ORIG_HEAD HEAD | git-apply --stat
exit 0
fi
echo "Trying to merge $merge into $head"
git-read-tree -m $common $head $merge || exit 1
git-read-tree -u -m $common $head $merge || exit 1
merge_msg="Merge of $merge_repo"
result_tree=$(git-write-tree 2> /dev/null)
if [ $? -ne 0 ]; then
@ -58,5 +57,4 @@ fi
result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree -p $head -p $merge)
echo "Committed merge $result_commit"
echo $result_commit > "$GIT_DIR"/HEAD
git-checkout-cache -f -u -a
git-diff-tree -p ORIG_HEAD HEAD | git-apply --stat