If you use git, you might find yourself wanting to merge a huge list of commits into a branch, but you might not want all of them. git-rebase already helps with this task but it becomes less convenient when you have lots of commits as you may not remember all of them and also because it doesn't show you the contents of each commit

git-cherry-base is an interactive script (written in Guile) that lets you choose which commits you'd like to merge and even which parts of the commit you want. Given a list of revisions (obtained from git-rev-list) it will show the contents for each commit and will let you choose if you want to merge the commit, skip it or merge only parts of it.

Usage: git-cherry-base rev-file

I wrote it some months ago as I couldn't find any other command line tool to do this and, well, it was just a good excuse to hack something in Scheme.