diff options
author | Brandon Casey <casey@nrlssc.navy.mil> | 2008-08-05 13:01:50 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-05 21:21:20 -0700 |
commit | 3d32a46b247222a97007419fa865efce959b002d (patch) | |
tree | e4f7d85bf8a4acc5f1726f2881c2b848bb5d0320 /builtin-prune.c | |
parent | 1127c51cfe09f0d7d26869e7a895190214ce049a (diff) | |
download | git-3d32a46b247222a97007419fa865efce959b002d.tar.gz |
Teach fsck and prune that tmp_obj_ file names may not be 14 bytes long
As Shawn pointed out, not all temporary file creation routines can
ensure that the generated temporary file is of a certain length.
e.g. Java's createTempFile(prefix, suffix). So just depend on the
prefix 'tmp_obj_' for detection.
Update prune, and fix the "fix" introduced by a08c53a1 :)
Signed-off-by: Brandon "appendixless" Casey <casey@nrlssc.navy.mil>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-prune.c')
-rw-r--r-- | builtin-prune.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/builtin-prune.c b/builtin-prune.c index 947de8cf25..c767a0ac89 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -69,11 +69,6 @@ static int prune_dir(int i, char *path) if (de->d_name[0] != '.') break; continue; - case 14: - if (prefixcmp(de->d_name, "tmp_obj_")) - break; - prune_tmp_object(path, de->d_name); - continue; case 38: sprintf(name, "%02x", i); memcpy(name+2, de->d_name, len+1); @@ -90,6 +85,10 @@ static int prune_dir(int i, char *path) prune_object(path, de->d_name, sha1); continue; } + if (!prefixcmp(de->d_name, "tmp_obj_")) { + prune_tmp_object(path, de->d_name); + continue; + } fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name); } if (!show_only) |