git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Sixt <j.sixt@viscovery.net>
To: Alexander Gavrilov <angavrilov@gmail.com>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>,
	Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH (GIT-GUI,GITK) 6/8] gitk: Port new encoding logic from git-gui.
Date: Mon, 22 Sep 2008 09:46:49 +0200	[thread overview]
Message-ID: <48D74D69.4010802@viscovery.net> (raw)
In-Reply-To: <48D74877.9050607@viscovery.net>

Johannes Sixt schrieb:
> Alexander Gavrilov schrieb:
>> Subject: [PATCH] gitk: Implement batch lookup and caching of encoding attrs.
>>
>> When the diff contains thousands of files, calling git-check-attr
>> once per file is very slow. With this patch gitk does attribute
>> lookup in batches of 30 files while reading the diff file list,
>> which leads to a very noticeable speedup.
> 
> This one does not work for me: The correct is not picked up anymore,

The correct _encoding_ is not picked up anymore...

> neither in Patch mode nor Tree mode. (It works as expected without this
> patch.)
> 
>> +proc cache_gitattr {attr pathlist} {
>> +	global path_attr_cache
>> +	set newlist {}
>> +	foreach path $pathlist {
>> +		if {[info exists path_attr_cache($attr,$path)]} continue
>> +		lappend newlist $path
>> +	}
>> +	while {$newlist ne {}} {
>> +		set head [lrange $newlist 0 29]
>> +		set newlist [lrange $newlist 30 end]
>> +		if {![catch {set rlist [eval exec git check-attr $attr -- $head]}]} {
>> +			foreach row [split $rlist "\n"] {
>> +				set cols [split $row :]
> 
> This colon made me nervous (because of the drive-colon combination on
> Windows), but as long as you feed relative paths into 'git check-attr',
> this should not matter (in my case).

This comment does not imply that I debugged this code. I just noticed the
colon while reading the patch.

>> +				set path [lindex $cols 0]
>> +				set value [join [lrange $cols 2 end] :]
>> +				if {[string index $path 0] eq "\""} {
>> +					set path [encoding convertfrom [lindex $path 0]]
>> +				}
>> +				set path_attr_cache($attr,$path) $value
>> +			}
>> +		}
>> +		update
>> +	}
>> +}

  reply	other threads:[~2008-09-22  7:47 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-17 21:07 [PATCH (GIT-GUI,GITK) 0/8] Encoding support in GUI Alexander Gavrilov
2008-09-17 21:07 ` [PATCH (GIT-GUI,GITK) 1/8] git-gui: Cleanup handling of the default encoding Alexander Gavrilov
2008-09-17 21:07   ` [PATCH (GIT-GUI,GITK) 2/8] git-gui: Add a menu of available encodings Alexander Gavrilov
2008-09-17 21:07     ` [PATCH (GIT-GUI,GITK) 3/8] git-gui: Allow forcing display encoding for diffs using a submenu Alexander Gavrilov
2008-09-17 21:07       ` [PATCH (GIT-GUI,GITK) 4/8] git-gui: Optimize encoding name resolution using a lookup table Alexander Gavrilov
2008-09-17 21:07         ` [PATCH (GIT-GUI,GITK) 5/8] git-gui: Support the encoding menu in gui blame Alexander Gavrilov
2008-09-17 21:07           ` [PATCH (GIT-GUI,GITK) 6/8] gitk: Port new encoding logic from git-gui Alexander Gavrilov
2008-09-17 21:07             ` [PATCH (GIT-GUI,GITK) 7/8] gitk: Implement file contents encoding support Alexander Gavrilov
2008-09-17 21:07               ` [PATCH (GIT-GUI,GITK) 8/8] gitk: Support filenames in the locale encoding Alexander Gavrilov
2008-09-19 12:10             ` [PATCH (GIT-GUI,GITK) 6/8] gitk: Port new encoding logic from git-gui Johannes Sixt
2008-09-19 12:38               ` Alexander Gavrilov
2008-09-19 13:04                 ` Johannes Sixt
2008-09-21 18:52                   ` Alexander Gavrilov
2008-09-22  7:25                     ` Johannes Sixt
2008-09-22  7:46                       ` Johannes Sixt [this message]
2008-09-22  8:01                       ` Alexander Gavrilov
2008-09-22  8:20                         ` Johannes Sixt
2008-09-22  9:02                           ` Alexander Gavrilov
2008-09-22  9:18                             ` Johannes Sixt
2008-09-22 10:18                               ` Alexander Gavrilov
2008-09-22  9:01                     ` Dmitry Potapov
2008-09-18 15:02   ` [PATCH (GIT-GUI,GITK) 1/8] git-gui: Cleanup handling of the default encoding Dmitry Potapov
2008-09-18 15:14     ` Alexander Gavrilov
2008-09-18 16:29     ` Johannes Sixt
2008-09-18 16:50       ` Dmitry Potapov
2008-09-18 17:00         ` Alexander Gavrilov
2008-09-18 17:19           ` Dmitry Potapov
2008-09-17 21:45 ` [PATCH (GIT-GUI,GITK) 0/8] Encoding support in GUI Paul Mackerras
2008-09-18 11:12   ` Alexander Gavrilov
2008-09-21 22:55 ` Paul Mackerras
2008-09-22 10:12   ` Alexander Gavrilov
2008-10-05  2:30     ` [PATCH 1/2] check-attr: add an internal check_attr() function Dmitry Potapov
2008-10-05  2:30       ` [PATCH 2/2] check-attr: Add --stdin-paths option Dmitry Potapov
2008-10-06  7:09         ` Johannes Sixt
2008-10-07  0:14           ` [PATCH 1/2 v2] check-attr: add an internal check_attr() function Dmitry Potapov
2008-10-07  0:16           ` [PATCH 2/2 v2] check-attr: Add --stdin-paths option Dmitry Potapov
2008-10-08 15:24             ` Shawn O. Pearce
2008-10-12 14:19               ` Dmitry Potapov
2008-10-12 15:04                 ` Jakub Narebski
2008-10-12 16:35                   ` Dmitry Potapov
2008-10-10 22:39             ` Paul Mackerras
2008-10-12 14:30               ` Dmitry Potapov
2008-10-01 11:35   ` [PATCH (GIT-GUI,GITK) 0/8] Encoding support in GUI Johannes Sixt
2008-10-10 10:46     ` Paul Mackerras

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=48D74D69.4010802@viscovery.net \
    --to=j.sixt@viscovery.net \
    --cc=angavrilov@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=paulus@samba.org \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).