All of lore.kernel.org
 help / color / mirror / Atom feed
From: pasky@suse.cz
To: git@vger.kernel.org
Cc: spearce@spearce.org
Subject: [PATCH 4/5] git-gui: Add support for removing remotes
Date: Wed, 24 Sep 2008 22:44:02 +0200	[thread overview]
Message-ID: <20080924204616.189163849@suse.cz> (raw)
In-Reply-To: 20080924204358.144077183@suse.cz

[-- Attachment #1: t/git-gui/remote-rm.diff --]
[-- Type: text/plain, Size: 2173 bytes --]

We introduce new submenu Remote -> Remove Remote, allowing to remove
remotes. In the future, we might consider a confirmation popup to avoid
misclicks, but removing a remote is not very lossy operation.

This patch has been sponsored by Novartis.

Signed-off-by: Petr Baudis <pasky@suse.cz>

---
 git-gui/lib/remote.tcl |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/git-gui/lib/remote.tcl b/git-gui/lib/remote.tcl
index 643f0bc..1852247 100644
--- a/git-gui/lib/remote.tcl
+++ b/git-gui/lib/remote.tcl
@@ -137,6 +137,7 @@ proc add_fetch_entry {r} {
 	set remote_m .mbar.remote
 	set fetch_m $remote_m.fetch
 	set prune_m $remote_m.prune
+	set remove_m $remote_m.remove
 	set enable 0
 	if {![catch {set a $repo_config(remote.$r.url)}]} {
 		if {![catch {set a $repo_config(remote.$r.fetch)}]} {
@@ -157,6 +158,11 @@ proc add_fetch_entry {r} {
 
 	if {$enable} {
 		if {![winfo exists $fetch_m]} {
+			menu $remove_m
+			$remote_m insert 0 cascade \
+				-label [mc "Remove Remote"] \
+				-menu $remove_m
+
 			menu $prune_m
 			$remote_m insert 0 cascade \
 				-label [mc "Prune from"] \
@@ -174,6 +180,9 @@ proc add_fetch_entry {r} {
 		$prune_m add command \
 			-label $r \
 			-command [list prune_from $r]
+		$remove_m add command \
+			-label $r \
+			-command [list remove_remote $r]
 	}
 }
 
@@ -236,3 +245,31 @@ proc add_single_remote {name location} {
 	add_fetch_entry $name
 	add_push_entry $name
 }
+
+proc delete_from_menu {menu name} {
+	if {[winfo exists $menu]} {
+		$menu delete $name
+	}
+}
+
+proc remove_remote {name} {
+	global all_remotes repo_config
+
+	git remote rm $name
+
+	catch {
+		# Missing values are ok
+		unset repo_config(remote.$name.url)
+		unset repo_config(remote.$name.fetch)
+		unset repo_config(remote.$name.push)
+	}
+
+	set i [lsearch -exact all_remotes $name]
+	lreplace all_remotes $i $i
+
+	set remote_m .mbar.remote
+	delete_from_menu $remote_m.fetch $name
+	delete_from_menu $remote_m.prune $name
+	delete_from_menu $remote_m.remove $name
+	delete_from_menu $remote_m.push $name
+}
-- 
tg: (f30d624..) t/git-gui/remote-rm (depends on: t/git-gui/remote-add)

  parent reply	other threads:[~2008-09-24 20:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-24 20:43 [PATCH 0/5] git-gui: Remotes manipulation enhancements pasky
2008-09-24 20:43 ` [PATCH 1/5] git-gui: Clarify the Remote -> Delete... action pasky
2008-09-24 20:44 ` [PATCH 2/5] git-gui: Squash populate_{push,fetch}_menu to populate_remotes_menu pasky
2008-09-24 20:44 ` [PATCH 3/5] git-gui: Add support for adding remotes pasky
2008-09-24 23:39   ` [PATCH] git-gui: Fix fetching from remotes when adding them Petr Baudis
2008-09-24 20:44 ` pasky [this message]
2008-09-24 23:32   ` [PATCH] Fix removing non-pushable remotes Petr Baudis
2008-09-24 20:44 ` [PATCH 5/5] git-gui: mkdir -p when initializing new remote repository pasky
2008-09-24 22:51 ` On Sponsor Notices Petr Baudis
2008-09-24 22:55   ` Heikki Orsila
2008-09-24 23:43   ` Martin Langhoff
2008-09-24 23:47     ` Petr Baudis
2008-09-24 23:50       ` Martin Langhoff
2008-09-25  2:36   ` Nicolas Pitre
2008-09-25 10:15     ` Petr Baudis
2008-09-25 14:20       ` Nicolas Pitre
2008-09-25 14:32         ` Petr Baudis
2008-09-25 14:35           ` Shawn O. Pearce
2008-09-25  6:12   ` Andreas Ericsson
2008-09-26 13:31   ` A.J. Rossini

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=20080924204616.189163849@suse.cz \
    --to=pasky@suse.cz \
    --cc=git@vger.kernel.org \
    --cc=spearce@spearce.org \
    /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.