1

So we are using SVN in order to manage three Wordpress environments. One for development, one for testing and the productive environment.

I am relatively new to SVN so still struggling with certain things.

Here is the workflow I have been using to update some of the plugins we are using:

  1. Delete local folder of the plugin
  2. Commit the delete to our SVN repo
  3. Copy a new folder to the local location
  4. Right click on the folder and select "add"
  5. Commit the "add" to the SVN repo
  6. Then login through terminal on our development server and do "svn update"
  7. Make sure everything works
  8. If everything works I then locally merge from dev to staging and commit, and then merge from testing to productive and commit

I am sure I am missing something here because from time to time I get the following error when trying to do "svn update" on the dev, testing or productive environment:

Tree conflict (local dir unversioned, incoming dir add upon update) for location wp-content/plugins/ExamplePlugin/ExampleSubDir

I then have to bother our IT department to help me out of the mess.

Please let me know where I am going wrong and what the best approach should be and why.

Thank you

1 Answer 1

0

It's a bad practice to use version control for site deployments/updates. Consider using a deployment tool which uses SVN like Capistrano. Start Googling around and you'll articles like this one.

Advantages of using Capistrano

  1. Easy deployments (more error proof than vcs deployments)
  2. Easy rollbacks (maintains previous versions of your codebase)
  3. More secure (doesn't expose a .git directory for example)
  4. Zero downtime (doesn't over switch until all the files have been downloaded)

Mark Jaquith, one of WordPress's lead developers talks about this in a WordCamp.

Update:

This question should help with deployments in general and tree conflicts happen from time to time when deploying with svn. You should read the following chapters of the svn book if you really want to get a handle on this issue:

  1. Dealing with Structural Conflicts
  2. Resolve Any Conflicts

Also, be aware of this security concern when deploying with svn.

2
  • Thank you, I appreciate your input and I understand that there are other tools and combinations out there. But changing our tools/infrastructure is not something simple and not entirely my decision. There are various stakeholders involved. So for now I need a solution for the current question.
    – BrokenCode
    Commented Apr 22, 2015 at 15:08
  • Fair enough, but I should mention that Capistrano doesn't represent an infrastructure change. Commented Apr 22, 2015 at 23:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.