1
0
mirror of https://github.com/git/git.git synced 2024-09-28 07:40:44 +02:00
git/builtin
Stefan Beller 4d7bc52b17 submodule update: allow '.' for branch value
Gerrit has a "superproject subscription" feature[1], that triggers a
commit in a superproject that is subscribed to its submodules.
Conceptually this Gerrit feature can be done on the client side with
Git via (except for raciness, error handling etc):

  while [ true ]; do
    git -C <superproject> submodule update --remote --force
    git -C <superproject> commit -a -m "Update submodules"
    git -C <superproject> push
  done

for each branch in the superproject. To ease the configuration in Gerrit
a special value of "." has been introduced for the submodule.<name>.branch
to mean the same branch as the superproject[2], such that you can create a
new branch on both superproject and the submodule and this feature
continues to work on that new branch.

Now we find projects in the wild with such a .gitmodules file.
The .gitmodules used in these Gerrit projects do not conform
to Gits understanding of how .gitmodules should look like.
This teaches Git to deal gracefully with this syntax as well.

The redefinition of "." does no harm to existing projects unaware of
this change, as "." is an invalid branch name in Git, so we do not
expect such projects to exist.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-08-03 16:13:22 -07:00
..
add.c
am.c Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' 2016-07-19 13:22:23 -07:00
annotate.c
apply.c
archive.c
bisect--helper.c
blame.c Merge branch 'mh/blame-worktree' 2016-07-25 14:13:45 -07:00
branch.c Merge branch 'mh/split-under-lock' 2016-07-25 14:13:32 -07:00
bundle.c
cat-file.c Merge branch 'nd/pack-ofs-4gb-limit' 2016-07-28 10:34:42 -07:00
check-attr.c
check-ignore.c
check-mailmap.c
check-ref-format.c
checkout-index.c
checkout.c
clean.c
clone.c
column.c
commit-tree.c
commit.c
config.c
count-objects.c
credential.c
describe.c
diff-files.c
diff-index.c
diff-tree.c
diff.c
fast-export.c
fetch-pack.c
fetch.c Merge branch 'mh/ref-iterators' 2016-07-25 14:13:33 -07:00
fmt-merge-msg.c
for-each-ref.c
fsck.c Merge branch 'nd/pack-ofs-4gb-limit' 2016-07-28 10:34:42 -07:00
gc.c Merge branch 'ew/gc-auto-pack-limit-fix' 2016-07-13 11:24:12 -07:00
get-tar-commit-id.c
grep.c Merge branch 'nd/ita-cleanup' 2016-07-13 11:24:18 -07:00
hash-object.c
help.c
index-pack.c
init-db.c
interpret-trailers.c
log.c Merge branch 'js/log-to-diffopt-file' 2016-07-19 13:22:15 -07:00
ls-files.c
ls-remote.c
ls-tree.c
mailinfo.c
mailsplit.c
merge-base.c
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c
merge.c Merge branch 'jk/write-file' 2016-07-19 13:22:23 -07:00
mktag.c
mktree.c
mv.c
name-rev.c
notes.c
pack-objects.c Merge branch 'nd/pack-ofs-4gb-limit' 2016-07-28 10:34:42 -07:00
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c
prune.c
pull.c
push.c
read-tree.c
receive-pack.c
reflog.c
remote-ext.c
remote-fd.c
remote.c Merge branch 'mh/ref-iterators' 2016-07-25 14:13:33 -07:00
repack.c
replace.c
rerere.c
reset.c Merge branch 'bc/cocci' 2016-07-19 13:22:16 -07:00
rev-list.c
rev-parse.c
revert.c
rm.c Merge branch 'rs/rm-strbuf-optim' 2016-07-25 14:13:36 -07:00
send-pack.c
shortlog.c Merge branch 'js/log-to-diffopt-file' 2016-07-19 13:22:15 -07:00
show-branch.c
show-ref.c
stripspace.c
submodule--helper.c submodule update: allow '.' for branch value 2016-08-03 16:13:22 -07:00
symbolic-ref.c
tag.c
unpack-file.c
unpack-objects.c
update-index.c
update-ref.c
update-server-info.c
upload-archive.c
var.c
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c Merge branch 'nd/worktree-lock' 2016-07-28 10:34:42 -07:00
write-tree.c