зеркало из https://github.com/microsoft/git.git
Make git-clone --use-separate-remote the default
We've talked about this for quite some time on the list, and it is a sane thing to do for a repository with an associcated working tree. For somebody who wants to use the traditional layout, there is a backward compatibility option --use-immingled-remote, but it is expected to be removed before the next major release. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
29561ad0ad
Коммит
7182135189
|
@ -11,7 +11,8 @@ SYNOPSIS
|
|||
[verse]
|
||||
'git-clone' [--template=<template_directory>] [-l [-s]] [-q] [-n] [--bare]
|
||||
[-o <name>] [-u <upload-pack>] [--reference <repository>]
|
||||
[--use-separate-remote] <repository> [<directory>]
|
||||
[--use-separate-remote | --use-immingled-remote] <repository>
|
||||
[<directory>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -71,9 +72,13 @@ OPTIONS
|
|||
Make a 'bare' GIT repository. That is, instead of
|
||||
creating `<directory>` and placing the administrative
|
||||
files in `<directory>/.git`, make the `<directory>`
|
||||
itself the `$GIT_DIR`. This implies `-n` option. When
|
||||
this option is used, neither the `origin` branch nor the
|
||||
default `remotes/origin` file is created.
|
||||
itself the `$GIT_DIR`. This obviously implies the `-n`
|
||||
because there is nowhere to check out the working tree.
|
||||
Also the branch heads at the remote are copied directly
|
||||
to corresponding local branch heads, without mapping
|
||||
them to `refs/remotes/origin/`. When this option is
|
||||
used, neither the `origin` branch nor the default
|
||||
`remotes/origin` file is created.
|
||||
|
||||
--origin <name>::
|
||||
-o <name>::
|
||||
|
@ -97,8 +102,15 @@ OPTIONS
|
|||
|
||||
--use-separate-remote::
|
||||
Save remotes heads under `$GIT_DIR/remotes/origin/` instead
|
||||
of `$GIT_DIR/refs/heads/`. Only the master branch is saved
|
||||
in the latter.
|
||||
of `$GIT_DIR/refs/heads/`. Only the local master branch is
|
||||
saved in the latter. This is the default.
|
||||
|
||||
--use-immingled-remote::
|
||||
Save remotes heads in the same namespace as the local
|
||||
heads, `$GIT_DIR/refs/heads/'. In regular repositories,
|
||||
this is a legacy setup git-clone created by default in
|
||||
older Git versions, and will be removed before the next
|
||||
major release.
|
||||
|
||||
<repository>::
|
||||
The (possibly remote) repository to clone from. It can
|
||||
|
|
14
git-clone.sh
14
git-clone.sh
|
@ -14,7 +14,7 @@ die() {
|
|||
}
|
||||
|
||||
usage() {
|
||||
die "Usage: $0 [--template=<template_directory>] [--use-separate-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]"
|
||||
die "Usage: $0 [--template=<template_directory>] [--use-immingled-remote] [--reference <reference-repo>] [--bare] [-l [-s]] [-q] [-u <upload-pack>] [--origin <name>] [-n] <repo> [<dir>]"
|
||||
}
|
||||
|
||||
get_repo_base() {
|
||||
|
@ -115,7 +115,7 @@ bare=
|
|||
reference=
|
||||
origin=
|
||||
origin_override=
|
||||
use_separate_remote=
|
||||
use_separate_remote=t
|
||||
while
|
||||
case "$#,$1" in
|
||||
0,*) break ;;
|
||||
|
@ -134,7 +134,10 @@ while
|
|||
template="$1" ;;
|
||||
*,-q|*,--quiet) quiet=-q ;;
|
||||
*,--use-separate-remote)
|
||||
# default
|
||||
use_separate_remote=t ;;
|
||||
*,--use-immingled-remote)
|
||||
use_separate_remote= ;;
|
||||
1,--reference) usage ;;
|
||||
*,--reference)
|
||||
shift; reference="$1" ;;
|
||||
|
@ -169,18 +172,15 @@ repo="$1"
|
|||
test -n "$repo" ||
|
||||
die 'you must specify a repository to clone.'
|
||||
|
||||
# --bare implies --no-checkout
|
||||
# --bare implies --no-checkout and --use-immingled-remote
|
||||
if test yes = "$bare"
|
||||
then
|
||||
if test yes = "$origin_override"
|
||||
then
|
||||
die '--bare and --origin $origin options are incompatible.'
|
||||
fi
|
||||
if test t = "$use_separate_remote"
|
||||
then
|
||||
die '--bare and --use-separate-remote options are incompatible.'
|
||||
fi
|
||||
no_checkout=yes
|
||||
use_separate_remote=
|
||||
fi
|
||||
|
||||
if test -z "$origin"
|
||||
|
|
Загрузка…
Ссылка в новой задаче