git/builtin
Jens Lehmann 50d89ad654 submodule: use argv_array instead of hand-building arrays
fetch_populated_submodules() allocates the full argv array it uses to
recurse into the submodules from the number of given options plus the six
argv values it is going to add. It then initializes it with those values
which won't change during the iteration and copies the given options into
it. Inside the loop the two argv values different for each submodule get
replaced with those currently valid.

However, this technique is brittle and error-prone (as the comment to
explain the magic number 6 indicates), so let's replace it with an
argv_array. Instead of replacing the argv values, push them to the
argv_array just before the run_command() call (including the option
separating them) and pop them from the argv_array right after that.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-02 21:13:50 -07:00
..
add.c Merge branch 'js/add-e-submodule-fix' into maint 2012-02-13 11:42:18 -08:00
annotate.c
apply.c Merge branch 'jh/apply-free-patch' 2012-04-23 12:52:18 -07:00
archive.c
bisect--helper.c
blame.c Merge branch 'jc/maint-blame-minimal' 2012-04-23 12:58:23 -07:00
branch.c teach "git branch" a --quiet option 2012-03-26 21:32:43 -07:00
bundle.c
cat-file.c cat-file: use streaming API to print blobs 2012-03-07 09:07:38 -08:00
check-attr.c
check-ref-format.c
checkout-index.c
checkout.c Merge branch 'jk/branch-quiet' 2012-04-16 12:42:22 -07:00
clean.c
clone.c Merge branch 'cb/transfer-no-progress' into maint 2012-02-21 15:14:37 -08:00
commit-tree.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
commit.c Merge branch 'jc/commit-unedited-template' 2012-04-16 12:43:07 -07:00
config.c config: remove useless assignment 2012-03-28 15:19:17 -07:00
count-objects.c
describe.c
diff-files.c
diff-index.c
diff-tree.c
diff.c drop casts from users EMPTY_TREE_SHA1_BIN 2012-03-23 13:52:05 -07:00
fast-export.c Merge branch 'rs/no-no-no-parseopt' 2012-03-01 20:59:31 -08:00
fetch-pack.c Merge branch 'it/fetch-pack-many-refs' 2012-04-24 14:40:51 -07:00
fetch.c submodule: use argv_array instead of hand-building arrays 2012-09-02 21:13:50 -07:00
fmt-merge-msg.c Merge branch 'jc/merge-reduce-parents-early' 2012-04-27 13:59:20 -07:00
for-each-ref.c
fsck.c fsck: use streaming API for writing lost-found blobs 2012-03-07 09:07:39 -08:00
gc.c gc: use argv-array for sub-commands 2012-04-18 16:17:42 -07:00
grep.c Merge branch 'rs/no-no-no-parseopt' 2012-03-01 20:59:31 -08:00
hash-object.c
help.c
index-pack.c index-pack: eliminate unlimited recursion in get_base_data() 2012-01-16 14:34:33 -08:00
init-db.c builtin/init-db.c: eliminate -Wformat warning on Solaris 2011-12-20 16:02:08 -08:00
log.c Merge branch 'nd/stream-more' 2012-04-15 22:50:39 -07:00
ls-files.c
ls-remote.c
ls-tree.c
mailinfo.c mailinfo: with -b, keep space after [foo] 2012-01-16 16:06:57 -08:00
mailsplit.c
merge-base.c
merge-file.c
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c
merge.c Merge branch 'jc/merge-reduce-parents-early' 2012-04-27 13:59:20 -07:00
mktag.c
mktree.c
mv.c Merge branch 'jk/maint-mv' into maint 2011-12-28 11:32:36 -08:00
name-rev.c
notes.c Merge branch 'nd/war-on-nul-in-commit' 2011-12-22 11:27:26 -08:00
pack-objects.c gc: do not explode objects which will be immediately pruned 2012-04-11 11:09:49 -07:00
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c fix deletion of .git/objects sub-directories in git-prune/repack 2012-03-07 10:24:33 -08:00
prune.c fix deletion of .git/objects sub-directories in git-prune/repack 2012-03-07 10:24:33 -08:00
push.c Merge branch 'hv/submodule-recurse-push' 2012-04-24 14:40:20 -07:00
read-tree.c
receive-pack.c Merge branch 'cb/receive-pack-keep-errors' into maint 2012-02-21 15:14:41 -08:00
reflog.c
remote-ext.c
remote-fd.c
remote.c Merge branch 'ms/remote-usage-string' 2012-04-23 12:39:18 -07:00
replace.c
rerere.c
reset.c
rev-list.c rev-list: fix --verify-objects --quiet becoming --objects 2012-02-28 10:47:30 -08:00
rev-parse.c rev-parse --show-prefix: add in trailing newline 2012-04-10 09:25:35 -07:00
revert.c Merge branch 'cb/cherry-pick-rev-path-confusion' 2012-04-27 13:58:02 -07:00
rm.c
send-pack.c push/fetch/clone --no-progress suppresses progress output 2012-02-13 13:06:53 -08:00
shortlog.c
show-branch.c
show-ref.c
stripspace.c
symbolic-ref.c symbolic-ref --short: abbreviate the output unambiguously 2012-02-27 15:58:36 -08:00
tag.c Merge branch 'tg/tag-points-at' 2012-02-20 00:15:28 -08:00
tar-tree.c
unpack-file.c
unpack-objects.c
update-index.c
update-ref.c
update-server-info.c update-server-info: respect core.bigfilethreshold 2012-03-07 09:07:39 -08:00
upload-archive.c
var.c
verify-pack.c
verify-tag.c verify-tag: Parse GPG configuration options. 2012-03-08 14:03:07 -08:00
write-tree.c