path: root/builtin/clone.c
diff options
authorJeff King <>2015-05-21 04:15:19 (GMT)
committerJunio C Hamano <>2015-05-27 19:37:28 (GMT)
commit8ade009c952b2977508d6d88aacc290c645125d2 (patch)
tree7f4e04ae95acdda25731f7c1522e1ae559e6e960 /builtin/clone.c
parent9a3d637541a5b6fcd84b6f5fa057e597d1696460 (diff)
clone: use OPT_STRING_LIST for --reference
Not only does this save us having to implement a custom callback, but it handles "--no-reference" in the usual way (to clear the list). The generic callback does copy the string, which we don't technically need, but that should not hurt anything. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin/clone.c')
1 files changed, 2 insertions, 11 deletions
diff --git a/builtin/clone.c b/builtin/clone.c
index 2d77a2d..6bc3d67 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -51,15 +51,6 @@ static struct string_list option_config;
static struct string_list option_reference;
static int option_dissociate;
-static int opt_parse_reference(const struct option *opt, const char *arg, int unset)
- struct string_list *option_reference = opt->value;
- if (!arg)
- return -1;
- string_list_append(option_reference, arg);
- return 0;
static struct option builtin_clone_options[] = {
OPT_BOOL(0, "progress", &option_progress,
@@ -83,8 +74,8 @@ static struct option builtin_clone_options[] = {
N_("initialize submodules in the clone")),
OPT_STRING(0, "template", &option_template, N_("template-directory"),
N_("directory from which templates will be used")),
- OPT_CALLBACK(0 , "reference", &option_reference, N_("repo"),
- N_("reference repository"), &opt_parse_reference),
+ OPT_STRING_LIST(0, "reference", &option_reference, N_("repo"),
+ N_("reference repository")),
OPT_STRING('o', "origin", &option_origin, N_("name"),
N_("use <name> instead of 'origin' to track upstream")),
OPT_STRING('b', "branch", &option_branch, N_("branch"),