From: Philip Oakley Date: Mon, 14 Dec 2015 11:19:32 +0000 (+0000) Subject: git gui: cope with duplicates in _get_recentrepo X-Git-Tag: v2.16.0-rc2~17^2~4^2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/3202c68ee0060d3a1f3b6f73b4932c6e8b263abb git gui: cope with duplicates in _get_recentrepo _get_recentrepo will fail if duplicate invalid entries are present in the recentrepo config list. The previous commit fixed the 'git config' limitations in _unset_recentrepo by unsetting all config entries, however this code would fail on the second attempt to unset it. Refactor the code to pre-sort and de-duplicate the recentrepo list to avoid a potential second unset attempt. Signed-off-by: Philip Oakley --- diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 133ca0ac35..aa87bcc344 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -235,14 +235,14 @@ method _invoke_next {} { proc _get_recentrepos {} { set recent [list] - foreach p [get_config gui.recentrepo] { + foreach p [lsort -unique [get_config gui.recentrepo]] { if {[_is_git [file join $p .git]]} { lappend recent $p } else { _unset_recentrepo $p } } - return [lsort $recent] + return $recent } proc _unset_recentrepo {p} {