Do it! If you keep settings_local.pt in your .gitignore file you won’t push sensitive info to the internet - and it makes asking questions about your code easier, because you can link specifically to the file that’s causing problems.
ALSO - having a github account will enable participation in community wikis, etc.
here, at least when you’re sure what’s causing the problem: | https://github.com/cit-jmu/rooibos/issues
AND ALSO - Consider doing a git tutorial. It’s a neat system in and of itself that has number of potential uses (even if you’re not a developer at all - it’s kind of like a free command line driven version of that Apple time machine, minus the fancy zooming things)
a bunch of tutorials and resources are collected here: * http://sixrevisions.com/resources/git-tutorials-beginners/
It’s best if you keep your server on it’s own branch - this gives you the ability to switch to the canonical experimental branch, update, merge & confirm there are not problems after updating and then re-merge experimental with your own custom branch. This may seem like an extra step, but it’s worth keeping your own modifications segmented away from the official repos.
Always run python manage.py syncdb and then restart your webserver after pulling an update from github - some changes can cause hard-to-notice through extremely bizarre behaviors if the database is not synced - even data loss (or at least data mangling) is possible. So just do it.
After you’ve successfully installed, create a branch before making changes (I’m calling it ‘ourSite’ below). This can also be done directly after a successful fetch/merge from upstream (upstream is the standard name for a git repo that you’ve cloned, i.e. that you can not push to - in our collective case, upstream would be git://github.com/cit-jmu/rooibos.git ):
git branch create ourSite
git checkout ourSite
git branch
master
experimental
* ourSite
Then do your customizations and commit the changes -
git -am commit "commit message"
When some new changes strike your fancy, fetch from upstream
git fetch upstream
remote: Counting objects: 67, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 44 (delta 33), reused 34 (delta 23)
Unpacking objects: 100% (44/44), done.
From git://github.com/cit-jmu/rooibos
a79c65e..6e3b630 experimental -> upstream/experimental
bd553f8..580e79a jmu-production -> upstream/jmu-production
(You could also do ‘git pull’, but that auto-merges with... well, exactly. It automerges. In my opinion, when I could explain it without looking it up, I’ll use git pull. In the meantime, I’ll use ‘git fetch’ which gets the changes but keeps them in secret .gitland until I merge them somewhere explicitly.)
So then, I want to patch my local experimental branch, which I keep in sync and unchanged from the cit-jmu repo:
git checkout experimental
Switched to branch 'experimental'
git status
# On branch experimental
nothing to commit (working directory clean)
git merge upstream/experimental
Updating a79c65e..6e3b630
Fast-forward
rooibos/data/models.py | 10 +++++-----
rooibos/legacy/views.py | 9 ++++++++-
rooibos/solr/templates/browse.html | 10 ++++++++++
rooibos/solr/templates/results.html | 12 +++++++++---
rooibos/solr/views.py | 6 +++++-
rooibos/urls.py | 4 ++++
6 files changed, 41 insertions(+), 10 deletions(-)
Now, I switch back to my local customizations and then merge in the new changes
git checkout ourSite
Switched to branch 'ourSite'
git merge experimental
Merge made by recursive.
rooibos/data/models.py | 10 +++++-----
rooibos/legacy/views.py | 9 ++++++++-
rooibos/solr/templates/browse.html | 10 ++++++++++
rooibos/solr/templates/results.html | 12 +++++++++---
rooibos/solr/views.py | 6 +++++-
rooibos/urls.py | 4 ++++
6 files changed, 41 insertions(+), 10 deletions(-)
Now, if there’s no conflicts the output on your second merge will look like the first.
If there are conflicts, read this: http://genomewiki.ucsc.edu/index.php/Resolving_merge_conflicts_in_Git
Lastly, you’ll almost always need to python manage.py syncdb ad then restart web services - either via sudo apachectl restart or iisreset depending.
And hopefully, you’ve successfully updated!