From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 0/5] Pull out require_clean_work_tree() functionality from builtin/pull.c
Date: Sun, 11 Sep 2016 10:02:12 +0200 (CEST) [thread overview]
Message-ID: <cover.1473580914.git.johannes.schindelin@gmx.de> (raw)
In-Reply-To: <cover.1472137582.git.johannes.schindelin@gmx.de>
This is the 5th last patch series of my work to accelerate interactive
rebases in particular on Windows.
Basically, all it does is to make reusable some functions that were
ported over from git-pull.sh but made private to builtin/pull.c.
Changes since v1:
- skipped patch that tries to make require_clean_work_tree() smart
enough to read the index if it was not read yet.
- added a code-comment clarifying that it is the duty of
require_clean_work_tree()'s caller to ensure that the index has been
read.
- made the action in require_clean_work_tree() translateable. This
amazingly easy without complexifying the code, simply by using N_()
and _() as indicated by Jakub.
Johannes Schindelin (5):
pull: drop confusing prefix parameter of die_on_unclean_work_tree()
pull: make code more similar to the shell script again
Make the require_clean_work_tree() function truly reusable
Export also the has_un{staged,committed}_changed() functions
wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
builtin/pull.c | 71 +++--------------------------------------------------
wt-status.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
wt-status.h | 6 +++++
3 files changed, 86 insertions(+), 68 deletions(-)
Published-As: https://github.com/dscho/git/releases/tag/require-clean-work-tree-v2
Fetch-It-Via: git fetch https://github.com/dscho/git require-clean-work-tree-v2
Interdiff vs v1:
diff --git a/builtin/pull.c b/builtin/pull.c
index 843ff19..c639167 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -809,7 +809,7 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
die(_("Updating an unborn branch with changes added to the index."));
if (!autostash)
- require_clean_work_tree("pull with rebase",
+ require_clean_work_tree(N_("pull with rebase"),
"Please commit or stash them.", 1, 0);
if (get_rebase_fork_point(rebase_fork_point, repo, *refspecs))
diff --git a/wt-status.c b/wt-status.c
index 129b054..086ae79 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -2258,20 +2258,13 @@ int require_clean_work_tree(const char *action, const char *hint, int ignore_sub
struct lock_file *lock_file = xcalloc(1, sizeof(*lock_file));
int err = 0;
- if (read_cache() < 0) {
- error(_("Could not read index"));
- if (gently)
- return -1;
- exit(1);
- }
-
hold_locked_index(lock_file, 0);
refresh_cache(REFRESH_QUIET);
update_index_if_able(&the_index, lock_file);
rollback_lock_file(lock_file);
if (has_unstaged_changes(ignore_submodules)) {
- error(_("Cannot %s: You have unstaged changes."), action);
+ error(_("Cannot %s: You have unstaged changes."), _(action));
err = 1;
}
@@ -2279,7 +2272,8 @@ int require_clean_work_tree(const char *action, const char *hint, int ignore_sub
if (err)
error(_("Additionally, your index contains uncommitted changes."));
else
- error(_("Cannot %s: Your index contains uncommitted changes."), action);
+ error(_("Cannot %s: Your index contains uncommitted changes."),
+ _(action));
err = 1;
}
diff --git a/wt-status.h b/wt-status.h
index f0e66c4..54fec77 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -128,6 +128,7 @@ void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, .
__attribute__((format (printf, 3, 4)))
void status_printf(struct wt_status *s, const char *color, const char *fmt, ...);
+/* The following functions expect that the caller took care of reading the index. */
int has_unstaged_changes(int ignore_submodules);
int has_uncommitted_changes(int ignore_submodules);
int require_clean_work_tree(const char *action, const char *hint,
--
2.10.0.windows.1.10.g803177d
base-commit: cda1bbd474805e653dda8a71d4ea3790e2a66cbb
next prev parent reply other threads:[~2016-09-11 8:02 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-25 15:06 [PATCH 0/6] Pull out require_clean_work_tree() functionality from builtin/pull.c Johannes Schindelin
2016-08-25 15:06 ` [PATCH 1/6] pull: drop confusing prefix parameter of die_on_unclean_work_tree() Johannes Schindelin
2016-08-29 22:41 ` Junio C Hamano
2016-08-25 15:06 ` [PATCH 2/6] pull: make code more similar to the shell script again Johannes Schindelin
2016-08-29 22:52 ` Junio C Hamano
2016-08-30 17:56 ` Johannes Schindelin
2016-09-09 10:49 ` Johannes Schindelin
2016-08-25 15:06 ` [PATCH 3/6] Make the require_clean_work_tree() function truly reusable Johannes Schindelin
2016-08-25 15:06 ` [PATCH 4/6] require_clean_work_tree: ensure that the index was read Johannes Schindelin
2016-08-29 23:01 ` Junio C Hamano
2016-08-30 2:44 ` Junio C Hamano
2016-08-30 11:00 ` Johannes Schindelin
2016-08-30 14:46 ` Johannes Schindelin
2016-08-30 16:23 ` Junio C Hamano
2016-08-30 10:50 ` Johannes Schindelin
2016-08-25 15:07 ` [PATCH 5/6] Export also the has_un{staged,committed}_changed() functions Johannes Schindelin
2016-08-29 23:03 ` Junio C Hamano
2016-08-25 15:07 ` [PATCH 6/6] wt-status: teach has_{unstaged,uncommitted}_changes() about submodules Johannes Schindelin
2016-09-11 8:02 ` Johannes Schindelin [this message]
2016-09-11 8:02 ` [PATCH v2 1/5] pull: drop confusing prefix parameter of die_on_unclean_work_tree() Johannes Schindelin
2016-09-11 8:02 ` [PATCH v2 2/5] pull: make code more similar to the shell script again Johannes Schindelin
2016-09-12 18:56 ` Junio C Hamano
2016-09-11 8:02 ` [PATCH v2 3/5] Make the require_clean_work_tree() function truly reusable Johannes Schindelin
2016-09-12 18:58 ` Junio C Hamano
2016-09-11 8:02 ` [PATCH v2 4/5] Export also the has_un{staged,committed}_changed() functions Johannes Schindelin
2016-09-11 8:03 ` [PATCH v2 5/5] wt-status: teach has_{unstaged,uncommitted}_changes() about submodules Johannes Schindelin
2016-09-12 19:36 ` [PATCH v2 0/5] Pull out require_clean_work_tree() functionality from builtin/pull.c Junio C Hamano
2016-10-04 13:04 ` [PATCH v3 0/6] " Johannes Schindelin
2016-10-04 13:05 ` [PATCH v3 1/6] pull: drop confusing prefix parameter of die_on_unclean_work_tree() Johannes Schindelin
2016-10-04 13:05 ` [PATCH v3 2/6] pull: make code more similar to the shell script again Johannes Schindelin
2016-10-04 13:05 ` [PATCH v3 3/6] Make the require_clean_work_tree() function reusable Johannes Schindelin
2016-10-04 18:52 ` Junio C Hamano
2016-10-05 11:25 ` Johannes Schindelin
2016-10-05 16:23 ` Junio C Hamano
2016-10-04 13:05 ` [PATCH v3 4/6] Export also the has_un{staged,committed}_changed() functions Johannes Schindelin
2016-10-04 18:53 ` Junio C Hamano
2016-10-05 19:20 ` Jakub Narębski
2016-10-04 13:05 ` [PATCH v3 5/6] wt-status: teach has_{unstaged,uncommitted}_changes() about submodules Johannes Schindelin
2016-10-04 13:06 ` [PATCH v3 6/6] wt-status: begin error messages with lower-case Johannes Schindelin
2016-10-05 19:23 ` Jakub Narębski
2016-10-06 10:28 ` Johannes Schindelin
2016-10-04 18:56 ` [PATCH v3 0/6] Pull out require_clean_work_tree() functionality from builtin/pull.c Junio C Hamano
2016-10-05 11:35 ` Johannes Schindelin
2016-10-07 16:08 ` [PATCH v4 " Johannes Schindelin
2016-10-07 16:08 ` [PATCH v4 1/6] pull: drop confusing prefix parameter of die_on_unclean_work_tree() Johannes Schindelin
2016-10-07 16:08 ` [PATCH v4 2/6] pull: make code more similar to the shell script again Johannes Schindelin
2016-10-07 16:08 ` [PATCH v4 3/6] wt-status: make the require_clean_work_tree() function reusable Johannes Schindelin
2016-10-07 16:08 ` [PATCH v4 4/6] wt-status: export also the has_un{staged,committed}_changes() functions Johannes Schindelin
2016-10-07 16:09 ` [PATCH v4 5/6] wt-status: teach has_{unstaged,uncommitted}_changes() about submodules Johannes Schindelin
2016-10-07 16:09 ` [PATCH v4 6/6] wt-status: begin error messages with lower-case Johannes Schindelin
2016-10-07 16:34 ` [PATCH v4 0/6] Pull out require_clean_work_tree() functionality from builtin/pull.c Junio C Hamano
2016-10-07 16:37 ` Jakub Narębski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1473580914.git.johannes.schindelin@gmx.de \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).