All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Mackerras <paulus@ozlabs.org>
To: Vladimir Chigarev <chiga17@gmail.com>
Cc: Vladimir Chigarev via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org, Vladimir Chigarev <chiga17@mail.ru>
Subject: Re: [PATCH] gitk: add option to perform 'git fetch' command
Date: Fri, 5 Nov 2021 18:35:39 +1100	[thread overview]
Message-ID: <YYTey3B8Bw7vJo+u@thinks.paulus.ozlabs.org> (raw)
In-Reply-To: <CAGyQznWL_X+-2jyfJCOkTGsp5Ucd3aomQ0Rf5W4nSo8sEz9d5Q@mail.gmail.com>

On Wed, Nov 03, 2021 at 01:01:14PM +0300, Vladimir Chigarev wrote:
> Hello Paul,
> 
> Just a gentle reminder.
> May I ask you to review my changes in gitk?

Thanks for the reminder.  See comments below.

> > > +proc fetch {} {
> > > +    global bgcolor NS fetch_output
> > > +
> > > +    set fetch_output {}
> > > +    if {[catch {exec sh -c "git fetch -v 2>&1"} fetch_output]} {

This "exec" call is synchronous, meaning that the gitk process won't
do anything else until the exec call returns.  Since git fetch is a
network operation, that could be quite a long time, during which the
GUI will be unresponsive.  It would be better to use open rather than
exec, which will return a file descriptor.  You would then use filerun
to set up a procedure to be called when the file descriptor is
readable.  That way you can arrange for the GUI to continue to respond
while the git fetch is happening.

Also, it may be more useful to do "git fetch --all" rather than just
"git fetch", though I'm not going to insist on that.

> > > +    }
> > > +
> > > +    set w .about

Why are you reusing the "About gitk" window here?  That doesn't seem
right.  Don't you mean "set w .fetch" or similar?

> > > +    if {[winfo exists $w]} {
> > > +     raise $w
> > > +     return
> > > +    }
> > > +    ttk_toplevel $w
> > > +    wm title $w [mc "Fetch"]
> > > +    make_transient $w .
> > > +    message $w.m -text [mc " $fetch_output "] \
> > > +         -justify left -aspect 600 -border 2 -bg $bgcolor -relief groove

How long can the git fetch output be?  If it can be say ten or more
lines you might need to use a text widget and a scrollbar rather than
a message widget.

> > > +    pack $w.m -side top -fill x -padx 2 -pady 2
> > > +    ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w"
> > -default active
> > > +    pack $w.ok -side bottom
> > > +    bind $w <Visibility> "focus $w.ok"
> > > +    bind $w <Key-Escape> "destroy $w"
> > > +    bind $w <Key-Return> "destroy $w"
> > > +    tk::PlaceWindow $w widget .
> > > +
> > > +    reloadcommits
> > > +}
> > > +
> > >  proc updatecommits {} {
> > >      global curview vcanopt vorigargs vfilelimit viewinstances
> > >      global viewactive viewcomplete tclencoding
> > > @@ -2089,6 +2117,7 @@ proc makewindow {} {
> > >          mc "&File" cascade {
> > >              {mc "&Update" command updatecommits -accelerator F5}
> > >              {mc "&Reload" command reloadcommits -accelerator Shift-F5}
> > > +            {mc "&Fetch" command fetch -accelerator F7}
> > >              {mc "Reread re&ferences" command rereadrefs}
> > >              {mc "&List references" command showrefs -accelerator F2}
> > >              {xx "" separator}
> > > @@ -2609,6 +2638,7 @@ proc makewindow {} {
> > >      bindkey f nextfile
> > >      bind . <F5> updatecommits
> > >      bindmodfunctionkey Shift 5 reloadcommits
> > > +    bind . <F7> fetch
> > >      bind . <F2> showrefs
> > >      bindmodfunctionkey Shift 4 {newview 0}
> > >      bind . <F4> edit_or_newview
> > > @@ -3125,6 +3155,7 @@ proc keys {} {
> > >  [mc "<%s-KP->        Decrease font size" $M1T]
> > >  [mc "<%s-minus>      Decrease font size" $M1T]
> > >  [mc "<F5>            Update"]
> > > +[mc "<F7>            Fetch"]
> > >  " \
> > >              -justify left -bg $bgcolor -border 2 -relief groove
> > >      pack $w.m -side top -fill both -padx 2 -pady 2

Paul.

      parent reply	other threads:[~2021-11-05  7:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-22 15:16 [PATCH] gitk: add option to perform 'git fetch' command Vladimir Chigarev via GitGitGadget
2021-04-07 19:43 ` Johannes Schindelin
     [not found]   ` <CAGyQznWL_X+-2jyfJCOkTGsp5Ucd3aomQ0Rf5W4nSo8sEz9d5Q@mail.gmail.com>
2021-11-05  7:35     ` Paul Mackerras [this message]

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=YYTey3B8Bw7vJo+u@thinks.paulus.ozlabs.org \
    --to=paulus@ozlabs.org \
    --cc=chiga17@gmail.com \
    --cc=chiga17@mail.ru \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    /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.