> 2) Your completion commands for branch-diff will only complete one > revision range, not two. e.g. > git branch-diff origin/master..my-topic@{2} origin/master..my-top<tab> > won't complete "my-topic" as I'd expect. It does complete two revision ranges, but if you want to look at reflogs, then you must escape the opening curly brace. I'm not sure why, but apparently after the unescaped '{' Bash thinks that it's a new command, and doesn't even call our completion functions anymore. It's not specific to the completion of 'branch-diff', or even to our completion script. I don't think we can do anything about it.