Edgewall Software
Modify

Opened 14 years ago

Closed 12 years ago

#552 closed defect (fixed)

Bitten svn:checkout does not handle failure to check out externals

Reported by: matthew.davey@… Owned by:
Priority: major Milestone: 0.6.1
Component: Recipe commands Version: dev
Keywords: RHEL5, svn:checkout Cc:
Operating System: Linux

Description

In our repository we are using svn:externals to check out dependent libraries to build our platform. I am using Bitten 0.6dev and Subversion "svn, version 1.5.5 (r34862)" on "Linux machine 2.6.18-128.1.6.el5 #1 SMP"

The disk appears to have run out of space during this procedure and svn reported the following:

svn: warning: Error handling externals definition for 'externals/dependent-lib':
svn: warning: Network connection closed unexpectedly

The svn:checkout part of our recipe does not detect this warning and Bitten reports the checkout passed, even though the dependent external is missing.

Can this warning be detected and fail the entire Bitten run? Is there an extra option that could be provided to the checkout step to detect warnings and abort?

This is the checkout part of our recipe:

<step	id="checkout">
<svn:checkout	url="svn+ssh://server/svnroot/platform" 	path="${path}" 	revision="${revision}"/>
</step>

Attachments (0)

Change History (11)

comment:1 Changed 14 years ago by Matthew Davey <matthew.davey@…>

I have now updated my subversion client to svn, version 1.6.6 (r40053) but still have the same issue

comment:2 Changed 14 years ago by osimons

Could you perhaps make this small change and try again?

  • bitten/build/svntools.py

    a b  
    8282    :param username: a username of the repository
    8383    :param password: a password of the repository
    8484    """
    85     args = ['checkout']
     85    args = ['checkout', '--non-interactive']
    8686    if revision:
    8787        args += ['-r', revision]
    8888    if path:

It adds --non-interactive to the arguments, which the Subversion docs claim in some circumstances will just fail the call instead of writing messages/warnings/prompts and existing normally.

comment:3 Changed 14 years ago by hodgestar

  • Milestone changed from 0.6.1 to 0.6

comment:4 Changed 14 years ago by Neil Muller

AFAICS, --non-interactive will only effect how subversion prompts, and won't change the how it handles either warnings or errors.

comment:5 Changed 14 years ago by anatoly techtonik <techtonik@…>

Sent mail to consult with Subversion folks upstream http://thread.gmane.org/gmane.comp.version-control.subversion.user/97641

comment:6 Changed 14 years ago by Neil Muller

Testing here with subversion 1.6.9, --non-interactive doesn't cause svn to fail when the external repo is unavailable.

Options that occur to me are:

a) Parsing the checkout output for warning messages. This will arguably also require adding some sort of "fail builds on svn warnings" config option.

b) Add an additional command (svn:checkcheckout for example) that can be used to test that the checkout is sane. I don't have any good ideas for how to do this check, though, as the commands to query the checkout (svn log, etc.) will simply ignore any missed externals.

comment:7 Changed 14 years ago by anatoly techtonik <techtonik@…>

comment:8 Changed 14 years ago by hodgestar

  • Milestone changed from 0.6 to 0.6.1

I'm moving this back out to 0.6.1 since I don't think it should hold up the 0.6b3 release. It's looking likely that our fix will be just to tell users to upgrade their subversion client but we'll see what happens on the subversion side.

comment:9 Changed 13 years ago by anatoly techtonik <techtonik@…>

Patch happens on subversion side. In testing.

comment:10 Changed 13 years ago by anatoly techtonik <techtonik@…>

Fixed in 1.7.0 Need to wait for release to test.

comment:11 Changed 12 years ago by hodgestar

  • Resolution set to fixed
  • Status changed from new to closed

Subversion 1.7.0 was released on 11 Oct 2011 so I'm closing this bug.

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The ticket will remain with no owner.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.