This applies on top of sb/submodule-parallel-update, replacing
sb/submodule-init.
Fixes:
* a more faithful conversion by staying on stdout (We switch to stderr later
in another series)
* use the existing find_last_dir_sep instead of reinventing the wheel.
Stefan Beller (2):
submodule: port resolve_relative_url from shell to C
submodule: port init from shell to C
builtin/submodule--helper.c | 321 +++++++++++++++++++++++++++++++++++++++++++-
git-submodule.sh | 118 +---------------
t/t0060-path-utils.sh | 42 ++++++
3 files changed, 361 insertions(+), 120 deletions(-)
Interdiff to origin/sb/submodule-init (committed 2016-01-20 12:55:30)
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 4684f16..c9b0c05 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -51,21 +51,12 @@ static int starts_with_dot_dot_slash(const char *str)
return str[0] == '.' && str[1] == '.' && is_dir_sep(str[2]);
}
-static char *last_dir_separator(char *str)
-{
- char *p = str + strlen(str);
- while (p-- > str)
- if (is_dir_sep(*p))
- return p;
- return NULL;
-}
-
/*
* Returns 1 if it was the last chop before ':'.
*/
static int chop_last_dir(char **remoteurl, int is_relative)
{
- char *rfind = last_dir_separator(*remoteurl);
+ char *rfind = find_last_dir_sep(*remoteurl);
if (rfind) {
*rfind = '\0';
return 0;
@@ -232,7 +223,7 @@ static void init_submodule(const char *path, const char
*prefix, int quiet)
struct strbuf sb = STRBUF_INIT;
char *url = NULL;
const char *upd = NULL;
- const char *displaypath = relative_path(xgetcwd(), prefix, &sb);;
+ const char *displaypath = relative_path(xgetcwd(), prefix, &sb);
/* Only loads from .gitmodules, no overlay with .git/config */
gitmodules_config();
@@ -276,7 +267,7 @@ static void init_submodule(const char *path, const char
*prefix, int quiet)
die(_("Failed to register url for submodule path '%s'"),
displaypath);
if (!quiet)
- fprintf(stderr, _("Submodule '%s' (%s) registered for
path '%s'\n"),
+ printf(_("Submodule '%s' (%s) registered for path
'%s'\n"),
sub->name, url, displaypath);
free(url);
}
--
2.7.0.rc0.45.g0dba895.dirty
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html