Tools

Doxygen

Doxygen is a documentation generator, a tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. The documentation is written within code, and is thus relatively easy to keep up to date. Doxygen can cross reference documentation and code so that the reader of a document can easily refer to the actual code.

Doxygen is developed under Mac OS X and Linux but is set-up to be highly portable. As a result, it runs on most other Unix flavors as well. Furthermore, executables for Windows are available.

Git

Stop tracking a remote branch in Git

http://stackoverflow.com/questions/3046436/how-do-you-stop-tracking-a-remote-branch-in-git/3046478?noredirect=1#comment13741233_3046478

git branch -d -r origin/<remote branch name>
git branch --unset-upstream <branch>

Push a new local branch to a remote Git repository and track it too

http://stackoverflow.com/questions/2765421/how-to-push-a-new-local-branch-to-a-remote-git-repository-and-track-it-too

git push -u origin <branch>

Push to a remote repo

git push origin master

Create a new git repo on my own server

http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server

Vim

To run vim within bash script

vi input_files/Solver.yaml < /dev/tty > /dev/tty 

vimdiff shortcut keys

ctrl+w ctrl+w - switch windows
do - diff obtain
dp - diff put
[c - previous difference
]c - next difference
:diffupdate - diff update ;)
:syntax off - syntax off
zo - open folded text\
zc - close folded text