From: Jakub Narebski <jnareb@gmail•com>
To: "Alex Riesen" <raa.lkml@gmail•com>
Cc: "Joey Hess" <joey@kitenet•net>, "Git Mailing List" <git@vger•kernel.org>
Subject: Re: git log and utf-u in filenames
Date: Sat, 27 Sep 2008 10:37:12 +0200 [thread overview]
Message-ID: <200809271037.13571.jnareb@gmail.com> (raw)
In-Reply-To: <81b0412b0809260649n7d7c0ccbwfde5504157687cda@mail.gmail.com>
On Fri, 26 Sep 2008, Alex Riesen wrote:
> 2008/9/26 Jakub Narebski <jnareb@gmail•com>:
>>> How about simply splitting output on end of line ("\0" NUL) characters?
>>> The "\n" NL you refer to is just as EOR as NUL.
>>
>> Doesn't work for "git diff-tree -z [...]" output. When there is rename
>> or copy detected, NUL is used as separator between fields (beetween
>> source and destination unquoted filename), not only between records:
>>
>> git diff-tree
>> .... <src qfilename> TAB <dst qfilename> LF
>>
>> git diff-tree -z
>> .... <src filename> NUL <dst filename> NUL
>>
>
> You still have the marker (Rnnn) from pre-<src filename> record and
> can treat the next record correspondingly. Still a split, just a bit more
> careful handling of the resulting list/array.
Currently gitweb does something like this:
open $fd, "-|", git_cmd(), "diff-tree", '-r', ...
@difftree = <$fd>;
close $fd;
foreach my $line (@difftree) {
...
}
If gitweb would use git-diff-tree with '-z' option, above code
would get more complicated, offsetting simplification of not using
unquote() (which is already written).
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2008-09-27 8:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-25 21:50 git log and utf-u in filenames Joey Hess
2008-09-25 22:43 ` Joey Hess
2008-09-25 23:15 ` Jakub Narebski
2008-09-26 6:33 ` Alex Riesen
2008-09-26 7:31 ` Jakub Narebski
2008-09-26 13:49 ` Alex Riesen
2008-09-27 8:37 ` Jakub Narebski [this message]
2008-09-25 23:11 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200809271037.13571.jnareb@gmail.com \
--to=jnareb@gmail$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=joey@kitenet$(echo .)net \
--cc=raa.lkml@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox