git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 1/4] git-gui: remove duplicate entries from .gitconfig's gui.recentrepo

From
Philip Oakley <philipoakley@iee.org>
Date
Jan 22, 2017, 19:52 UTC
Message-ID
<20170122195301.1784-2-philipoakley@iee.org>
In-Reply-To
<20170122195301.1784-1-philipoakley@iee.org>

The git gui's recent repo list may become contaminated with duplicate entries. The git gui would barf when attempting to remove one entry. Remove them all - there is no option within 'git config' to selectively remove one of the entries.

This issue was reported on the 'Git User' list
(https://groups.google.com/forum/#!topic/git-users/msev4KsQGFc,
Warning: gui.recentrepo has multiply values while executing).

And also by zosrothko as a Git-for-Windows issue https://github.com/git-for-windows/git/issues/1014.

On startup the gui checks that entries in the recentrepo list are still valid repos and deletes thoses that are not. If duplicate entries are present the 'git config --unset' will barf and this prevents the gui from starting.

Subsequent patches fix other parts of recentrepo logic used for syncing internal lists with the external .gitconfig.

Reported-by: Alexey Astakhov <asstv7@gmail.com>
Signed-off-by: Philip Oakley <philipoakley@iee.org>
---
 lib/choose_repository.tcl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl
index 75d1da8..133ca0a 100644
--- a/lib/choose_repository.tcl
+++ b/lib/choose_repository.tcl
@@ -247,7 +247,7 @@ proc _get_recentrepos {} {
 
 proc _unset_recentrepo {p} {
 	regsub -all -- {([()\[\]{}\.^$+*?\\])} $p {\\\1} p
-	git config --global --unset gui.recentrepo "^$p\$"
+	git config --global --unset-all gui.recentrepo "^$p\$"
 	load_config 1
 }
 
-- 
2.9.0.windows.1.323.g0305acf
Previous: Philip OakleyNext: Philip Oakley
Message 4 of 6 in “git gui: allow for a long recentrepo list”
  1. 0/4 git gui: allow for a long recentrepo listPhilip Oakley, Jan 22, 2017
  2. 2/4 git gui: cope with duplicates in _get_recentrepoPhilip Oakley, Jan 22, 2017
  3. 3/4 git gui: de-dup selected repo from recentrepo historyPhilip Oakley, Jan 22, 2017
  4. 1/4 git-gui: remove duplicate entries from .gitconfig's gui.recentrepoPhilip Oakley, Jan 22, 2017
  5. 4/4 git gui: allow for a long recentrepo listPhilip Oakley, Jan 22, 2017
  6. Philip OakleyFeb 11, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.