projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] Find size of SHA1 object without inflating everything.
[git.git]
/
apply.c
diff --git
a/apply.c
b/apply.c
index
3160207
..
e0a1549
100644
(file)
--- a/
apply.c
+++ b/
apply.c
@@
-116,9
+116,8
@@
static int is_dev_null(const char *str)
return !memcmp("/dev/null", str, 9) && isspace(str[9]);
}
return !memcmp("/dev/null", str, 9) && isspace(str[9]);
}
-#define TERM_EXIST 1
-#define TERM_SPACE 2
-#define TERM_TAB 4
+#define TERM_SPACE 1
+#define TERM_TAB 2
static int name_terminate(const char *name, int namelen, int c, int terminate)
{
static int name_terminate(const char *name, int namelen, int c, int terminate)
{
@@
-127,13
+126,6
@@
static int name_terminate(const char *name, int namelen, int c, int terminate)
if (c == '\t' && !(terminate & TERM_TAB))
return 0;
if (c == '\t' && !(terminate & TERM_TAB))
return 0;
- /*
- * Do we want an existing name? Return false and
- * continue if it's not there.
- */
- if (terminate & TERM_EXIST)
- return cache_name_pos(name, namelen) >= 0;
-
return 1;
}
return 1;
}
@@
-205,11
+197,11
@@
static void parse_traditional_patch(const char *first, const char *second, struc
} else if (is_dev_null(second)) {
patch->is_new = 0;
patch->is_delete = 1;
} else if (is_dev_null(second)) {
patch->is_new = 0;
patch->is_delete = 1;
- name = find_name(first, NULL, p_value, TERM_
EXIST | TERM_
SPACE | TERM_TAB);
+ name = find_name(first, NULL, p_value, TERM_SPACE | TERM_TAB);
patch->old_name = name;
} else {
patch->old_name = name;
} else {
- name = find_name(first, NULL, p_value, TERM_
EXIST | TERM_
SPACE | TERM_TAB);
- name = find_name(second, name, p_value, TERM_
EXIST | TERM_
SPACE | TERM_TAB);
+ name = find_name(first, NULL, p_value, TERM_SPACE | TERM_TAB);
+ name = find_name(second, name, p_value, TERM_SPACE | TERM_TAB);
patch->old_name = patch->new_name = name;
}
if (!name)
patch->old_name = patch->new_name = name;
}
if (!name)
@@
-336,6
+328,11
@@
static int gitdiff_similarity(const char *line, struct patch *patch)
return 0;
}
return 0;
}
+static int gitdiff_dissimilarity(const char *line, struct patch *patch)
+{
+ return 0;
+}
+
/*
* This is normal for a diff that doesn't change anything: we'll fall through
* into the next diff. Tell the parser to break out.
/*
* This is normal for a diff that doesn't change anything: we'll fall through
* into the next diff. Tell the parser to break out.
@@
-437,6
+434,7
@@
static int parse_git_header(char *line, int len, unsigned int size, struct patch
{ "rename from ", gitdiff_renamesrc },
{ "rename to ", gitdiff_renamedst },
{ "similarity index ", gitdiff_similarity },
{ "rename from ", gitdiff_renamesrc },
{ "rename to ", gitdiff_renamedst },
{ "similarity index ", gitdiff_similarity },
+ { "dissimilarity index ", gitdiff_dissimilarity },
{ "", gitdiff_unrecognized },
};
int i;
{ "", gitdiff_unrecognized },
};
int i;
@@
-701,7
+699,7
@@
const char minuses[]= "---------------------------------------------------------
static void show_stats(struct patch *patch)
{
char *name = patch->old_name;
static void show_stats(struct patch *patch)
{
char *name = patch->old_name;
- int len, max, add, del;
+ int len, max, add, del
, total
;
if (!name)
name = patch->new_name;
if (!name)
name = patch->new_name;
@@
-723,9
+721,14
@@
static void show_stats(struct patch *patch)
max = max_change;
if (max + len > 70)
max = 70 - len;
max = max_change;
if (max + len > 70)
max = 70 - len;
-
- add = (patch->lines_added * max + max_change/2) / max_change;
- del = (patch->lines_deleted * max + max_change/2) / max_change;
+
+ add = patch->lines_added;
+ del = patch->lines_deleted;
+ total = add + del;
+
+ total = (total * max + max_change / 2) / max_change;
+ add = (add * max + max_change / 2) / max_change;
+ del = total - add;
printf(" %-*s |%5d %.*s%.*s\n",
len, name, patch->lines_added + patch->lines_deleted,
add, pluses, del, minuses);
printf(" %-*s |%5d %.*s%.*s\n",
len, name, patch->lines_added + patch->lines_deleted,
add, pluses, del, minuses);