From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 0/6] nd/ita-cleanup updates
Date: Sun, 27 Dec 2015 08:51:26 +0700 [thread overview]
Message-ID: <1451181092-26054-1-git-send-email-pclouds@gmail.com> (raw)
Most of the updates are in commit message (see the old thread [1]). I
give up on adding new tests for git-apply, finally admitting I don't
know that command that well. Code change from 'pu' version is entirely
in 5/6:
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index 687c82e..d9fe8f4 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c
@@ -48,6 +48,7 @@ static int checkout_file(const char *name, const char *prefix)
int pos = cache_name_pos(name, namelen);
int has_same_name = 0;
int did_checkout = 0;
+ int has_intent_to_add = 0;
int errs = 0;
if (pos < 0)
@@ -56,9 +57,11 @@ static int checkout_file(const char *name, const char *prefix)
while (pos < active_nr) {
struct cache_entry *ce = active_cache[pos];
if (ce_namelen(ce) != namelen ||
- memcmp(ce->name, name, namelen) ||
- ce_intent_to_add(ce))
+ memcmp(ce->name, name, namelen)) {
+ if (ce_intent_to_add(ce))
+ has_intent_to_add = 1;
break;
+ }
has_same_name = 1;
pos++;
if (ce_stage(ce) != checkout_stage
@@ -78,7 +81,9 @@ static int checkout_file(const char *name, const char *prefix)
if (!state.quiet) {
fprintf(stderr, "git checkout-index: %s ", name);
- if (!has_same_name)
+ if (has_intent_to_add)
+ fprintf(stderr, "is not yet in the cache");
+ else if (!has_same_name)
fprintf(stderr, "is not in the cache");
else if (checkout_stage)
fprintf(stderr, "does not exist at stage %d",
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 6d198b3..ac37d92 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -300,8 +300,6 @@ static int checkout_paths(const struct checkout_opts *opts,
* anything to this entry at all.
*/
continue;
- if (ce_intent_to_add(ce))
- continue;
/*
* Either this entry came from the tree-ish we are
* checking the paths out of, or we are checking out
@@ -330,12 +328,15 @@ static int checkout_paths(const struct checkout_opts *opts,
if (opts->merge)
unmerge_marked_index(&the_index);
- /* Any unmerged paths? */
for (pos = 0; pos < active_nr; pos++) {
- const struct cache_entry *ce = active_cache[pos];
+ struct cache_entry *ce = active_cache[pos];
if (ce->ce_flags & CE_MATCHED) {
- if (!ce_stage(ce))
+ if (!ce_stage(ce)) {
+ if (ce_intent_to_add(ce))
+ ce->ce_flags &= ~CE_MATCHED;
continue;
+ }
+ /* Unmerged paths */
if (opts->force) {
warning(_("path '%s' is unmerged"), ce->name);
} else if (opts->writeout_stage) {
diff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh
index d0f36a4..52e9f7f 100755
--- a/t/t2203-add-intent.sh
+++ b/t/t2203-add-intent.sh
@@ -117,7 +117,7 @@ test_expect_success 'checkout ignores i-t-a' '
cd checkout &&
echo data >file &&
git add -N file &&
- test_must_fail git checkout -- file &&
+ git checkout -- file &&
echo data >expected &&
test_cmp expected file
)
[1] http://thread.gmane.org/gmane.comp.version-control.git/272363/focus=276352
Nguyễn Thái Ngọc Duy (6):
blame: remove obsolete comment
Add and use convenient macro ce_intent_to_add()
apply: fix adding new files on i-t-a entries
apply: make sure check_preimage() does not leave empty file on error
checkout(-index): do not checkout i-t-a entries
grep: make it clear i-t-a entries are ignored
builtin/apply.c | 13 +++++-----
builtin/blame.c | 5 ----
builtin/checkout-index.c | 12 +++++++--
builtin/checkout.c | 9 ++++---
builtin/grep.c | 2 +-
builtin/rm.c | 2 +-
cache-tree.c | 2 +-
cache.h | 1 +
read-cache.c | 4 +--
t/t2203-add-intent.sh | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 92 insertions(+), 21 deletions(-)
--
2.3.0.rc1.137.g477eb31
next reply other threads:[~2015-12-27 1:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-27 1:51 Nguyễn Thái Ngọc Duy [this message]
2015-12-27 1:51 ` [PATCH 1/6] blame: remove obsolete comment Nguyễn Thái Ngọc Duy
2015-12-28 17:35 ` Junio C Hamano
2015-12-27 1:51 ` [PATCH 2/6] Add and use convenient macro ce_intent_to_add() Nguyễn Thái Ngọc Duy
2015-12-28 17:53 ` Junio C Hamano
2015-12-27 1:51 ` [PATCH 3/6] apply: fix adding new files on i-t-a entries Nguyễn Thái Ngọc Duy
2015-12-28 3:01 ` Junio C Hamano
2015-12-29 14:02 ` Duy Nguyen
2015-12-29 17:40 ` Junio C Hamano
2015-12-27 1:51 ` [PATCH 4/6] apply: make sure check_preimage() does not leave empty file on error Nguyễn Thái Ngọc Duy
2015-12-28 18:35 ` Junio C Hamano
2015-12-27 1:51 ` [PATCH 5/6] checkout(-index): do not checkout i-t-a entries Nguyễn Thái Ngọc Duy
2015-12-28 19:56 ` Junio C Hamano
2015-12-27 1:51 ` [PATCH 6/6] grep: make it clear i-t-a entries are ignored Nguyễn Thái Ngọc Duy
2015-12-28 19:59 ` Junio C Hamano
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=1451181092-26054-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.