Paul Tan [off-list ref] writes:
+test_expect_success 'fast-forward fails with conflicting work tree' '
+ git checkout -b third master^ &&
+ test_when_finished "git checkout -f copy && git branch -D third" &&
+ echo file >expected &&
+ test_cmp expected file &&
+ echo conflict >file &&
+ test_must_fail git pull . second:third 2>out &&
+ test_i18ngrep "Cannot fast-forward your working tree" out &&
+ test `cat file` = conflict
At this point, HEAD would match either master^ (as initially checked
out) or second (as fetch fast-forwarded), but I cannot read what this
test is expecting to happen.
Should the HEAD move or stay?
+'
+
test_expect_success '--rebase' '
git branch to-rebase &&
echo modified again > file &&
Hi Junio,
On Fri, May 8, 2015 at 1:12 AM, Junio C Hamano [off-list ref] wrote:
Paul Tan [off-list ref] writes:
quoted
+test_expect_success 'fast-forward fails with conflicting work tree' '
+ git checkout -b third master^ &&
+ test_when_finished "git checkout -f copy && git branch -D third" &&
+ echo file >expected &&
+ test_cmp expected file &&
+ echo conflict >file &&
+ test_must_fail git pull . second:third 2>out &&
+ test_i18ngrep "Cannot fast-forward your working tree" out &&
+ test `cat file` = conflict
At this point, HEAD would match either master^ (as initially checked
out) or second (as fetch fast-forwarded), but I cannot read what this
test is expecting to happen.
Should the HEAD move or stay?
Ugh, it was probably me getting confused by all the test dependencies :-(.
Anyway, second^ == master^ == the initial commit at this point, so it
would be clearer to write "git checkout -b third second^", I think.
The HEAD has already moved because git-fetch updated it. I should
definitely add a check to make that clear.
Whether it should or not is something I have an answer to yet though.
Thanks,
Paul