Skip to content

Instantly share code, notes, and snippets.

/* copied from http://www.netlobo.com/url_query_string_javascript.html */
function get_url_param( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
@dannyroberts
dannyroberts / update-code.sh
Last active December 12, 2015 09:19
bash function to fetch the latest master on all submodules in parallel, wait until they're all updated, and then delete all pyc files
function delete-pyc() {
find . -name '*.pyc' -delete
}
function pull-latest-master() {
git checkout master; git pull &
git submodule foreach --recursive 'git checkout master; git pull &'
until [ -z "$(ps aux | grep '[g]it pull')" ]; do sleep 1; done
}
function update-code() {
pull-latest-master
alias branch="git branch | grep '^\*' | sed 's/* //'"
alias push-current='git push origin $(branch)'
@dannyroberts
dannyroberts / README.md
Last active February 7, 2020 18:08
requires other stuff to be installed (obviously git)

Install

cd ~
git clone https://gist.github.com/5165174.git bash
ln -s bash/bash_profile .bash_profile
function delete-pyc() {
find . -name '*.pyc' -delete
}
function pull-latest-master() {
git checkout master; git pull origin master
git submodule update --init
git submodule foreach --recursive 'git checkout master; git pull origin master &'
until [ -z "$(ps aux | grep '[g]it pull')" ]; do sleep 1; done
}
function update-code() {
@dannyroberts
dannyroberts / git-aliases.sh
Last active December 16, 2015 20:10
My git-related shortcuts
source /usr/local/git/contrib/completion/git-completion.bash
alias g="git"; __git_complete g _git
alias l="git status"
alias d="git diff"; __git_complete d _git_diff
alias ds="git diff --cached"
alias m="git commit -m "
alias am="git commit -am "
alias a="git add "
alias o-="git checkout --"
alias o="git checkout"; __git_complete o _git_checkout
"""
This file is meant to be used in the following manner:
$ python make_rebuild_staging.py < staging.yaml > rebuildstaging-tmp.sh; bash rebuildstaging-tmp.sh
Where staging.yaml looks as follows:
trunk: master
name: autostaging
branches:

Error handling antipattern

So I trace down a 500 to the line:

foo.get_bar(bar)

which is raising an IndexError. I figure out it means that there is no such bar, and that in that case we want to do nothing, so I change it to

@dannyroberts
dannyroberts / subtree-merge
Last active August 29, 2015 14:04
Example subtree merge
git remote add -f couchforms git://github.com/dimagi/couchforms.git
git merge -s ours --no-commit couchforms/master
# --prefix lets you specify where to put the submodule code
# the thing after the colon in couchforms/master:couchforms
# lets you specify what part of the submodule code to merge in
git read-tree --prefix=corehq/ex-submodules/couchforms -u couchforms/master:couchforms
git commit -m "subtree merge couchforms into corehq/ex-submodules"
@dannyroberts
dannyroberts / preserving-history.md
Last active July 6, 2018 15:04
Moving files with git read-tree to preserve history

Did you know...

...that git lets you move and rename whole directories while preserving the git history of those files?

If you run

git read-tree --prefix=$NEW_PATH -u master:$OLD_PATH
rm -rf $OLD_PATH
# ...you probably want to change some imports...
git commit -m $MESSAGE