...
/var/local/git/mifoswww on mifos.com is a clone, this is what /var/www/mifos (the live server working tree) pushes to and pulls from.
In summary:
Live server working tree | /var/www/mifos |
Test/stage server working tree | /var/www/mifos_testing |
Private clone on mifos.com | /var/local/git/mifoswww |
The "www" repository on sf.net is another clone, but it is public. This clone is the primary location where contributions to mifos.com and mifos.org will be solicited. The All clones are kept in sync manually.
All changes (except user-generated content and changes in the database) are done as git patches. For example:
- upgrading Drupal
- adding a new Drupal module
- upgrading or otherwise changing an exsiting Drupal module
Certain things are not committed to version control. These files must be manually maintained (see .gitignore files in the public clone):
- robots.txt
- settings.php
- user-generated content
- the Drupal database
To push content live
...
- create a patch
- apply
...
- the patch to the test/stage server (the working tree is in /var/www/mifos_testing on mifos.com)
- if the change looks good, do a "git push" from the test/stage server working tree
- cd into the live server's working tree (/var/www/mifos)
- do a "git pull"
- push the changes to the public clone
To revert
- there are several approaches
- to immediately revert the live server to a known good state, use "git log" to find a commit, then "git checkout COMMIT_SHA1" to change the working tree to that commit
- to permanently revert a change, use "git revert"
- note that changes to the following may need to be reverted manually
- database schema/data
- Drupal user-generated content
For Mifos administrators and curious contributors
...