On Thu, Feb 23, 2012 at 04:18:29AM -0800, leojhartiv wrote: > > We have an automated build process (enabled via jenkins) that creates a > nightly tag and uses that tag to deploy the latest and greatest version of > our app to SIT. Here are there we are getting a "file or directory is out > of date" error. I find this confusing as I'm performing an SVN copy, which > I thought was an all server-side command (doesn't depend on a workspace) and > thus couldn't be out of date. > > Here's the command: > svn cp --username=user --password=******** 'http://fromurl' > http://tourl/tags/builds/4.1.3.0_20120223.0 -m 'Nightly build tag created by > CI' > svn: File or directory 'tags/builds' is out of date; try updating > svn: resource out of date; try updating > > Any ideas on why this might be happening?
Server-side copies can fail if they compete with concurrent commits. Recall that any commit to a node creates a new revision of the node's parents in the repository. If a commit changes, for instance, /trunk/foo, the following nodes will get a new revision in the repository: / /trunk /trunk/foo This is called "bubble-up process" and is described here in detail: http://www.red-bean.com/kfogel/beautiful-code/bc-chapter-02.html A concurrent commit racing the copy operation can cause a new revision of the destination 'tags/build', of '/tags', and of the root. This can cause an out-of-date error because the copy operation is now trying to modify out-of-date directories.