Re: [PATCH] t: branch: improve test rollback

2013-10-31 Thread Felipe Contreras
On Thu, Oct 31, 2013 at 12:50 PM, Junio C Hamano  wrote:
> Felipe Contreras  writes:
>
>> On Thu, Oct 31, 2013 at 12:32 PM, Junio C Hamano  wrote:
>>> Felipe Contreras  writes:
>>
 diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
 index 0fe7647..33673e0 100755
 --- a/t/t3200-branch.sh
 +++ b/t/t3200-branch.sh
 @@ -329,7 +329,7 @@ test_expect_success 'tracking setup fails on 
 non-matching refspec' '
  '

  test_expect_success 'test tracking setup via config' '
 - git config branch.autosetupmerge true &&
 + test_config branch.autosetupmerge true &&
   git config remote.local.url . &&
   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
>>>
>>> And "remote.local.*" setting does not follow that "pristine"
>>> principle, making the result of applying this patch inconsistent.
>>> Is that desirable?
>>
>> This patch is *improving* test rollback, it's not making it perfect.
>>
>> Let not the perfect be the enemy of the good.
>
> The patch is making it worse by stopping in the middle.

Whatever.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] t: branch: improve test rollback

2013-10-31 Thread Junio C Hamano
Felipe Contreras  writes:

> On Thu, Oct 31, 2013 at 12:32 PM, Junio C Hamano  wrote:
>> Felipe Contreras  writes:
>
>>> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
>>> index 0fe7647..33673e0 100755
>>> --- a/t/t3200-branch.sh
>>> +++ b/t/t3200-branch.sh
>>> @@ -329,7 +329,7 @@ test_expect_success 'tracking setup fails on 
>>> non-matching refspec' '
>>>  '
>>>
>>>  test_expect_success 'test tracking setup via config' '
>>> - git config branch.autosetupmerge true &&
>>> + test_config branch.autosetupmerge true &&
>>>   git config remote.local.url . &&
>>>   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
>>
>> And "remote.local.*" setting does not follow that "pristine"
>> principle, making the result of applying this patch inconsistent.
>> Is that desirable?
>
> This patch is *improving* test rollback, it's not making it perfect.
>
> Let not the perfect be the enemy of the good.

The patch is making it worse by stopping in the middle.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] t: branch: improve test rollback

2013-10-31 Thread Felipe Contreras
On Thu, Oct 31, 2013 at 12:32 PM, Junio C Hamano  wrote:
> Felipe Contreras  writes:

>> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
>> index 0fe7647..33673e0 100755
>> --- a/t/t3200-branch.sh
>> +++ b/t/t3200-branch.sh
>> @@ -329,7 +329,7 @@ test_expect_success 'tracking setup fails on 
>> non-matching refspec' '
>>  '
>>
>>  test_expect_success 'test tracking setup via config' '
>> - git config branch.autosetupmerge true &&
>> + test_config branch.autosetupmerge true &&
>>   git config remote.local.url . &&
>>   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
>
> And "remote.local.*" setting does not follow that "pristine"
> principle, making the result of applying this patch inconsistent.
> Is that desirable?

This patch is *improving* test rollback, it's not making it perfect.

Let not the perfect be the enemy of the good.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] t: branch: improve test rollback

2013-10-31 Thread Junio C Hamano
Felipe Contreras  writes:

> After every test the environment should be as close as to how it was
> before as possible.

Alternatively, each individual tests in a sequence of tests can
choose to set the test environment to its preferred state before
proceeding.  

Starting from a pristine state (i.e. the goal the above aspires to
reach) is probably more desirable, but in practice we could go
either way.  In any case we should consistently stick to one inside
a single test.

> Signed-off-by: Felipe Contreras 
> ---
>  t/t3200-branch.sh | 71 
> +++
>  1 file changed, 35 insertions(+), 36 deletions(-)
>
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index 0fe7647..33673e0 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -329,7 +329,7 @@ test_expect_success 'tracking setup fails on non-matching 
> refspec' '
>  '
>  
>  test_expect_success 'test tracking setup via config' '
> - git config branch.autosetupmerge true &&
> + test_config branch.autosetupmerge true &&
>   git config remote.local.url . &&
>   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&

