Search code examples
svnmacosdiffgreprsync

Trying to get rsync to copy files back to svn


I'm trying to setup a particular workflow but having trouble figuring out how(or if) rsync will work for this.

My setup is on Mac OS X.

I have my SVN directory. When I run my deploy script, the files are moved over to my integration Apache server. I perform my modifications to the files, then manually have been copying them back to SVN.

The reason that I have done this is that I need to immediately see changes in the browser as I'm editing html, css, and javascript. But its getting time consuming trying to manually copy and keep track of this and I want to automate it.

What I want to do is use rsync to determine the files I have modified in the Apache web directory, then copy those files only back to SVN.

I have an rsync command I've been testing, but the problem I seem to be running into is that since the timestamps of the deployed files are all newer than what's in SVN, rsync wants to copy all of the files back because it sees them as newer files.

I also experimented with diff, and it detects the file differences. I imagine I can put together a shell script that can use a combination of diff, grep, and cp to make this work but I wanted to see if rsync could be an all-in-one solution.

rsync -avuzn --exclude=web-inf/classes/ --exclude=web-inf/lib/ /var/www/web-inf /usr/local/src/svn/WEB-INF

Solution

  • I recommend to have a subversion checkout right into the web server. You should add a Deny directive for all Files named .svn, so that remote users don't recognize this as a subversion checkout.