Link to home
Start Free TrialLog in
Avatar of Modifier1000
Modifier1000Flag for United States of America

asked on

Version control suggestions?

Hello Experts,

I'm having a problem with development and I'd like to see if anyone has any answers to save me time.

The location of my Drupal site development machine is:
VPN to another company network
    -->RDP to a Windows Server
        --> RDP to a Windows Machine (my dev box/drupal location)


The database I need to use is in another location.  My two RDP machines DO NOT have internet connection.

Is there a proper version control solution I can use so that when I make changes and/if an error comes up, I can just easily revert back?  Currently, if something gets screwed up, I end up spending too much time trying to fix, whereas I'd rather just revert to a stable version.

Currently, I just zip the site up and save incrementally.

Thank you.
Avatar of Paul MacDonald
Paul MacDonald
Flag of United States of America image

I'm not sure I understand the question, but it sounds like you need a staging web server so you can test changes before they get rolled out.

As far as easy restores go, just make a copy of your site prior to rolling out any changes.  Then rolling back is as easy as copying the old site back to its original location.
Avatar of Modifier1000

ASKER

Sorry if I was unclear.  The Dev environment is staged as a web server with IIS.  I just need a solution, if possible, of 'checking-in/out' my site to create new versions instead of just zipping up the site.

I may make quite a few changes and I really don't want to keep zipping it up each time, if that is possible.

There have been times when I would do a minor CSS edit and it somehow affects the site differently than I expect.  At times making buttons hard to access due to the IE vs. Rest of the Browsers standards.  If I can 'check-in' and immediately 'check-out' my site w/o zipping, I'd like to use that to restore rather than unzipping the site back onto my web server.

I sure hope this makes sense everyone (I just started to type...making sense in my head).
ASKER CERTIFIED SOLUTION
Avatar of Aaron Feledy
Aaron Feledy
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You could also install git on your server to manage changes in code.
Still not getting it.  If you can preview your changes on your development machine (before you deploy), why mess with the live site at all?

I don't get the check in/check out thing, either.  I have my web sites in source control, but that's different from deploying them to a live server.  I make changes to my site, deploy those changes to a test server for evaluation, and then put them on the live server when I'm satisfied.  If I'm uncertain about a change when I deploy it to the live server, I just rename the old page so if I have to roll back, the old page is already there (it just needs to be renamed).

Lastly, if browser evaluation is what you need, check this out:
http://browsershots.org/
I second the git approach, as it is the approach we use here. I would actually recommend Aegir (for future readers) but it doesn't work on IIS.

If you use git on the local network (so all machines have access to a central repo) then you can, for example, change out the css file using git. If it doesn't work, then just revert that change, again just using a git command.

Things get a little more complicated when you try to version control the database. That can't be done, other than using the Features module to export the database configurations to code. You can, then, version control the Features code.

If you haven't used git, then I highly recommend it. Just about all of the Drupal devs I know use git at some point in their deployment strategy. That and drush.

I hope this helps!

Cheers,

Mike
To comment on using Git on a server.  I'm use a DoD setup and it's quite intensive on access and how my Dev and Test and Production machines are setup.

I'm mainly interested in using a version control for quick backups check-in/out, coupled with another place to store backups.  But the entire setup for what I'm given seems to give me very few options.

It looks as though I may have to keep the same process.
Thanks