Re: [PATCH v2] pull: merge into unborn by fast-forwarding from empty tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thomas Rast <trast@xxxxxxxxxxx> writes:

> Jeff King <peff@xxxxxxxx> writes:
>
>> On Thu, Jun 20, 2013 at 03:06:01PM +0200, Thomas Rast wrote:
>>
>>> +test_expect_success 'pulling into void does not overwrite staged files' '
>>> +	git init cloned-staged-colliding &&
>>> +	(
>>> +		cd cloned-staged-colliding &&
>>> +		echo "alternate content" >file &&
>>> +		git add file &&
>>> +		test_must_fail git pull .. master &&
>>> +		echo "alternate content" >expect &&
>>> +		test_cmp expect file &&
>>> +		git cat-file blob :file >file.index &&
>>> +		test_cmp expect file.index
>>> +	)
>>> +'
>>
>> I naively would have expected this to leave us in a conflicted state
>> over "file".  But I guess read-tree just rejects it, because we are not
>> doing a real three-way merge.  I'm not sure it is that big a deal; this
>> is more about safety than about creating a conflicted/resolvable state.
>
> Note that the test_must_fail essentially tests that the merge is rejected.

Bah, no it doesn't, a conflicting merge also returns a nonzero status.
Sigh.

If you meant we should actually conflict, I'm not sure what options
there would be other than actually calling a merge driver.  And we could
actually do this like so (it'll obviously break the tests):

diff --git i/git-pull.sh w/git-pull.sh
index 1f84383..b3d36a8 100755
--- i/git-pull.sh
+++ w/git-pull.sh
@@ -276,7 +276,7 @@ then
 	# lose index/worktree changes that the user already made on
 	# the unborn branch.
 	empty_tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904
-	git read-tree -m -u $empty_tree HEAD || exit 1
+	git merge-recursive $empty_tree -- $(git write-tree) HEAD || exit 1
 	exit
 fi
 


-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]