* Flag empty patches as errors
@ 2005-10-01 6:25 Linus Torvalds
2005-10-01 7:15 ` Junio C Hamano
2005-10-01 9:02 ` Packing on kernel.org Martin Coxall
0 siblings, 2 replies; 4+ messages in thread
From: Linus Torvalds @ 2005-10-01 6:25 UTC (permalink / raw)
To: Junio C Hamano, Git Mailing List
A patch that contains no actual diff, and that doesn't change any
meta-data is bad. It shouldn't be a patch at all, and git-apply shouldn't
just accept it.
This caused a corrupted patch to be silently applied as an empty change in
the kernel, because the corruption ended up making the patch look empty.
An example of such a patch is one that contains the patch header, but
where the initial fragment header (the "@@ -nr,.." line) is missing,
causing us to not parse any fragments.
The real "patch" program will also flag such patches as bad, with the
message
patch: **** Only garbage was found in the patch input.
and we should do likewise.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
diff --git a/apply.c b/apply.c
--- a/apply.c
+++ b/apply.c
@@ -723,6 +723,16 @@ static int parse_single_patch(char *line
return offset;
}
+static inline int metadata_changes(struct patch *patch)
+{
+ return patch->is_rename > 0 ||
+ patch->is_copy > 0 ||
+ patch->is_new > 0 ||
+ patch->is_delete ||
+ (patch->old_mode && patch->new_mode &&
+ patch->old_mode != patch->new_mode);
+}
+
static int parse_chunk(char *buffer, unsigned long size, struct patch *patch)
{
int hdrsize, patchsize;
@@ -733,6 +743,9 @@ static int parse_chunk(char *buffer, uns
patchsize = parse_single_patch(buffer + offset + hdrsize, size - offset - hdrsize, patch);
+ if (!patchsize && !metadata_changes(patch))
+ die("patch with only garbage at line %d", linenr);
+
return offset + hdrsize + patchsize;
}
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: Flag empty patches as errors 2005-10-01 6:25 Flag empty patches as errors Linus Torvalds @ 2005-10-01 7:15 ` Junio C Hamano 2005-10-01 9:02 ` Packing on kernel.org Martin Coxall 1 sibling, 0 replies; 4+ messages in thread From: Junio C Hamano @ 2005-10-01 7:15 UTC (permalink / raw) To: Linus Torvalds; +Cc: git Thanks. Applied. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Packing on kernel.org 2005-10-01 6:25 Flag empty patches as errors Linus Torvalds 2005-10-01 7:15 ` Junio C Hamano @ 2005-10-01 9:02 ` Martin Coxall 2005-10-01 14:21 ` H. Peter Anvin 1 sibling, 1 reply; 4+ messages in thread From: Martin Coxall @ 2005-10-01 9:02 UTC (permalink / raw) To: Git Mailing List Was there an cron process or kernel.org that should be repacking the public repositories periodically? The git/cogito/sparse/linux-2.6 repositories all now have several thousand unpacked objects a piece, and it takes so long to do an http clone it's not even funny. Martin ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Packing on kernel.org 2005-10-01 9:02 ` Packing on kernel.org Martin Coxall @ 2005-10-01 14:21 ` H. Peter Anvin 0 siblings, 0 replies; 4+ messages in thread From: H. Peter Anvin @ 2005-10-01 14:21 UTC (permalink / raw) To: Martin Coxall; +Cc: Git Mailing List, users Martin Coxall wrote: > Was there an cron process or kernel.org that should be repacking the > public repositories periodically? No, too many people complained. > The git/cogito/sparse/linux-2.6 repositories all now have several > thousand unpacked objects a piece, and it takes so long to do an http > clone it's not even funny. HARP: Please pack your repositories periodically. PLEASE. It matters especially now when kernel.org is down one server. If your username is high on this list, it's imperative that you pack your trees: brodo 197469 wim 184343 marcelo 68442 jgarzik 59860 lm 39680 mpm 38995 pavel 37624 lenb 36406 hch 34037 davem 27671 jejb 23553 willy 21626 pasky 17019 sfrench 15912 smurf 15236 acme 12504 torvalds 8834 aegl 7369 ericvh 6750 roland 6296 airlied 6053 chrisw 5619 axboe 5221 dwmw2 4101 gregkh 3659 dtor 3537 hpa 3350 paulus 2074 perex 1999 bart 1955 cvaroqui 1537 kay 1250 junio 1119 sam 1073 kkeil 1050 -hpa ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-10-01 14:22 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-10-01 6:25 Flag empty patches as errors Linus Torvalds 2005-10-01 7:15 ` Junio C Hamano 2005-10-01 9:02 ` Packing on kernel.org Martin Coxall 2005-10-01 14:21 ` H. Peter Anvin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).