git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Martin Koegler <mkoegler@auto.tuwien.ac.at>
To: Junio C Hamano <junkio@cox.net>
Cc: Jakub Narebski <jnareb@gmail.com>,
	git@vger.kernel.org, Martin Koegler <mkoegler@auto.tuwien.ac.at>
Subject: [PATCH 2/4] add support for storing the mode in object_array
Date: Sat, 21 Apr 2007 14:26:18 +0200	[thread overview]
Message-ID: <11771583802243-git-send-email-mkoegler@auto.tuwien.ac.at> (raw)
In-Reply-To: <1177158380197-git-send-email-mkoegler@auto.tuwien.ac.at>

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
---
 builtin-bundle.c   |    2 +-
 builtin-grep.c     |    2 +-
 builtin-log.c      |    2 +-
 builtin-name-rev.c |    2 +-
 builtin-reflog.c   |    8 ++++----
 list-objects.c     |    2 +-
 object.c           |    3 ++-
 object.h           |    3 ++-
 revision.c         |    6 +++---
 shallow.c          |    2 +-
 upload-pack.c      |    8 ++++----
 11 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/builtin-bundle.c b/builtin-bundle.c
index d1635a0..97cce9e 100644
--- a/builtin-bundle.c
+++ b/builtin-bundle.c
@@ -155,7 +155,7 @@ static int verify_bundle(struct bundle_header *header, int verbose)
 	memset(&refs, 0, sizeof(struct object_array));
 	for (i = 0; i < revs.pending.nr; i++) {
 		struct object_array_entry *e = revs.pending.objects + i;
-		add_object_array(e->item, e->name, &refs);
+		add_object_array(e->item, e->name, S_IFINVALID, &refs);
 	}
 
 	prepare_revision_walk(&revs);
diff --git a/builtin-grep.c b/builtin-grep.c
index f2ee20f..3690f7e 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -677,7 +677,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 			struct object *object = parse_object(sha1);
 			if (!object)
 				die("bad object %s", arg);
-			add_object_array(object, arg, &list);
+			add_object_array(object, arg, S_IFINVALID, &list);
 			continue;
 		}
 		if (!strcmp(arg, "--")) {
diff --git a/builtin-log.c b/builtin-log.c
index 1ca3aa9..ca12791 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -202,7 +202,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
 		case OBJ_COMMIT:
 			rev.pending.nr = rev.pending.alloc = 0;
 			rev.pending.objects = NULL;
-			add_object_array(o, name, &rev.pending);
+			add_object_array(o, name, S_IFINVALID, &rev.pending);
 			ret = cmd_log_walk(&rev);
 			break;
 		default:
diff --git a/builtin-name-rev.c b/builtin-name-rev.c
index 0351185..748cc0c 100644
--- a/builtin-name-rev.c
+++ b/builtin-name-rev.c
@@ -202,7 +202,7 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
 		if (cutoff > commit->date)
 			cutoff = commit->date;
 
-		add_object_array((struct object *)commit, *argv, &revs);
+		add_object_array((struct object *)commit, *argv, S_IFINVALID, &revs);
 	}
 
 	for_each_ref(name_ref, &data);
diff --git a/builtin-reflog.c b/builtin-reflog.c
index 4c39f1d..a346e8e 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -101,8 +101,8 @@ static int commit_is_complete(struct commit *commit)
 	 */
 	memset(&study, 0, sizeof(study));
 	memset(&found, 0, sizeof(found));
