summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-04-17 17:02:21 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-17 17:02:21 (GMT)
commita38800fde24a44b12a9ed14852339466de1cb9c9 (patch)
tree3698891b68fda449e3ba7fe859a5b65d54e60c79
parentfa06d442c6c5113fcff9991f349157bdb0c4b989 (diff)
downloadgit-a38800fde24a44b12a9ed14852339466de1cb9c9.zip
git-a38800fde24a44b12a9ed14852339466de1cb9c9.tar.gz
git-a38800fde24a44b12a9ed14852339466de1cb9c9.tar.bz2
[PATCH] Better error message from checkout-cache for unmerged files.
The checkout-cache command says "file is not in the cache" when an unmerged path is given. This patch adds code to distinguish the unmerged and the nonexistent cases and gives an appropriate error message. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--checkout-cache.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/checkout-cache.c b/checkout-cache.c
index b909f5d..1c25766 100644
--- a/checkout-cache.c
+++ b/checkout-cache.c
@@ -121,8 +121,15 @@ static int checkout_file(const char *name)
{
int pos = cache_name_pos(name, strlen(name));
if (pos < 0) {
- if (!quiet)
- fprintf(stderr, "checkout-cache: %s is not in the cache\n", name);
+ if (!quiet) {
+ pos = -pos - 1;
+ fprintf(stderr,
+ "checkout-cache: %s is %s.\n",
+ name,
+ (pos < active_nr &&
+ !strcmp(active_cache[pos]->name, name)) ?
+ "unmerged" : "not in the cache");
+ }
return -1;
}
return checkout_entry(active_cache[pos]);