From: "Shawn O. Pearce" <spearce@spearce.org>
To: Steffen Prohaska <prohaska@zib.de>
Cc: git@vger.kernel.org, msysgit@googlegroups.com
Subject: Re: [PATCH] git-gui: offer a list of recent repositories on startup
Date: Sun, 7 Oct 2007 19:30:23 -0400 [thread overview]
Message-ID: <20071007233023.GE2137@spearce.org> (raw)
In-Reply-To: <11917925011987-git-send-email-prohaska@zib.de>
Steffen Prohaska <prohaska@zib.de> wrote:
> If git-gui is started outside a work tree the repository
> chooser will offer a list of recently opend repositories.
> Clicking on an entry directly opens the repository.
>
> The list of recently opened repositories is stored in the
> config as gui.recentrepos. If the list grows beyond 10
> entries it will be truncated.
>
> Note, only repositories that are opened through the
> repository chooser will get added to the recent list.
> Repositories opened from the shell will not yet be added.
I think that all makes a lot of sense. Three comments below about
this patch in particular.
> I'd suggest to reduce the number of clicks needed to open or
> clone an existing directory that is not in the list of
> recent repositories. First choosing from the radiobuttons
> and then clicking next is one click to much. There are no
> options to combine. Choosing from the list should
> immediately trigger the action.
>
> We could either put 'Create/Clone/Open New Repository' into
> the Repository menu and only present the recent repository
> list. Or we could offer push buttons for the other actions.
I agree entirely. That "Next" button is stupid stupid stupid.
What was I smoking that day? :-)
I'm concerned about putting them into the Repository menu only
as then the main window is competely void and users are sort of
wondering what they should do next. I think we should actually
do both. Put them into the menu and as push buttons on the window.
> + label $w_body.space
> + label $w_body.recentlabel \
> + -anchor w \
> + -text "Select Recent Repository:"
This string needs to be i18n'd with [mc ...].
> + listbox $w_body.recentlist \
Please make a field in this class called say "w_recentlist"
so you can use that field name instead of $w_body.recentlist.
This simplifies the code if we ever have to change the actual path
that the widget resides at, such as to alter the layout.
> +proc _append_recentrepos {path} {
> + set recent [get_config gui.recentrepos]
> + if {[lsearch $recent $path] < 0} {
> + lappend recent $path
> + }
> + if {[llength $recent] > 10} {
> + set recent [lrange $recent 1 end]
> + }
> + regsub -all "\[{}\]" $recent {"} recent
> + git config --global gui.recentrepos $recent
> +}
Why treat this as a Tcl list in a single value? Why not make it
a true multi-value configuration entry in ~/.gitconfig, like how
remote.$name.fetch is a multi-value entry? Does Windows allow
you to put " in a path name? Because the above regex will make
a list of paths that contains " in one of the entries invalid.
I think you also want to have this function return back immediately
if [lsearch $recent $path] >= 0 as then you don't invoke git-config
to perform a no-op change in the configuration file. As you well
know forking on Windows is a major cost. We shouldn't run git-config
just because the user opened a recent repository.
--
Shawn.
next prev parent reply other threads:[~2007-10-07 23:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-07 21:28 [PATCH] git-gui: offer a list of recent repositories on startup Steffen Prohaska
2007-10-07 23:30 ` Shawn O. Pearce [this message]
2007-10-08 14:16 ` Steffen Prohaska
2007-10-09 11:43 ` [msysGit] " Johannes Schindelin
2007-10-09 12:42 ` Steffen Prohaska
2007-10-10 4:40 ` Shawn O. Pearce
2007-10-10 15:43 ` Johannes Schindelin
2007-10-10 7:30 ` Shawn O. Pearce
2007-10-10 8:13 ` [msysGit] " Steffen Prohaska
2007-10-10 8:19 ` Shawn O. Pearce
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=20071007233023.GE2137@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=msysgit@googlegroups.com \
--cc=prohaska@zib.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.