projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Handling large files with GIT
[git.git]
/
name-rev.c
diff --git
a/name-rev.c
b/name-rev.c
index
7d89401
..
0c3f547
100644
(file)
--- a/
name-rev.c
+++ b/
name-rev.c
@@
-21,7
+21,7
@@
static void name_rev(struct commit *commit,
{
struct rev_name *name = (struct rev_name *)commit->object.util;
struct commit_list *parents;
{
struct rev_name *name = (struct rev_name *)commit->object.util;
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);
@@
-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)
@@
-93,10
+93,11
@@
static int name_ref(const char *path, const unsigned char *sha1)
}
if (o && o->type == commit_type) {
struct commit *commit = (struct commit *)o;
}
if (o && o->type == commit_type) {
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);
}
@@
-231,9
+232,10
@@
int main(int argc, char **argv)
} else if (all) {
int i;
} else if (all) {
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));