What's the best answer for maintaining backup and revision control on live websites?
Included in my job Sometimes with several live websites. We want a competent way of maintaining backup copies from the live folders with time. Furthermore, upgrading these websites could be a discomfort, particularly if a big change transpires with burglary the live atmosphere for reasons uknown.
An amount be ideal could be hassle-free source control. I implemented SVN for some time that was great like a semi-solution for backup in addition to revision control (easy reversion of temporary or breaking changes) etc.
Regrettably SVN places .SVN hidden sites everywhere which create problems, particularly when other designers make folder structure changes or copy/move website sites. I have heard the argument that this can be a few education etc. however the approach taken by SVN just isn't an operating solution for all of us.
I'm convinced that maybe an incremental backup solution might be better.
Other options include:
SVK, that is command-line only which turns into a problem. Besides, I'm unsure how appropriate this is.
Mercurial, possibly with a few triggers to cover the distributed component which isn't needed within this situation and could be unnecessarily complicated for other designers.
I played around with briefly with Mercurial but could not look for a nice way to achieve the repository seperate and stored constantly in-sync using the live folder working copy. Maybe like a source control solution (making repository and live folder the same location) coupled with another backup solution this may be what you want.
One problem with Mercurial is it does not place empty folders under source control that is problematic for websites which frequently have empty folders as placeholder locations for file uploads etc.
Rsync, that we haven't really looked into.
I'd really thank you for suggestions about the easiest method to maintain backup copies of live websites, ideally by having an easy way of locating past versions rapidly.
It's less about education as no knowledge of not VSS and deficiencies in time/effort to understand other things.
The xcopy/7-zip approach sounds reasonable I suppose however it would rapidly find a large amount of room right?
So far as source control, I believe I would like the origin control to simply state that "this is actually the condition from the folder now, I'll cope with that and when I can not match stuff up that's your fault, I'll just start new histories" instead of fail hard.
- Yeah this is a better method of doing the work but would need a significant cultural change. With that said I greatly such as this approach.
- Nice, I did not consider using Rsync to deploy. Performs this only upload the variations? Overwriting the whole live directory each time we create a change could be problematic because of site down time.
I'm still curious to ascertain if you will find anymore traditional options
You are able to still use SVN, but rather than carrying out a checkout in your live atmosphere, do an export, this way numbersvn sites is going to be produced. The down-side, obviously, is the fact that no code changes in your live atmosphere can occur. This can be a positive thing.
Typically, code changes on production systems will not be permitted. The modification ought to be made and examined inside a development/test/UAT atmosphere, then once confirmed as OK, you are able to tag that code in SVN with something similar to RELEASE-x-x-x. Then, around the live system, export the code with this tag.
We use option 3. Rsync. I authored a party script to get this done together with additional checking, but listed here are the fundamentals of the items it will.
- Create a tag for pushing to reside.
- Run svn export on that tag.
- rsync to reside.
To date it's been exercising. We do not need to bother about user conflicts or possess a separate user for running svn on the development machine.