Subject: Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

From: Ilya Basin <[email-masked]>
Date: Wed, 1 May 2013 12:31:53 +0400

IB> In my repo the placeholders change too often (in 1/4 commits). I'm
IB> thinking of using:
IB> 'git config --unset "svn-remote.$repo_id.added-placeholder" path_regex'
IB> instead of full rewrite.

I need your help. There are still problems:

    $ grep "define MAX_MATCHES" ~/builds/git/git-git/config.c
    #define MAX_MATCHES 8192

    $ grep added-placeholder .git/config | wc -l
    4430

1/4 commits change the list of placeholders, usually 1 folder changes.
Clearing and re-adding the entries to the config takes ~1 minute.
Pressing Ctrl-C at this time makes the list incomplete.

Re-adding all entries using 'config --add' is slow.
Does Git::config package have tools to modify multiple entries at once?
I wonder why 'git config --get-all' is used instead of some
Git::config routine.

Otherwise, to make this atomic, I think, the modification should be made
to a backup config file, then it should replace .git/config (or
rewrite it with signals blocked).

How to determine GIT_DIR from Fetcher.pm?

maybe I can simply append a duplicate section
'[svn-remote "svn"]'. But then I would need to escape the values
myself.

Also, git --unset-all leaves one empty section: '[svn-remote "svn"]'
Is it a bug?

--