diff --git a/apply.c b/apply.c index 179b3bbd00..2da225a8ec 100644 --- a/apply.c +++ b/apply.c @@ -834,7 +834,7 @@ static int parse_fragment(char *line, unsigned long size, struct patch *patch, s patch->new_name = NULL; } - if (patch->is_new != !oldlines) + if (patch->is_new && oldlines) return error("new file depends on old contents"); if (patch->is_delete != !newlines) { if (newlines) diff --git a/blame.c b/blame.c index 9c97aeca45..7e88833a37 100644 --- a/blame.c +++ b/blame.c @@ -748,7 +748,7 @@ int main(int argc, const char **argv) struct commit_info ci; const char *buf; int max_digits; - size_t longest_file, longest_author; + int longest_file, longest_author; int found_rename; const char* prefix = setup_git_directory(); diff --git a/http-push.c b/http-push.c index b35d400ee1..21c5289cde 100644 --- a/http-push.c +++ b/http-push.c @@ -1863,6 +1863,7 @@ static void one_remote_ref(char *refname) struct ref *ref; unsigned char remote_sha1[20]; struct object *obj; + int len = strlen(refname) + 1; if (fetch_ref(refname, remote_sha1) != 0) { fprintf(stderr, @@ -1884,7 +1885,6 @@ static void one_remote_ref(char *refname) } } - int len = strlen(refname) + 1; ref = xcalloc(1, sizeof(*ref) + len); memcpy(ref->old_sha1, remote_sha1, 20); memcpy(ref->name, refname, len); @@ -2313,6 +2313,8 @@ int main(int argc, char **argv) int objects_to_send; int rc = 0; int i; + int new_refs; + struct ref *ref; setup_git_directory(); setup_ident(); @@ -2347,8 +2349,8 @@ int main(int argc, char **argv) } } if (!remote->url) { - remote->url = arg; char *path = strstr(arg, "//"); + remote->url = arg; if (path) { path = index(path+2, '/'); if (path) @@ -2421,10 +2423,13 @@ int main(int argc, char **argv) return 0; } - int new_refs = 0; - struct ref *ref; + new_refs = 0; for (ref = remote_refs; ref; ref = ref->next) { char old_hex[60], *new_hex; + const char *commit_argv[4]; + int commit_argc; + char *new_sha1_hex, *old_sha1_hex; + if (!ref->peer_ref) continue; if (!memcmp(ref->old_sha1, ref->peer_ref->new_sha1, 20)) { @@ -2482,10 +2487,9 @@ int main(int argc, char **argv) } /* Set up revision info for this refspec */ - const char *commit_argv[4]; - int commit_argc = 3; - char *new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1)); - char *old_sha1_hex = NULL; + commit_argc = 3; + new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1)); + old_sha1_hex = NULL; commit_argv[1] = "--objects"; commit_argv[2] = new_sha1_hex; if (!push_all && !is_zero_sha1(ref->old_sha1)) { diff --git a/rev-list.c b/rev-list.c index 812d237f47..441c437855 100644 --- a/rev-list.c +++ b/rev-list.c @@ -40,13 +40,18 @@ static int bisect_list = 0; static int verbose_header = 0; static int abbrev = DEFAULT_ABBREV; static int show_parents = 0; +static int show_timestamp = 0; static int hdr_termination = 0; static const char *commit_prefix = ""; static enum cmit_fmt commit_format = CMIT_FMT_RAW; static void show_commit(struct commit *commit) { - printf("%s%s", commit_prefix, sha1_to_hex(commit->object.sha1)); + if (show_timestamp) + printf("%lu ", commit->date); + if (commit_prefix[0]) + fputs(commit_prefix, stdout); + fputs(sha1_to_hex(commit->object.sha1), stdout); if (show_parents) { struct commit_list *parents = commit->parents; while (parents) { @@ -335,6 +340,10 @@ int main(int argc, const char **argv) show_parents = 1; continue; } + if (!strcmp(arg, "--timestamp")) { + show_timestamp = 1; + continue; + } if (!strcmp(arg, "--bisect")) { bisect_list = 1; continue;