SciPy Workflow
There are a few things that have taken some getting used to in working with SciPy. These things are aggregated here:
Keeping my SciPy repo up-to-date
I need to upadate my copy of SciPy regularly from upstream, to avoid merge conflicts. I have done this plenty of times, but for some reason I forget how every time. There is a good howto on stackoverflow on this. From said article:
# Add the remote, call it "upstream":
git remote add upstream git://github.com/whoever/whatever.git
# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:
git fetch upstream
# Make sure that you're on your master branch:
git checkout master
# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:
git rebase upstream/master
Pushing new local branches to a remote Git repo
Every time a make a new local branch, I forget how to push it to github as
new branch. Google always brings me to this article.
Basically if I have a new local branch call it new-feature
and want to push
it to my github repo and create a new new-feature
branch there too. I do:
git push -u origin new-feature
and if I wanted to delete this remote branch, I could do:
git push origin :new-feature
and delete it locally with:
git branch -D new-feature
SciPy's commit messages
SciPy require commit messages start with some standard acronyms.
API: an (incompatible) API change
BLD: change related to building numpy
BUG: bug fix
DEP: deprecate something, or remove a deprecated object
DEV: development tool or utility
DOC: documentation
ENH: enhancement
MAINT: maintenance commit (refactoring, typos, etc.)
REV: revert an earlier commit
STY: style fix (whitespace, PEP8)
TST: addition or modification of tests
REL: related to releasing numpy
The acronyms are easy to remember, but adding the acronyms is easy to forget. Which brings me to my next topic.
Changing commit messages, after you have pushed
This is not the simplest thing to do in git, fortunately my mentor Pauli showed me a great way to do it. Assuming no one has pulled from your repo yet.
-
First do
git log
and look for the last COMMIT befor the commit messages you want to change. -
Do
git rebase -i COMMIT
-
Replace
pick
withr
-
Then Git will prompt you to change the commit messages one at a time.
-
Push your changes with
git push -f
Comments
Comments powered by Disqus