Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

/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

...

...

  • 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

...