git-gui: GUI support for running 'git remote prune <name>'
commit5b6ffff644237682c5a20e8ec0a16164bdeb3bfb
authorShawn O. Pearce <spearce@spearce.org>
Mon, 28 May 2007 15:04:59 +0000 (28 11:04 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 28 May 2007 21:50:40 +0000 (28 17:50 -0400)
tree92f7b4ef0b1d753ddc5974f56265751f0ebc4a0f
parent994a794288d73ee9151481805c2ea98f448cf3e0
git-gui: GUI support for running 'git remote prune <name>'

In some workflows it is common for a large number of temporary
branches to be created in a remote repository, get fetched to
clients that typically only use git-gui, and then later have
those branches deleted from the remote repository once they have
been fully merged into all destination branches.  Users of git-gui
would obviously like to have their local tracking branches cleaned
up for them, otherwise their local tracking branch namespace would
grow out of control.

The best known way to remove these tracking branches is to run
"git remote prune <remotename>".  Even though it is more of a
Porcelain command than plumbing I'm invoking it through the UI,
because frankly I don't see a reason to reimplement its ls-remote
output filtering and config file parsing.

A new configuration option (gui.pruneduringfetch) can be used to
automatically enable running "git remote prune <remotename>" after
the fetch of that remote also completes successfully.  This is off
by default as it require an additional network connection and is
not very fast on Cygwin if a large number of tracking branches have
been removed (due to the 2 fork+exec calls per branch).

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
lib/option.tcl
lib/remote.tcl
lib/transport.tcl