@matheusbsbs / matheus-bagliano / commits / bba5322a71
Fork 0

builtin-fetch --all/--multi: propagate options correctly

When running a subfetch, the code propagated some options but not others. Propagate --force, --update-head-ok and --keep options as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Feb 24, 2010 at 10:22 UTC bba5322a71a3399a94f53e1dddf5bd66e493dfbc
2 files changed +29 -1
builtin-fetch.c
+8 -1
@@ -784,13 +784,19 @@ static int add_remote_or_group(const char *name, struct string_list *list)
784 static int fetch_multiple(struct string_list *list)
785 {
786 int i, result = 0;
787 - const char *argv[] = { "fetch", NULL, NULL, NULL, NULL, NULL, NULL };
787 + const char *argv[10] = { "fetch" };
788 int argc = 1;
789
790 if (dry_run)
791 argv[argc++] = "--dry-run";
792 if (prune)
793 argv[argc++] = "--prune";
794 + if (update_head_ok)
795 + argv[argc++] = "--update-head-ok";
796 + if (force)
797 + argv[argc++] = "--force";
798 + if (keep)
799 + argv[argc++] = "--keep";
800 if (verbosity >= 2)
801 argv[argc++] = "-v";
802 if (verbosity >= 1)
@@ -801,6 +807,7 @@ static int fetch_multiple(struct string_list *list)
807 for (i = 0; i < list->nr; i++) {
808 const char *name = list->items[i].string;
809 argv[argc] = name;
810 + argv[argc + 1] = NULL;
811 if (verbosity >= 0)
812 printf("Fetching %s\n", name);
813 if (run_command_v_opt(argv, RUN_GIT_CMD)) {
t/t5521-pull-options.sh
+21
@@ -51,4 +51,25 @@ test_expect_success 'git pull -q -v' '
51 test -s err)
52 '
53
54 +test_expect_success 'git pull --force' '
55 + mkdir clonedoldstyle &&
56 + (cd clonedoldstyle && git init &&
57 + cat >>.git/config <<-\EOF &&
58 + [remote "one"]
59 + url = ../parent
60 + fetch = refs/heads/master:refs/heads/mirror
61 + [remote "two"]
62 + url = ../parent
63 + fetch = refs/heads/master:refs/heads/origin
64 + [branch "master"]
65 + remote = two
66 + merge = refs/heads/master
67 + EOF
68 + git pull two &&
69 + test_commit A &&
70 + git branch -f origin &&
71 + git pull --all --force
72 + )
73 +'
74 +
75 test_done