Subject: Re: [PATCHv5 GSoC] gitweb: Move static files into seperate subdirectory

From: Jakub Narebski <[email-masked]>
Date: Tue, 25 May 2010 02:37:50 +0200

On Mon, 24 May 2010, Pavan Kumar Sunkara wrote:
> On Tue, May 25, 2010 at 1:35 AM, Christian Couder <[email-masked]> wrote:
>> On Monday 24 May 2010 17:22:44 Pavan Kumar Sunkara wrote:
>>>
>>>  gitweb/{ => static}/git-favicon.png |  Bin 115 -> 115 bytes
>>>  gitweb/{ => static}/git-logo.png    |  Bin 207 -> 207 bytes
>>>  gitweb/{ => static}/gitweb.css      |    0
>>>  gitweb/{ => static}/gitweb.js       |    0
>>
>> The patch is supposed to move git-favicon.png and git-logo.png into
>> gitweb/static but it doesn't.
>>
>>>  diff --git a/gitweb/gitweb.css b/gitweb/static/gitweb.css
>>> similarity index 100%
>>> rename from gitweb/gitweb.css
>>> rename to gitweb/static/gitweb.css
>>> diff --git a/gitweb/gitweb.js b/gitweb/static/gitweb.js
>>> similarity index 100%
>>> rename from gitweb/gitweb.js
>>> rename to gitweb/static/gitweb.js
>>
>> Only gitweb.css and gitweb.js are moved into gitweb/static [...]
>
> I don't understand why the binary files aren't moving into static/ dir.
> I haven't faced this type of problem before. Give me some time to figure it out.

You have found a bug in git.  When you do a pure rename of a binary
file, it doesn't show as a pure rename patch:

  $ git init
  $ echo foo > foo
  $ echo -e "bar\0" > bar
  $ git add .
  $ git commit -m 'Initial commit'
  [master (root-commit) 4bd35b8] Initial commit
   2 files changed, 1 insertions(+), 0 deletions(-)
   create mode 100644 bar
   create mode 100644 foo
  $ mkdir sub
  $ git mv bar foo sub/
  $ git commit -m 'Moved to sub/'
  [master 00356a5] Moved to sub/
   2 files changed, 0 insertions(+), 0 deletions(-)
   rename bar => sub/bar (100%)
   rename foo => sub/foo (100%)
  $ git show -C -C --raw --binary --stat
  commit 00356a5ec458fa64ab3eca2c23ebc53e9f2d54ba
  Author: Jakub Narebski <[email-masked]>
  Date:   Tue May 25 02:23:26 2010 +0200
  
      Moved to sub/
  ---
  :100644 100644 080090e... 080090e... R100       bar     sub/bar
  :100644 100644 257cc56... 257cc56... R100       foo     sub/foo
  
   bar => sub/bar |  Bin 5 -> 5 bytes
   foo => sub/foo |    0
   2 files changed, 0 insertions(+), 0 deletions(-)
  
  diff --git a/foo b/sub/foo
  similarity index 100%
  rename from foo
  rename to sub/foo

As you can see there is not

  diff --git a/bar b/sub/bar
  similarity index 100%
  rename from bar
  rename to sub/bar

and that adding '--binary' option doesn't help
-- 
Jakub Narebski
Poland