Working with large C codebases

Searching for symbols The product that I work on, has over 22 million lines of source – most of it a nightmare. I use vim as my editor of choice 1. Both cscope and ctags (integrated into vim), allow me to quickly move between files and lookup definitions of symbols, and help in understanding the challenge-du-jour. Throw in fuzzy find capabilities of the most awesome Ctrl+p plugin, and vim becomes the best ‘IDE’ out there!

Read More

Getting git status on multiple directories

At any given time, I have a handful of git repositories that I work on. While typing in the command-line is great, it getting tiring when you have a several directories that you have to manually change to and check. The “git status” command can take the git repo and the working directory as input. That, and a little bash programming to the rescue. The following command, executes git status in every subdirectory that is a git repository.

Read More

Beautiful git logs and listing files in a commit

Working with git is fun. However, it is easy to get tired of the log list of parameters one has to use to very often. Git aliases are a great way to deal with this. For instance, the standard git log, it pretty much useless in any large project, where there are several hundred commits in a day. Most often, the commit you are looking for in probably several pages deep.

Read More