And "remote.local.*" setting does not follow that "pristine"
principle, making the result of applying this patch inconsistent.
Is that desirable?



>   (git show-ref -q refs/remotes/local/master || git fetch local) &&
> @@ -339,20 +339,18 @@ test_expect_success 'test tracking setup via config' '
>  '
>  
>  test_expect_success 'test overriding tracking setup via --no-track' '
> - git config branch.autosetupmerge true &&
> + test_config branch.autosetupmerge true &&
>   git config remote.local.url . &&
>   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
>   (git show-ref -q refs/remotes/local/master || git fetch local) &&
>   git branch --no-track my2 local/master &&
> - git config branch.autosetupmerge false &&
>   ! test "$(git config branch.my2.remote)" = local &&
>   ! test "$(git config branch.my2.merge)" = refs/heads/master
>  '
>  
>  test_expect_success 'no tracking without .fetch entries' '
> - git config branch.autosetupmerge true &&
> + test_config branch.autosetupmerge true &&
>   git branch my6 s &&
> - git config branch.autosetupmerge false &&
>   test -z "$(git config branch.my6.remote)" &&
>   test -z "$(git config branch.my6.merge)"
>  '
> @@ -387,9 +385,8 @@ test_expect_success 'test --track without .fetch entries' 
> '
>  '
>  
>  test_expect_success 'branch from non-branch HEAD w/autosetupmerge=always' '
> - git config branch.autosetupmerge always &&
> - git branch my9 HEAD^ &&
> - git config branch.autosetupmerge false
> + test_config branch.autosetupmerge always &&
> + git branch my9 HEAD^
>  '
>  
>  test_expect_success 'branch from non-branch HEAD w/--track causes failure' '
> @@ -406,9 +403,9 @@ test_expect_success '--set-upstream-to fails on multiple 
> branches' '
>  '
>  
>  test_expect_success '--set-upstream-to fails on detached HEAD' '
> + test_when_finished "git checkout -" &&
>   git checkout HEAD^{} &&
> - test_must_fail git branch --set-upstream-to master &&
> - git checkout -
> + test_must_fail git branch --set-upstream-to master
>  '
>  
>  test_expect_success '--set-upstream-to fails on a missing dst branch' '
> @@ -460,9 +457,9 @@ test_expect_success '--unset-upstream should fail on 
> multiple branches' '
>  '
>  
>  test_expect_success '--unset-upstream should fail on detached HEAD' '
> + test_when_finished "git checkout -" &&
>   git checkout HEAD^{} &&
> - test_must_fail git branch --unset-upstream &&
> - git checkout -
> + test_must_fail git branch --unset-upstream
>  '
>  
>  test_expect_success 'test --unset-upstream on a particular branch' '
> @@ -541,7 +538,8 @@ test_expect_success 'checkout -b with -l makes reflog 
> when core.logAllRefUpdates
>  '
>  
>  test_expect_success 'avoid ambiguous track' '
> - git config branch.autosetupmerge true &&
> + test_when_finished "git remote rm ambi1 && git remote rm ambi2" &&
> + test_config branch.autosetupmerge true &&
>   git config remote.ambi1.url lalala &&
>   git config remote.ambi1.fetch refs/heads/lalala:refs/heads/master &&
>   git config remote.ambi2.url lilili &&
> @@ -553,7 +551,7 @@ test_expect_success 'avoid ambiguous track' '
>  test_expect_success 'autosetuprebase local on a tracked local branch' '
>   git config remote.local.url . &&
>   git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
> - git config branch.autosetuprebase local &&
> + test_config branch.autosetuprebase local &&
>   (git show-ref -q refs/remotes/local/o || git fetch local) &&
>   git branch mybase &&
>   git branch --track myr1 mybase &&
> @@ -565,7 +563,7 @@ test_expect_success 'autosetuprebase local on a tracked 
> local branch' '
>  test_expect_success 'autosetuprebase alw