Subject: Re: [PATCH] t9118 (git-svn): prevent early failure from taking down later tests

From: A Large Angry SCM <[email-masked]>
Date: Thu, 08 Jul 2010 10:35:28 -0400

On 07/08/2010 09:36 AM, Jonathan Nieder wrote:
> When test #2 fails, the cwd is project/, causing all the
> remaining tests in the same script to get confused and fail.
>
> So in the spirit of v1.7.1.1~53^2~10 (t5550-http-fetch: Use subshell
> for repository operations, 2010-04-17), use a subshell for svn
> working copy operations.  This way, the cwd will reliably return
> to the top of the trash directory and later tests can still be run
> when a command has failed.
>
> Reported-by: A Large Angry SCM<[email-masked]>
> Signed-off-by: Jonathan Nieder<[email-masked]>
> ---
> A Large Angry SCM wrote:
>
>> *** t9118-git-svn-funky-branch-names.sh ***
>> ok 1 - setup svnrepo
>> not ok - 2 test clone with funky branch names
>
> Relates to an svn change from some point between 1.5.1 and 1.6.12.
> Not solved yet.  See
> <http://thread.gmane.org/gmane.comp.version-control.git/146498/focus=150549>.
>
>> not ok - 3 test dcommit to funky branch
>> not ok - 4 test dcommit to scary branch
>> not ok - 5 test dcommit to trailing_dotlock branch
>
> Collateral damage.  How about this patch?
>
>   t/t9118-git-svn-funky-branch-names.sh |   46 ++++++++++++++++++---------------
>   1 files changed, 25 insertions(+), 21 deletions(-)
>
> diff --git a/t/t9118-git-svn-funky-branch-names.sh b/t/t9118-git-svn-funky-branch-names.sh
> index 7d7acc3..5dbea59 100755
[...]

With this patch, test 2 still fails but the others now pass.

*** t9118-git-svn-funky-branch-names.sh ***
ok 1 - setup svnrepo
not ok - 2 test clone with funky branch names
#
#               git svn clone -s "$svnrepo/pr ject" project &&
#               (
#                       cd project &&
#                       git rev-parse "refs/remotes/fun%20plugin" &&
#                       git rev-parse "refs/remotes/more%20fun%20plugin!" &&
#                       git rev-parse "refs/remotes/$scary_ref" &&
#                       git rev-parse "refs/remotes/%2Eleading_dot" &&
#                       git rev-parse "refs/remotes/trailing_dot%2E" &&
#                       git rev-parse 
"refs/remotes/trailing_dotlock%2Elock" &&
#                       git rev-parse "refs/remotes/not-a%40{0}reflog"
#               )
#
ok 3 - test dcommit to funky branch
ok 4 - test dcommit to scary branch
ok 5 - test dcommit to trailing_dotlock branch
# failed 1 among 5 test(s)
1..5