projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move "void *util" from "struct object" into "struct commit"
[git.git]
/
name-rev.c
diff --git
a/name-rev.c
b/name-rev.c
index
59194f1
..
c29b93e
100644
(file)
--- a/
name-rev.c
+++ b/
name-rev.c
@@
-19,9
+19,9
@@
static void name_rev(struct commit *commit,
const char *tip_name, int merge_traversals, int generation,
int deref)
{
const char *tip_name, int merge_traversals, int generation,
int deref)
{
- struct rev_name *name = (struct rev_name *)commit->
object.
util;
+ struct rev_name *name = (struct rev_name *)commit->util;
struct commit_list *parents;
struct commit_list *parents;
- int parent_number =
0
;
+ int parent_number =
1
;
if (!commit->object.parsed)
parse_commit(commit);
if (!commit->object.parsed)
parse_commit(commit);
@@
-41,7
+41,7
@@
static void name_rev(struct commit *commit,
if (name == NULL) {
name = xmalloc(sizeof(rev_name));
if (name == NULL) {
name = xmalloc(sizeof(rev_name));
- commit->
object.
util = name;
+ commit->util = name;
goto copy_data;
} else if (name->merge_traversals > merge_traversals ||
(name->merge_traversals == merge_traversals &&
goto copy_data;
} else if (name->merge_traversals > merge_traversals ||
(name->merge_traversals == merge_traversals &&
@@
-56,7
+56,7
@@
copy_data:
for (parents = commit->parents;
parents;
parents = parents->next, parent_number++) {
for (parents = commit->parents;
parents;
parents = parents->next, parent_number++) {
- if (parent_number >
0
) {
+ if (parent_number >
1
) {
char *new_name = xmalloc(strlen(tip_name)+8);
if (generation > 0)
char *new_name = xmalloc(strlen(tip_name)+8);
if (generation > 0)
@@
-84,19
+84,20
@@
static int name_ref(const char *path, const unsigned char *sha1)
if (tags_only && strncmp(path, "refs/tags/", 10))
return 0;
if (tags_only && strncmp(path, "refs/tags/", 10))
return 0;
- while (o && o->type ==
tag_type
) {
+ while (o && o->type ==
TYPE_TAG
) {
struct tag *t = (struct tag *) o;
if (!t->tagged)
break; /* broken repository */
o = parse_object(t->tagged->sha1);
deref = 1;
}
struct tag *t = (struct tag *) o;
if (!t->tagged)
break; /* broken repository */
o = parse_object(t->tagged->sha1);
deref = 1;
}
- if (o && o->type ==
commit_type
) {
+ if (o && o->type ==
TYPE_COMMIT
) {
struct commit *commit = (struct commit *)o;
struct commit *commit = (struct commit *)o;
- const char *p;
- while ((p = strchr(path, '/')))
- path = p+1;
+ if (!strncmp(path, "refs/heads/", 11))
+ path = path + 11;
+ else if (!strncmp(path, "refs/", 5))
+ path = path + 5;
name_rev(commit, strdup(path), 0, 0, deref);
}
name_rev(commit, strdup(path), 0, 0, deref);
}
@@
-107,7
+108,13
@@
static int name_ref(const char *path, const unsigned char *sha1)
static const char* get_rev_name(struct object *o)
{
static char buffer[1024];
static const char* get_rev_name(struct object *o)
{
static char buffer[1024];
- struct rev_name *n = (struct rev_name *)o->util;
+ struct rev_name *n;
+ struct commit *c;
+
+ if (o->type != TYPE_COMMIT)
+ return "undefined";
+ c = (struct commit *) o;
+ n = c->util;
if (!n)
return "undefined";
if (!n)
return "undefined";
@@
-126,6
+133,7
@@
int main(int argc, char **argv)
int as_is = 0, all = 0, transform_stdin = 0;
setup_git_directory();
int as_is = 0, all = 0, transform_stdin = 0;
setup_git_directory();
+ git_config(git_default_config);
if (argc < 2)
usage(name_rev_usage);
if (argc < 2)
usage(name_rev_usage);
@@
-165,7
+173,7
@@
int main(int argc, char **argv)
}
o = deref_tag(parse_object(sha1), *argv, 0);
}
o = deref_tag(parse_object(sha1), *argv, 0);
- if (!o || o->type !=
commit_type
) {
+ if (!o || o->type !=
TYPE_COMMIT
) {
fprintf(stderr, "Could not get commit for %s. Skipping.\n",
*argv);
continue;
fprintf(stderr, "Could not get commit for %s. Skipping.\n",
*argv);
continue;
@@
-217,10
+225,9
@@
int main(int argc, char **argv)
if (!strcmp(name, "undefined"))
continue;
if (!strcmp(name, "undefined"))
continue;
- fwrite(p_start, p - p_start, 1, stdout);
- fputc('(', stdout);
- fputs(name, stdout);
- fputc(')', stdout);
+ fwrite(p_start, p - p_start + 1, 1,
+ stdout);
+ printf(" (%s)", name);
p_start = p + 1;
}
}
p_start = p + 1;
}
}
@@
-230,13
+237,12
@@
int main(int argc, char **argv)
fwrite(p_start, p - p_start, 1, stdout);
}
} else if (all) {
fwrite(p_start, p - p_start, 1, stdout);
}
} else if (all) {
- extern struct object **objs;
- extern int nr_objs;
int i;
int i;
- for (i = 0; i < nr_objs; i++)
- printf("%s %s\n", sha1_to_hex(objs[i]->sha1),
- get_rev_name(objs[i]));
+ for (i = 0; i < obj_allocs; i++)
+ if (objs[i])
+ printf("%s %s\n", sha1_to_hex(objs[i]->sha1),
+ get_rev_name(objs[i]));
} else
for ( ; revs; revs = revs->next)
printf("%s %s\n", revs->name, get_rev_name(revs->item));
} else
for ( ; revs; revs = revs->next)
printf("%s %s\n", revs->name, get_rev_name(revs->item));