Re: [PATCH v2 2/5] pull: make code more similar to the shell script again
From: Junio C Hamano <hidden>
Date: 2016-09-12 18:56:30
Possibly related (same subject, not in this thread)
- 2016-09-11 · [PATCH v2 2/5] pull: make code more similar to the shell script again · Johannes Schindelin <hidden>
Johannes Schindelin [off-list ref] writes:
quoted hunk
When converting the pull command to a builtin, the require_clean_work_tree() function was renamed and the pull-specific parts hard-coded. This makes it impossible to reuse the code, so let's modify the code to make it more similar to the original shell script again. Signed-off-by: Johannes Schindelin <redacted> --- builtin/pull.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-)diff --git a/builtin/pull.c b/builtin/pull.c index d4bd635..a3ed054 100644 --- a/builtin/pull.c +++ b/builtin/pull.c@@ -365,10 +365,11 @@ static int has_uncommitted_changes(void) * If the work tree has unstaged or uncommitted changes, dies with the * appropriate message. */ -static void die_on_unclean_work_tree(void) +static int require_clean_work_tree(const char *action, const char *hint, + int gently) { struct lock_file *lock_file = xcalloc(1, sizeof(*lock_file)); - int do_die = 0; + int err = 0; hold_locked_index(lock_file, 0); refresh_cache(REFRESH_QUIET);@@ -376,20 +377,27 @@ static void die_on_unclean_work_tree(void) rollback_lock_file(lock_file); if (has_unstaged_changes()) { - error(_("Cannot pull with rebase: You have unstaged changes.")); - do_die = 1; + error(_("Cannot %s: You have unstaged changes."), _(action)); + err = 1; }... + error(_("Cannot %s: Your index contains uncommitted changes."), + _(action)); + err = 1;
These are much better than the one in v1. Depending on the target language, the translators may have to phrase these not like "Cannot <verb>:" but "Cannot perform <noun>:" where the "<noun>" is for "the act of doing <verb>", if the "cannot" part in their language needs to change shape depending on the verb. Hence, I think the translators need a /* TRANSLATORS: ... */ comment that tells them what is interpolated here are their translations for phrases like "pull with rebase". You do not have to be exhausitive in the comment; a representative example would help the translators see the message in context. Other than that (and the need to further clean-up error() and die() to begin with lower-case to match the modern practice in a separate follow-up series), this looks ready to be queued. Thanks.