From: skimo@liacs.nl
To: git@vger.kernel.org, Junio C Hamano <junkio@cox.net>
Cc: Martin Waitz <tali@admingilde.org>, Alex Riesen <raa.lkml@gmail.com>
Subject: [PATCH 06/22] unpack-trees.c: pass cache_entry * to verify_absent rather than just the name
Date: Thu, 24 May 2007 00:22:55 +0200 [thread overview]
Message-ID: <11799589912377-git-send-email-skimo@liacs.nl> (raw)
In-Reply-To: <11799589913153-git-send-email-skimo@liacs.nl>
From: Sven Verdoolaege <skimo@kotnet.org>
We will need the full cache_entry later to figure out if we are dealing
with a submodule.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
---
unpack-trees.c | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/unpack-trees.c b/unpack-trees.c
index cac2411..3dac150 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -487,7 +487,7 @@ static int verify_clean_subdirectory(const char *path, const char *action,
* We do not want to remove or overwrite a working tree file that
* is not tracked, unless it is ignored.
*/
-static void verify_absent(const char *path, const char *action,
+static void verify_absent(struct cache_entry *ce, const char *action,
struct unpack_trees_options *o)
{
struct stat st;
@@ -495,12 +495,12 @@ static void verify_absent(const char *path, const char *action,
if (o->index_only || o->reset || !o->update)
return;
- if (!lstat(path, &st)) {
+ if (!lstat(ce->name, &st)) {
int cnt;
- if (o->dir && excluded(o->dir, path))
+ if (o->dir && excluded(o->dir, ce->name))
/*
- * path is explicitly excluded, so it is Ok to
+ * ce->name is explicitly excluded, so it is Ok to
* overwrite it.
*/
return;
@@ -512,7 +512,7 @@ static void verify_absent(const char *path, const char *action,
* files that are in "foo/" we would lose
* it.
*/
- cnt = verify_clean_subdirectory(path, action, o);
+ cnt = verify_clean_subdirectory(ce->name, action, o);
/*
* If this removed entries from the index,
@@ -540,7 +540,7 @@ static void verify_absent(const char *path, const char *action,
* delete this path, which is in a subdirectory that
* is being replaced with a blob.
*/
- cnt = cache_name_pos(path, strlen(path));
+ cnt = cache_name_pos(ce->name, strlen(ce->name));
if (0 <= cnt) {
struct cache_entry *ce = active_cache[cnt];
if (!ce_stage(ce) && !ce->ce_mode)
@@ -548,7 +548,7 @@ static void verify_absent(const char *path, const char *action,
}
die("Untracked working tree file '%s' "
- "would be %s by merge.", path, action);
+ "would be %s by merge.", ce->name, action);
}
}
@@ -572,7 +572,7 @@ static int merged_entry(struct cache_entry *merge, struct cache_entry *old,
}
}
else {
- verify_absent(merge->name, "overwritten", o);
+ verify_absent(merge, "overwritten", o);
invalidate_ce_path(merge);
}
@@ -587,7 +587,7 @@ static int deleted_entry(struct cache_entry *ce, struct cache_entry *old,
if (old)
verify_uptodate(old, o);
else
- verify_absent(ce->name, "removed", o);
+ verify_absent(ce, "removed", o);
ce->ce_mode = 0;
add_cache_entry(ce, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE);
invalidate_ce_path(ce);
@@ -704,18 +704,18 @@ int threeway_merge(struct cache_entry **stages,
if (o->aggressive) {
int head_deleted = !head && !df_conflict_head;
int remote_deleted = !remote && !df_conflict_remote;
- const char *path = NULL;
+ struct cache_entry *ce = NULL;
if (index)
- path = index->name;
+ ce = index;
else if (head)
- path = head->name;
+ ce = head;
else if (remote)
- path = remote->name;
+ ce = remote;
else {
for (i = 1; i < o->head_idx; i++) {
if (stages[i] && stages[i] != o->df_conflict_entry) {
- path = stages[i]->name;
+ ce = stages[i];
break;
}
}
@@ -730,8 +730,8 @@ int threeway_merge(struct cache_entry **stages,
(remote_deleted && head && head_match)) {
if (index)
return deleted_entry(index, index, o);
- else if (path && !head_deleted)
- verify_absent(path, "removed", o);
+ else if (ce && !head_deleted)
+ verify_absent(ce, "removed", o);
return 0;
}
/*
--
1.5.2.784.g5532e
next prev parent reply other threads:[~2007-05-23 22:24 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-23 22:22 [RFC] Fourth round of support for cloning submodules skimo
2007-05-23 22:22 ` [PATCH 01/22] git_connect: unset CONFIG_ENVIRONMENT in child skimo
2007-05-23 22:22 ` [PATCH 02/22] Add dump-config skimo
2007-05-23 22:22 ` [PATCH 03/22] git-config: add --remote option for reading config from remote repo skimo
2007-05-23 22:22 ` [PATCH 04/22] http.h: make fill_active_slots a function pointer skimo
2007-05-23 22:22 ` [PATCH 05/22] git-config: read remote config files over HTTP skimo
2007-05-23 22:22 ` skimo [this message]
2007-05-23 22:22 ` [PATCH 07/22] git-read-tree: take --submodules option skimo
2007-05-23 22:22 ` [PATCH 08/22] unpack-trees.c: assume submodules are clean skimo
2007-05-23 22:22 ` [PATCH 09/22] Add run_command_v_opt_cd: chdir into a directory before exec skimo
2007-05-23 22:22 ` [PATCH 10/22] run-command: optionally clear git environment skimo
2007-05-24 6:57 ` Alex Riesen
2007-05-24 7:15 ` Shawn O. Pearce
2007-05-24 7:19 ` Alex Riesen
2007-05-23 22:23 ` [PATCH 11/22] entry.c: optionally checkout submodules skimo
2007-05-24 6:59 ` Alex Riesen
2007-05-24 7:18 ` Shawn O. Pearce
2007-05-24 7:27 ` Sven Verdoolaege
2007-05-24 7:29 ` Alex Riesen
2007-05-24 16:21 ` Martin Waitz
2007-05-25 0:49 ` Shawn O. Pearce
2007-05-23 22:23 ` [PATCH 12/22] git-checkout: pass --submodules option to git-read-tree skimo
2007-05-23 22:23 ` [PATCH 13/22] git-read-tree: treat null commit as empty tree skimo
2007-05-23 22:23 ` [PATCH 14/22] git_config: add void * for callback data skimo
2007-05-23 22:23 ` [PATCH 15/22] make redirecting stdout to /dev/null available via run_command_v_opt skimo
2007-05-23 22:23 ` [PATCH 16/22] unpack-trees.c: optionally clone submodules for later checkout skimo
2007-05-23 22:23 ` [PATCH 17/22] entry.c: optionally checkout newly cloned submodules skimo
2007-05-24 13:28 ` Johannes Sixt
2007-05-23 22:23 ` [PATCH 18/22] git-clone: add --submodules for cloning submodules skimo
2007-05-23 22:23 ` [PATCH 19/22] test for simple submodule checkout support skimo
2007-05-23 22:23 ` [PATCH 20/22] checkout_submodule: checkout submodule on forced checkout of submodule dir skimo
2007-05-23 22:23 ` [PATCH 21/22] run-command: optionally redirect stderr to /dev/null skimo
2007-05-23 22:23 ` [PATCH 22/22] ensure_submodule: fetch missing revisions skimo
2007-05-23 23:40 ` [RFC] Fourth round of support for cloning submodules Johannes Schindelin
2007-05-24 0:50 ` Junio C Hamano
2007-05-24 7:22 ` Sven Verdoolaege
2007-05-24 7:29 ` Shawn O. Pearce
2007-05-24 7:36 ` Sven Verdoolaege
2007-05-24 9:41 ` Johannes Schindelin
2007-05-24 10:51 ` Sven Verdoolaege
2007-05-24 11:02 ` Johannes Schindelin
2007-05-24 11:16 ` Sven Verdoolaege
2007-05-24 11:31 ` Johannes Schindelin
2007-05-24 11:43 ` Sven Verdoolaege
2007-05-24 12:16 ` Johannes Schindelin
2007-05-24 12:23 ` Johannes Sixt
2007-05-24 13:14 ` Johannes Schindelin
2007-05-24 12:39 ` Sven Verdoolaege
2007-05-24 13:17 ` Johannes Schindelin
2007-05-24 13:24 ` Sven Verdoolaege
2007-05-24 13:52 ` Johannes Schindelin
2007-05-24 17:42 ` Sven Verdoolaege
2007-05-24 18:07 ` Johannes Schindelin
2007-05-24 12:41 ` Lars Hjemli
2007-05-24 13:11 ` Sven Verdoolaege
2007-05-24 13:32 ` Lars Hjemli
2007-05-24 17:13 ` Junio C Hamano
2007-05-24 17:33 ` Lars Hjemli
2007-05-24 17:38 ` Sven Verdoolaege
2007-05-24 17:40 ` Linus Torvalds
2007-05-24 17:55 ` Sven Verdoolaege
2007-05-24 18:09 ` Linus Torvalds
2007-05-24 18:45 ` Junio C Hamano
2007-05-24 19:13 ` Lars Hjemli
2007-05-24 19:25 ` Johannes Schindelin
2007-05-24 18:11 ` Johannes Schindelin
2007-05-25 10:00 ` Sven Verdoolaege
2007-05-25 16:16 ` Junio C Hamano
2007-05-25 16:28 ` Sven Verdoolaege
2007-05-25 16:43 ` Johannes Schindelin
2007-05-24 18:38 ` Junio C Hamano
2007-05-25 12:27 ` Josef Weidendorfer
2007-05-25 12:44 ` Johannes Schindelin
2007-05-25 13:59 ` Josef Weidendorfer
2007-05-25 14:16 ` Johannes Schindelin
2007-05-25 14:38 ` Sven Verdoolaege
2007-05-25 14:51 ` Johannes Schindelin
2007-05-25 14:51 ` Josef Weidendorfer
2007-05-25 14:54 ` Johannes Schindelin
2007-05-25 15:35 ` Linus Torvalds
2007-05-25 16:23 ` Josef Weidendorfer
2007-05-25 16:37 ` Johannes Schindelin
2007-05-25 17:09 ` Josef Weidendorfer
2007-05-25 12:22 ` Jakub Narebski
2007-05-25 12:32 ` Johannes Schindelin
2007-05-24 12:23 ` Santi Béjar
2007-05-27 20:34 ` Martin Waitz
2007-05-27 20:40 ` Sven Verdoolaege
2007-05-24 13:35 ` Martin Waitz
2007-05-24 7:24 ` Sven Verdoolaege
2007-05-24 9:35 ` Johannes Schindelin
2007-05-24 10:54 ` Sven Verdoolaege
2007-05-24 12:38 ` Petr Baudis
2007-05-24 13:13 ` Johannes Schindelin
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=11799589912377-git-send-email-skimo@liacs.nl \
--to=skimo@liacs.nl \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=raa.lkml@gmail.com \
--cc=tali@admingilde.org \
/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).