From bc9dada76fe67f1a9ac8028372367b32b08fcdf6 Mon Sep 17 00:00:00 2001
From: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
Date: Wed, 22 Oct 2014 18:47:36 +0200
Subject: [PATCH] vcsh: `vcsh clone [-b <branch>] <remote> [<repo>]`

This is the API for an optional branch selection for `vcsh clone`. It is
basically inspired by `git clone [-b|--branch <name>] <remote>`. I could
have used the long option `--branch` too but vcsh only uses short ones.
---
 vcsh | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/vcsh b/vcsh
index 898bdb5..76502f5 100755
--- a/vcsh
+++ b/vcsh
@@ -98,7 +98,8 @@ help() {
    -v                   Enable verbose mode
 
    commands:
-   clone <remote> \\
+   clone [-b <branch>] \\
+         <remote> \\
          [<repo>]       Clone from an existing repository
    commit               Commit in all repositories
    delete <repo>        Delete an existing repository
@@ -431,6 +432,13 @@ case $VCSH_COMMAND in
 esac    
 
 if [ x"$VCSH_COMMAND" = x'clone' ]; then
+	if [ "$2" = -b ]; then
+		VCSH_BRANCH="$3"
+		shift
+		shift
+	else
+		VCSH_BRANCH=master
+	fi
 	[ -z "$2" ] && fatal "$VCSH_COMMAND: please specify a remote" 1
 	GIT_REMOTE="$2"
 	[ -n "$3" ] && VCSH_REPO_NAME=$3 || VCSH_REPO_NAME=$(basename "${GIT_REMOTE#*:}" .git)
-- 
GitLab