I wrote a little Perl script called git-ribbon to help me review the latest changes in a git repository.
The way I used to review changes was by reading through the
git log. I try
to do this every morning at work to keep up with whats going on. But I was
having a few problems:
- Its hard to know exactly which changes are new.
- I want to review commits in the order they happened (instead of most recent first).
git logdiff output can be hard to read and may not have enough context – sometimes I want a side by side diff like I get from
Basically I wanted a quick and easy way to review the latest changes in a way that feels a little more like an RSS feed. So I wrote this script.
How to use git-ribbon
First mark your current place in the commit history. This command will place a tag named _ribbon at origin/master. Basically its a bookmark at your current location.
⚡ git ribbon --save
Next, pull the latest changes made by your fellow conspirators from the remote repository.
⚡ git pull
git ribbon to review only the changes that have occurred since _ribbon:
⚡ git ribbon Eric Johnson 6 weeks ago ecf43db Css tweaks. root/html/calculator/realCost.tt press 's' to skip Eric Johnson 4 weeks ago 9595fa0 fix css margin class. root/css/networth.css root/css/style.less root/css/style.less.old root/html/calculator/realCost.tt root/html/fi.tt press 's' to skip Eric Johnson 2 weeks ago 5ef0fb2 Added daysPerYear. lib/Networth/Controller/Calculator.pm lib/Networth/Out/RealCost.pm root/html/calculator/realCost.tt press 's' to skip
The script will pause and wait for input when it prints
press 's' to skip.
If you type anything other than
s, it will show you the side by side diff
After you have reviewed all the changes, be sure to mark your place again so its ready to go next time you want to do a pull:
git ribbon --save
In your .gitconfig try this:
[diff] tool = vimdiff
The default colors for vimdiff look like they were created by strange clowns so try this instead:
⚡ mkdir -p ~/.vim/colors/ ⚡ wget https://github.com/kablamo/dotfiles/blob/master/links/.vim/colors/iijo.vim -O ~/.vim/colors/iijo.vim ⚡ echo "colorscheme iijo" >> ~/.vimrc
Then learn to use vimdiff:
- To switch windows type
ctl-w h. For more help type
- To open and close folds type
zc. For more help type
- To close vimdiff with less typing try
Alternatives to vimdiff
If you don’t want to invest the time just yet to learn vim, use an alternative like meld, opendiff, p4merge, xxdiff, etc. Side by side diffs are worth it!
This script was inspired by a great blog post on gitready.com which has a number of awesome git tricks for both beginners and advanced users.
I also ended up writing a vim plugin that is probably better user experience if you very comfortable in vim.