Thread (8 messages) flat view 8 messages, 3 authors, 2016-06-15

Re: git log and utf-u in filenames

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:45:24

On Fri, 26 Sep 2008, Alex Riesen wrote:
2008/9/26 Jakub Narebski [off-list ref]:
quoted
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help