git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[EGIT PATCH 3/6] Handle null remoteName in RefSpecPanel better

From
MZMarek Zawirski <marek.zawirski@gmail.com>
Date
Aug 27, 2008, 18:41 UTC
Message-ID
<1219862506-11075-4-git-send-email-marek.zawirski@gmail.com>
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
Previous: Marek ZawirskiNext: Marek Zawirski
Message 4 of 10 in “Fetch UI, minor improvements/fixes”
  1. 0/6 Fetch UI, minor improvements/fixesMarek Zawirski, Aug 27, 2008
  2. 1/6 Reduce PushOperationResult contructor visibility, accept null insteadMarek Zawirski, Aug 27, 2008
  3. 2/6 Fix RefSpecPanel to not display mode column in fetch versionMarek Zawirski, Aug 27, 2008
  4. 3/6 Handle null remoteName in RefSpecPanel betterMarek Zawirski, Aug 27, 2008
  5. 4/6 Add tag fetching strategy selection to fetch version of RefSpecPageMarek Zawirski, Aug 27, 2008
  6. 5/6 Rename ResultDialog to PushResultDialogMarek Zawirski, Aug 27, 2008
  7. 6/6 Fetch GUIMarek Zawirski, Aug 27, 2008
  8. Robin RosenbergAug 27, 2008
  9. Marek ZawirskiAug 27, 2008
  10. Shawn O. PearceAug 27, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.