Re: [PATCH] unpack-trees: do not abort when overwriting an existing file with the same content

2013-01-20 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 + /*
 +  * If it has the same content that we are going to write down,

write down???

 +  * there's no point in complaining. We still overwrite it in the
 +  * end though. Permission is not checked so it may be lost.
 +  */

That is a regression, isn't it?  Is it too cumbersome to avoid
losing the permission bits by stopping in that case?

 + if (ce 
 + S_ISREG(st-st_mode)  S_ISREG(ce-ce_mode) 
 + st-st_size  1024 * 1024  /* should be configurable */
 + sha1_object_info(ce-sha1, ce_size) == OBJ_BLOB 
 + ce_size == st-st_size) {
 + void *buffer = NULL;
 + unsigned long size;
 + enum object_type type;
 + struct strbuf sb = STRBUF_INIT;
 + int matched =
 + strbuf_read_file(sb, ce-name, ce_size) == ce_size 
 + (buffer = read_sha1_file(ce-sha1, type, size)) != 
 NULL 
 + type == OBJ_BLOB 
 + size == ce_size 
 + !memcmp(buffer, sb.buf, size);
 + free(buffer);
 + strbuf_release(sb);
 + if (matched)
 + return 0;
 + }
 +
   return o-gently ? -1 :
   add_rejected_path(o, error_type, name);
  }
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] unpack-trees: do not abort when overwriting an existing file with the same content

2013-01-20 Thread Duy Nguyen
On Mon, Jan 21, 2013 at 1:35 AM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 + /*
 +  * If it has the same content that we are going to write down,

 write down???

hmm.. overwrite then.

 +  * there's no point in complaining. We still overwrite it in the
 +  * end though. Permission is not checked so it may be lost.
 +  */

 That is a regression, isn't it?  Is it too cumbersome to avoid
 losing the permission bits by stopping in that case?

I'm not sure how to deal with this case. (Lack of) Executable bit can
be easily restored (unlike file content) if we give the user the list
of changed files. On the other hand, not everybody runs git with a
huge scrollback buffer and warnings can be lost. I guess abort is a
safe choice.
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html