On Thu, Mar 27, 2014 at 11:36 PM, W. Trevor King <wking@xxxxxxxxxx> wrote: > gitmodule(5) mentioned 'master' as the default remote branch, but > folks using checkout-style updates are unlikely to care which upstream > branch their commit comes from (they only care that the clone fetches > that commit). If they haven't set submodule.<name>.branch, it makes > more sense to mirror 'git clone' and use the subproject's HEAD than to > default to 'master' (which may not even exist). > > After the initial clone, subsequent updates may be local or remote. > Local updates (integrating gitlink changes) have no need to fetch a > specific remote branch, and get along just fine without > submodule.<name>.branch. Remote updates do need a remote branch, but > HEAD works as well here as it did for the initial clone. > > Reported-by: Johan Herland <johan@xxxxxxxxxxx> > Signed-off-by: W. Trevor King <wking@xxxxxxxxxx> > --- > diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt > index 46c1eeb..c485a17 100644 > --- a/Documentation/git-submodule.txt > +++ b/Documentation/git-submodule.txt > @@ -284,7 +284,7 @@ OPTIONS > the superproject's recorded SHA-1 to update the submodule, use the > status of the submodule's remote-tracking branch. The remote used > is branch's remote (`branch.<name>.remote`), defaulting to `origin`. > - The remote branch used defaults to `master`, but the branch name may > + The remote branch used defaults to `HEAD`, but the branch name may > be overridden by setting the `submodule.<name>.branch` option in > either `.gitmodules` or `.git/config` (with `.git/config` taking > precedence). > diff --git a/Documentation/gitmodules.txt b/Documentation/gitmodules.txt > index f539e3f..1aecce9 100644 > --- a/Documentation/gitmodules.txt > +++ b/Documentation/gitmodules.txt > @@ -53,8 +53,9 @@ submodule.<name>.update:: > > submodule.<name>.branch:: > A remote branch name for tracking updates in the upstream submodule. > - If the option is not specified, it defaults to 'master'. See the > - `--remote` documentation in linkgit:git-submodule[1] for details. > + If the option is not specified, it defaults to the subproject's Did you mean s/subproject/submodule/ ? > + HEAD. See the `--remote` documentation in linkgit:git-submodule[1] > + for details. > + > This branch name is also used for the local branch created by > non-checkout cloning updates. See the `update` documentation in > diff --git a/git-submodule.sh b/git-submodule.sh > index 6135cfa..5f08e6c 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -819,8 +819,8 @@ cmd_update() > name=$(module_name "$sm_path") || exit > url=$(git config submodule."$name".url) > config_branch=$(get_submodule_config "$name" branch) > - branch="${config_branch:-master}" > - local_branch="$branch" > + branch="${config_branch:-HEAD}" > + local_branch="$config_branch" > if ! test -z "$update" > then > update_module=$update > @@ -860,7 +860,12 @@ Maybe you want to use 'update --init'?")" > > if ! test -d "$sm_path"/.git -o -f "$sm_path"/.git > then > - start_point="origin/${branch}" > + if test -n "$config_branch" > + then > + start_point="origin/$branch" > + else > + start_point="" > + fi > module_clone "$sm_path" "$name" "$url" "$reference" "$depth" "$start_point" "$local_branch" || exit > cloned_modules="$cloned_modules;$name" > subsha1= > -- > 1.9.1.352.gd393d14.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html