git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Commit/merge messages for binary files

From
Jeff King <peff@peff.net>
Date
Feb 19, 2011, 07:06 UTC
Message-ID
<20110219070601.GA14059@sigill.intra.peff.net>
In-Reply-To
<4D5EE7D2.5060703@gmail.com>
On Fri, Feb 18, 2011 at 10:42:42PM +0100, Piotr Krukowiecki wrote:
Show 10 quoted lines
> Maybe I wasn't clear. Both the commit and the merge was for the same binary
> file.
> 
> In case of commit there were non-zero insertions/deletions. 
> See example below - notice both update binary file blob.o:
> 
> $ git commit -m Updated
> [topic 5da30ce] Updated
>  1 files changed, 8 insertions(+), 103 deletions(-)
>  rewrite blob.o (100%)

Yeah, that seems weird. I think it might have to do with break detection in the diff, which is on during the commit summary diff:

  $ git init
  $ dd if=/dev/urandom of=foo.rand bs=1k count=4
  $ git add foo.rand
  $ git commit -m one
  [master (root-commit) 8c5783a] one
   1 files changed, 0 insertions(+), 0 deletions(-)
   create mode 100644 foo.rand
  $ git show --oneline --stat --summary
  8c5783a one
   foo.rand |  Bin 0 -> 4096 bytes
   1 files changed, 0 insertions(+), 0 deletions(-)
   create mode 100644 foo.rand
So far so good. Now let's rewrite it.
  $ dd if=/dev/urandom of=foo.rand bs=1k count=4
  $ git commit -a -m two
  [master 43961bc] two
   1 files changed, 15 insertions(+), 19 deletions(-)
   rewrite foo.rand (100%)
Now that seems wrong. What about doing another diff:
  $ git show --oneline --stat --summary
  43961bc two
   foo.rand |  Bin 4096 -> 4096 bytes
   1 files changed, 0 insertions(+), 0 deletions(-)
That's right. Now let's turn on break detection:
  $ git show --oneline --stat --summary -B
  43961bc two
   foo.rand |   34 +++++++++++++++-------------------
   1 files changed, 15 insertions(+), 19 deletions(-)
   rewrite foo.rand (100%)

Broken again. So I guess we have some problem with making sure we treat broken filepairs as binary.

-Peff
Previous: Piotr KrukowieckiNext: Jeff King
Message 6 of 12 in “Commit/merge messages for binary files”
  1. Piotr KrukowieckiFeb 17, 2011
  2. Matthieu MoyFeb 18, 2011
  3. Piotr KrukowieckiFeb 18, 2011
  4. Matthieu MoyFeb 18, 2011
  5. Piotr KrukowieckiFeb 18, 2011
  6. Jeff KingFeb 19, 2011
  7. Jeff KingFeb 19, 2011
  8. 1/2 diff: handle diffstat of rewritten binary filesJeff King, Feb 19, 2011
  9. 2/2 diff: don't retrieve binary blobs for diffstatJeff King, Feb 19, 2011
  10. Junio C HamanoFeb 21, 2011
  11. Jeff KingFeb 22, 2011
  12. Junio C HamanoFeb 22, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.