-	add_object_array(&commit->object, NULL, &study);
-	add_object_array(&commit->object, NULL, &found);
+	add_object_array(&commit->object, NULL, S_IFINVALID, &study);
+	add_object_array(&commit->object, NULL, S_IFINVALID, &found);
 	commit->object.flags |= STUDYING;
 	while (study.nr) {
 		struct commit *c;
@@ -123,8 +123,8 @@ static int commit_is_complete(struct commit *commit)
 			if (p->object.flags & STUDYING)
 				continue;
 			p->object.flags |= STUDYING;
-			add_object_array(&p->object, NULL, &study);
-			add_object_array(&p->object, NULL, &found);
+			add_object_array(&p->object, NULL, S_IFINVALID, &study);
+			add_object_array(&p->object, NULL, S_IFINVALID, &found);
 		}
 	}
 	if (!is_incomplete) {
diff --git a/list-objects.c b/list-objects.c
index 2ba2c95..1f862bc 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -118,7 +118,7 @@ void traverse_commit_list(struct rev_info *revs,
 			continue;
 		if (obj->type == OBJ_TAG) {
 			obj->flags |= SEEN;
-			add_object_array(obj, name, &objects);
+			add_object_array(obj, name, S_IFINVALID, &objects);
 			continue;
 		}
 		if (obj->type == OBJ_TREE) {
diff --git a/object.c b/object.c
index 78a44a6..11c614e 100644
--- a/object.c
+++ b/object.c
@@ -238,7 +238,7 @@ int object_list_contains(struct object_list *list, struct object *obj)
 	return 0;
 }
 
-void add_object_array(struct object *obj, const char *name, struct object_array *array)
+void add_object_array(struct object *obj, const char *name, unsigned mode, struct object_array *array)
 {
 	unsigned nr = array->nr;
 	unsigned alloc = array->alloc;
@@ -252,5 +252,6 @@ void add_object_array(struct object *obj, const char *name, struct object_array
 	}
 	objects[nr].item = obj;
 	objects[nr].name = name;
+	objects[nr].mode = mode;
 	array->nr = ++nr;
 }
diff --git a/object.h b/object.h
index bdbbc18..b29268a 100644
--- a/object.h
+++ b/object.h
@@ -17,6 +17,7 @@ struct object_array {
 	struct object_array_entry {
 		struct object *item;
 		const char *name;
+		unsigned mode;
 	} *objects;
 };
 
@@ -76,6 +77,6 @@ unsigned object_list_length(struct object_list *list);
 int object_list_contains(struct object_list *list, struct object *obj);
 
 /* Object array handling .. */
-void add_object_array(struct object *obj, const char *name, struct object_array *array);
+void add_object_array(struct object *obj, const char *name, unsigned mode, struct object_array *array);
 
 #endif /* OBJECT_H */
diff --git a/revision.c b/revision.c
index 8f0ed77..b2df974 100644
--- a/revision.c
+++ b/revision.c
@@ -39,7 +39,7 @@ void add_object(struct object *obj,
 		struct name_path *path,
 		const char *name)
 {
-	add_object_array(obj, path_name(path, name), p);
+	add_object_array(obj, path_name(path, name), S_IFINVALID, p);
 }
 
 static void mark_blob_uninteresting(struct blob *blob)
@@ -118,7 +118,7 @@ void add_pending_object(struct rev_info *revs, struct object *obj, const char *n
 {
 	if (revs->no_walk && (obj->flags & UNINTERESTING))
 		die("object ranges do not make sense when not walking revisions");
-	add_object_array(obj, name, &revs->pending);
+	add_object_array(obj, name, S_IFINVALID, &revs->pending);
 	if (revs->reflog_info && obj->type == OBJ_COMMIT)
 		add_reflog_for_walk(revs->reflog_info,
 				(struct commit *)obj, name);
@@ -1461,7 +1461,7 @@ struct commit *get_revision(struct rev_info *revs)
 			continue;
 		p->flags |= CHILD_SHOWN;
 		gc_boundary(&revs->boundary_commits);
-		add_object_array(p, NULL, &revs->boundary_commits);
+		add_object_array(p, NULL, S_IFINVALID, &revs->boundary_commits);
 	}
 
 	return c;
diff --git a/shallow.c b/shallow.c
index d178689..d320a13 100644
--- a/shallow.c
+++ b/shallow.c
@@ -87,7 +87,7 @@ struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
 			if (cur_depth < depth) {
 				if (p->next)
 					add_object_array(&p->item->object,
-							NULL, &stack);
+							NULL, S_IFINVALID, &stack);
 				else {
 					commit = p->item;
 					cur_depth = *(int *)commit->util;
diff --git a/upload-pack.c b/upload-pack.c
index 9c39231..1f12d29 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -378,7 +378,7 @@ static int got_sha1(char *hex, unsigned char *sha1)
 			parents->item->object.flags |= THEY_HAVE;
 	}
 	if (!we_knew_they_have) {
-		add_object_array(o, NULL, &have_obj);
+		add_object_array(o, NULL, S_IFINVALID, &have_obj);
 		return 1;
 	}
 	return 0;
@@ -523,7 +523,7 @@ static void receive_needs(void)
 			if (!object)
 				die("did not find object for %s", line);
 			object->flags |= CLIENT_SHALLOW;
-			add_object_array(object, NULL, &shallows);
+			add_object_array(object, NULL, S_IFINVALID, &shallows);
 			continue;
 		}
 		if (!prefixcmp(line, "deepen ")) {
@@ -564,7 +564,7 @@ static void receive_needs(void)
 			die("git-upload-pack: not our ref %s", line+5);
 		if (!(o->flags & WANTED)) {
 			o->flags |= WANTED;
-			add_object_array(o, NULL, &want_obj);
+			add_object_array(o, NULL, S_IFINVALID, &want_obj);
 		}
 	}
 	if (depth == 0 && shallows.nr == 0)
@@ -598,7 +598,7 @@ static void receive_needs(void)
 				parents = ((struct commit *)object)->parents;
 				while (parents) {
 					add_object_array(&parents->item->object,
-							NULL, &want_obj);
+							NULL, S_IFINVALID, &want_obj);
 					parents = parents->next;
 				}
 			}
-- 
1.4.4.4

  reply	other threads:[~2007-04-21 12:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-21 12:26 [PATCH 1/4] add mode parameter to get_sha1 Martin Koegler
2007-04-21 12:26 ` Martin Koegler [this message]
2007-04-21 12:26   ` [PATCH 3/4] add mode to add_pending_object Martin Koegler
2007-04-21 12:26     ` [PATCH 4/4] use the mode information of the tree, if <SHA1>:file name syntax is used Martin Koegler
2007-04-21 18:42 ` [PATCH 1/4] add mode parameter to get_sha1 Junio C Hamano
2007-04-21 20:02 ` Alex Riesen

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=11771583802243-git-send-email-mkoegler@auto.tuwien.ac.at \
    --to=mkoegler@auto.tuwien.ac.at \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=junkio@cox.net \
    /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).