I currently have an svn repository on my hosted web server. I work locally, commit my changes to the repository on my server, and then run an "svn update" via ssh in my live folder when I am ready to push the changes live.
I am now adding a staging site, which will reside on the same server. It will simply be another folder on the same server.
The issue is that I will be working on somewhat larger changes to the site on the staging server that may take up to a week of testing. During that time, I may want to make a small cosmetic change to the live site that requires no testing. Let's take an example:
- Assume my local, staging, and live site all begin on revision 1.
- I make major changes locally, commit them, and update my staging server. Local and staging are on revision 2, live is still on 1.
- Someone asks for a simple text change on the live site.
- Ugh. Now I have to revert my local copy to revision 1, make the small change and commit it. Now I update to the live site to revision 3, which has the small change.
- I want to keep working on my major changes, so I update my local copy back to revision 2, and keep working.
- And so on....
This forces me to keep track of revsions and constantly be updating and reverting. Is there a better way? I feel like I am supposed to be using branching and tags here, but I don't understand how exactly.
Thanks, Jonah