Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Prepare git-rev-list for tracking tag objects too
author
Linus Torvalds
<torvalds@ppc970.osdl.org>
Wed, 29 Jun 2005 17:40:14 +0000
(10:40 -0700)
committer
Linus Torvalds
<torvalds@ppc970.osdl.org>
Wed, 29 Jun 2005 17:40:14 +0000
(10:40 -0700)
We want to be able to just say "give a difference between these
objects", rather than limiting it to commits only. This isn't there
yet, but it sets things up to be a bit easier.
rev-list.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
e06eb4c
)
diff --git
a/rev-list.c
b/rev-list.c
index bf61b74db84f5befafaad2d0c70de0e5da22d218..ca8cc92fc05712498f6a7bf186ae98b55fc7d497 100644
(file)
--- a/
rev-list.c
+++ b/
rev-list.c
@@
-19,6
+19,7
@@
static const char rev_list_usage[] =
" --merge-order [ --show-breaks ]";
static int bisect_list = 0;
" --merge-order [ --show-breaks ]";
static int bisect_list = 0;
+static int tag_objects = 0;
static int tree_objects = 0;
static int blob_objects = 0;
static int verbose_header = 0;
static int tree_objects = 0;
static int blob_objects = 0;
static int verbose_header = 0;
@@
-307,6
+308,20
@@
struct commit_list *limit_list(struct commit_list *list)
return newlist;
}
return newlist;
}
+static struct commit *get_commit_reference(const char *name, unsigned int flags)
+{
+ unsigned char sha1[20];
+ struct commit *commit;
+
+ if (get_sha1(name, sha1))
+ usage(rev_list_usage);
+ commit = lookup_commit_reference(sha1);
+ if (!commit || parse_commit(commit) < 0)
+ die("bad commit object %s", name);
+ commit->object.flags |= flags;
+ return commit;
+}
+
int main(int argc, char **argv)
{
struct commit_list *list = NULL;
int main(int argc, char **argv)
{
struct commit_list *list = NULL;
@@
-315,7
+330,6
@@
int main(int argc, char **argv)
for (i = 1 ; i < argc; i++) {
int flags;
char *arg = argv[i];
for (i = 1 ; i < argc; i++) {
int flags;
char *arg = argv[i];
- unsigned char sha1[20];
struct commit *commit;
if (!strncmp(arg, "--max-count=", 12)) {
struct commit *commit;
if (!strncmp(arg, "--max-count=", 12)) {
@@
-350,6
+364,7
@@
int main(int argc, char **argv)
continue;
}
if (!strcmp(arg, "--objects")) {
continue;
}
if (!strcmp(arg, "--objects")) {
+ tag_objects = 1;
tree_objects = 1;
blob_objects = 1;
continue;
tree_objects = 1;
blob_objects = 1;
continue;
@@
-369,12
+384,11
@@
int main(int argc, char **argv)
arg++;
limited = 1;
}
arg++;
limited = 1;
}
- if (
get_sha1(arg, sha1) || (show_breaks && !merge_order)
)
+ if (
show_breaks && !merge_order
)
usage(rev_list_usage);
usage(rev_list_usage);
- commit = lookup_commit_reference(sha1);
- if (!commit || parse_commit(commit) < 0)
- die("bad commit object %s", arg);
- commit->object.flags |= flags;
+ commit = get_commit_reference(arg, flags);
+ if (!commit)
+ continue;
commit_list_insert(commit, &list);
}
commit_list_insert(commit, &list);
}