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 <philipoakley@iee.org>
This commit is contained in:
Philip Oakley 2015-12-14 11:19:32 +00:00
parent 2c1b06dff9
commit 3202c68ee0

View File

@ -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} {