git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marek Zawirski <marek.zawirski@gmail.com>
To: robin.rosenberg@dewire.com, spearce@spearce.org
Cc: git@vger.kernel.org, Marek Zawirski <marek.zawirski@gmail.com>
Subject: [EGIT PATCH 3/6] Handle null remoteName in RefSpecPanel better
Date: Wed, 27 Aug 2008 20:41:43 +0200	[thread overview]
Message-ID: <1219862506-11075-4-git-send-email-marek.zawirski@gmail.com> (raw)
In-Reply-To: <1219862506-11075-3-git-send-email-marek.zawirski@gmail.com>

Create more sensible "all branches" ref spec
(refs/remotes/choose_remote_name/*), and don't use RemoteConfig
contructor with null remoteName value, as this behavior is unspecified.

Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
 .../src/org/spearce/egit/ui/UIText.java            |    3 ++
 .../egit/ui/internal/components/RefSpecPanel.java  |   30 +++++++++++++------
 .../src/org/spearce/egit/ui/uitext.properties      |    1 +
 3 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
index b45d2e9..2bbe218 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java
@@ -182,6 +182,9 @@
 	public static String RefSpecPanel_refChooseSomeWildcard;
 
 	/** */
+	public static String RefSpecPanel_refChooseRemoteName;
+
+	/** */
 	public static String RefSpecPanel_clickToChange;
 
 	/** */
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java
index de82480..a2661ae 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java
@@ -413,14 +413,18 @@ public void setAssistanceData(final Repository localRepo,
 		}
 
 		try {
-			final RemoteConfig rc = new RemoteConfig(localDb.getConfig(),
-					remoteName);
-			if (pushSpecs)
-				predefinedConfigured = rc.getPushRefSpecs();
-			else
-				predefinedConfigured = rc.getFetchRefSpecs();
-			for (final RefSpec spec : predefinedConfigured)
-				addRefSpec(spec);
+			if (remoteName == null)
+				predefinedConfigured = Collections.emptyList();
+			else {
+				final RemoteConfig rc = new RemoteConfig(localDb.getConfig(),
+						remoteName);
+				if (pushSpecs)
+					predefinedConfigured = rc.getPushRefSpecs();
+				else
+					predefinedConfigured = rc.getFetchRefSpecs();
+				for (final RefSpec spec : predefinedConfigured)
+					addRefSpec(spec);
+			}
 		} catch (URISyntaxException e) {
 			predefinedConfigured = null;
 			ErrorDialog.openError(panel.getShell(),
@@ -432,9 +436,15 @@ public void setAssistanceData(final Repository localRepo,
 		updateAddPredefinedButton(addConfiguredButton, predefinedConfigured);
 		if (pushSpecs)
 			predefinedBranches = Transport.REFSPEC_PUSH_ALL;
-		else
+		else {
+			final String r;
+			if (remoteName == null)
+				r = UIText.RefSpecPanel_refChooseRemoteName;
+			else
+				r = remoteName;
 			predefinedBranches = new RefSpec("refs/heads/*:refs/remotes/" //$NON-NLS-1$
-					+ remoteName + "/*"); //$NON-NLS-1$
+					+ r + "/*"); //$NON-NLS-1$
+		}
 		updateAddPredefinedButton(addBranchesButton, predefinedBranches);
 		setEnable(true);
 	}
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties b/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
index 7fcc77b..c2b91f7 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties
@@ -116,6 +116,7 @@ RefSpecPanel_predefinedTagsDescription=Add specification covering all tags.
 RefSpecPanel_push=push
 RefSpecPanel_refChooseSome=choose/some/ref
 RefSpecPanel_refChooseSomeWildcard=choose/some/ref/*
+RefSpecPanel_refChooseRemoteName=choose_remote_name
 RefSpecPanel_removeAll=Remove all specs
 RefSpecPanel_removeAllDescription=Remove all speficications.
 RefSpecPanel_removeDescription=Click to remove this specification.
-- 
1.5.6.3

  reply	other threads:[~2008-08-27 18:43 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-27 18:41 [EGIT PATCH 0/6] Fetch UI, minor improvements/fixes Marek Zawirski
2008-08-27 18:41 ` [EGIT PATCH 1/6] Reduce PushOperationResult contructor visibility, accept null instead Marek Zawirski
2008-08-27 18:41   ` [EGIT PATCH 2/6] Fix RefSpecPanel to not display mode column in fetch version Marek Zawirski
2008-08-27 18:41     ` Marek Zawirski [this message]
2008-08-27 18:41       ` [EGIT PATCH 4/6] Add tag fetching strategy selection to fetch version of RefSpecPage Marek Zawirski
2008-08-27 18:41         ` [EGIT PATCH 5/6] Rename ResultDialog to PushResultDialog Marek Zawirski
2008-08-27 18:41           ` [EGIT PATCH 6/6] Fetch GUI Marek Zawirski
2008-08-27 19:48 ` [EGIT PATCH 0/6] Fetch UI, minor improvements/fixes Robin Rosenberg
2008-08-27 20:09   ` Marek Zawirski
2008-08-27 21:51     ` 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=1219862506-11075-4-git-send-email-marek.zawirski@gmail.com \
    --to=marek.zawirski@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=robin.rosenberg@dewire.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).