-name="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')"
-base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" ||
- die "not on a TopGit-controlled branch"
+
+[ -z "$branches" -o "$driver" = "quilt" ] ||
+ die "-b works only with the quilt driver"
+
+if [ -z "$branches" ]; then
+ # this check is only needed when no branches have been passed
+ name="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')"
+ base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" ||
+ die "not on a TopGit-controlled branch"
+fi