Opened 10 years ago

Closed 8 years ago

#123 closed defect (worksforme)

svn uses co not up when using mode='update'

Reported by: dfeurle Owned by:
Priority: major Milestone: undecided
Version: 0.7.6 Keywords:
Cc: feurle@…

Description

The following line of code in the config file should be used to update a svn repository:

f1.addStep(source.SVN(mode='update', baseURL='svn+ssh://xyz/srv/svn/xyz/',

defaultBranch='trunk', workdir='build'))

But the source is checked out for every build rather than just updated.

Resulting command:

C:WINDOWSsystem32cmd.exe /c C:ProgrammeSubversioninsvn.EXE checkout --revision HEAD --non-interactive svn+ssh:/xyz/srv/svn/xyz/trunk build

Change History (4)

comment:1 follow-up: Changed 9 years ago by warner

Is it doing this every time? The version-control steps are supposed to try to do an update, but if anything goes wrong (i.e. if the 'svn checkout' step exits with a non-zero status) then it blows away the tree and falls back to doing a full checkout.

If you get a chance, please check the step's 'stdio' logs and see if there are any error messages coming from the 'svn update' command, or if it is just skipping that command entirely.

Another reason that it might do a full checkout is if the buildslave doesn't believe that there is already a checkout present. I think it looks for an .svn/ directory, and it writes a small file to record the branch that was previously used: if the branch that's being updated to is different from the branch that was checked out the previous time, it assumes that an update would fail and does the delete/checkout dance. (we don't yet optimize this by doing 'svn switch'). If one of those tests fail, that might explain why it's doing a full checkout instead of an update.

comment:2 in reply to: ↑ 1 ; follow-up: Changed 9 years ago by bbl

Dear warner and dfeurle
I have been using svn for some time now and I have never used 'svn update' before reading this ticket - because I just needn't. For me 'svn checkout' on an existing working copy just results in svn doing the same thing as 'svn update' does: an update. This seems to be a good but undocumented feature of svn.. :-)

Therefore I think that the real checkout is only performed when one of the things you mentioned, warner, takes place (no working copy present,different branch,...). Otherwise, dfeurle's command line should do an update if a working copy (of in this case svn+ssh:/xyz/srv/svn/xyz/trunk) is found... and thus there is no defect I can see...

Thus this ticket should probably be marked "fixed" or "invalid".

comment:3 in reply to: ↑ 2 Changed 9 years ago by bbl

The only thing that could be defect is buildbot itself: it could incorrectly delete the working copy... (sorry I forgot that in my previous post)

comment:4 Changed 8 years ago by dustin

  • Resolution set to worksforme
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.