Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vcsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Kevin Lyda
vcsh
Commits
93b8c205
Commit
93b8c205
authored
Oct 25, 2014
by
Richard Hartmann
Browse files
Options
Downloads
Plain Diff
Merge branch 'feature--clone_branch'
Conflicts: vcsh
parents
7161ee4a
4327b9b3
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
doc/vcsh.1.ronn
+4
-1
4 additions, 1 deletion
doc/vcsh.1.ronn
vcsh
+29
-11
29 additions, 11 deletions
vcsh
with
33 additions
and
12 deletions
doc/vcsh.1.ronn
+
4
−
1
View file @
93b8c205
...
...
@@ -5,7 +5,7 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
`vcsh` [<options>] <command>
`vcsh` clone <url> [<repo>]
`vcsh` clone
[-b <branch>]
<url> [<repo>]
`vcsh` delete <repo>
...
...
@@ -86,6 +86,9 @@ an interactive user.
If you need to clone a bundle of repositories, look into the
`post-clone-retired` hook.
You can also use a single git repository with several branches. Use the `-b`
option to specify a branch at clone time, the default is `master`.
* commit:
Commit in all repositories
...
...
This diff is collapsed.
Click to expand it.
vcsh
+
29
−
11
View file @
93b8c205
...
...
@@ -100,7 +100,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
...
...
@@ -149,16 +150,16 @@ clone() {
hook pre-clone
init
git remote add origin
"
$GIT_REMOTE
"
git c
onfig branch.master.remote origin
git config branch.
master.merge refs/heads/master
VCSH_CLONE_ERROR
=
$(
git ls-remote origin master 2>&1
)
if
[
-n
"
$VCSH_CLONE_ERROR
"
]
;
then
rm
-rf
"
$GIT_DIR
"
fatal
"
$VCSH_CLONE_ERROR
"
1
git c
heckout
-b
"
$VCSH_BRANCH
"
||
return
$?
git config branch.
"
$VCSH_BRANCH
"
.remote origin
git config branch.
"
$VCSH_BRANCH
"
.merge refs/heads/
"
$VCSH_BRANCH
"
if
[
$(
git ls-remote origin
"
$VCSH_BRANCH
"
2> /dev/null |
wc
-l
)
-lt
1
]
;
then
info
"remote is empty, not merging anything
"
exit
fi
git fetch
git fetch
origin
"
$VCSH_BRANCH
"
hook pre-merge
git ls-tree
-r
--name-only
origin/
master
|
(
while
read
object
;
do
git ls-tree
-r
--name-only
origin/
"
$VCSH_BRANCH
"
|
(
while
read
object
;
do
[
-e
"
$object
"
]
&&
error
"'
$object
' exists."
&&
VCSH_CONFLICT
=
1
...
...
@@ -166,7 +167,7 @@ clone() {
[
x
"
$VCSH_CONFLICT
"
=
x
'1'
])
&&
fatal
"will stop after fetching and not try to merge!
Once this situation has been resolved, run 'vcsh
$VCSH_REPO_NAME
pull' to finish cloning."
17
git merge origin/
master
git merge origin/
"
$VCSH_BRANCH
"
hook post-merge
hook post-clone
retire
...
...
@@ -497,11 +498,28 @@ case $VCSH_COMMAND in
esac
if
[
x
"
$VCSH_COMMAND
"
=
x
'clone'
]
;
then
VCSH_BRANCH
=
if
[
"
$2
"
=
-b
]
;
then
VCSH_BRANCH
=
$3
shift
shift
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
)
[
-n
"
$VCSH_BRANCH
"
]
||
if
[
"
$3
"
=
-b
]
;
then
VCSH_BRANCH
=
$4
shift
shift
fi
if
[
-n
"
$3
"
]
;
then
VCSH_REPO_NAME
=
$3
[
-z
"
$VCSH_BRANCH
"
]
&&
[
"
$4
"
=
-b
]
&&
VCSH_BRANCH
=
$5
else
VCSH_REPO_NAME
=
$(
basename
"
${
GIT_REMOTE
#*
:
}
"
.git
)
fi
[
-z
"
$VCSH_REPO_NAME
"
]
&&
fatal
"
$VCSH_COMMAND
: could not determine repository name"
1
export
VCSH_REPO_NAME
[
-n
"
$VCSH_BRANCH
"
]
||
VCSH_BRANCH
=
master
GIT_DIR
=
$VCSH_REPO_D
/
$VCSH_REPO_NAME
.git
;
export
GIT_DIR
elif
[
"
$VCSH_COMMAND
"
=
'version'
]
;
then
echo
"
$SELF
$VERSION
"
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment