diff options
16 files changed, 85 insertions, 58 deletions
diff --git a/org.eclipse.egit.ui/META-INF/MANIFEST.MF b/org.eclipse.egit.ui/META-INF/MANIFEST.MF index daf28b100a..74ea01a2a3 100644 --- a/org.eclipse.egit.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.egit.ui/META-INF/MANIFEST.MF @@ -91,6 +91,7 @@ Export-Package: org.eclipse.egit.ui;version="5.6.0";x-friends:="org.eclipse.egit org.eclipse.egit.ui.internal.factories;version="5.6.0";x-internal:=true, org.eclipse.egit.ui.internal.fetch;version="5.6.0";x-friends:="org.eclipse.mylyn.github.ui", org.eclipse.egit.ui.internal.gerrit;version="5.6.0";x-internal:=true, + org.eclipse.egit.ui.internal.groups;version="5.6.0";x-internal:=true, org.eclipse.egit.ui.internal.handler;version="5.6.0";x-internal:=true, org.eclipse.egit.ui.internal.history;version="5.6.0";x-internal:=true, org.eclipse.egit.ui.internal.history.command;version="5.6.0";x-internal:=true, diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java index 74bf75b02e..d14ec4abed 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java @@ -3859,15 +3859,6 @@ public class UIText extends NLS { public static String RepositoriesView_RepoGroup_EmptyNameError; /** */ - public static String RepositoriesView_RepoGroup_InvalidNameException; - - /** */ - public static String RepositoriesView_RepoGroup_GroupExists; - - /** */ - public static String RepositoriesView_RepoGroup_ErrorSavePreferences; - - /** */ public static String RepositoriesViewActionProvider_OpenWithMenu; /** */ @@ -3898,6 +3889,18 @@ public class UIText extends NLS { public static String RepositoriesViewLabelProvider_UnbornBranchText; /** */ + public static String RepositoryGroups_InvalidNameError; + + /** */ + public static String RepositoryGroups_DuplicateGroupNameError; + + /** */ + public static String RepositoryGroups_LoadPreferencesInvalidName; + + /** */ + public static String RepositoryGroups_SavePreferencesError; + + /** */ public static String DialogsPreferencePage_autoConfigureLfs; /** */ diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryGroupsMenu.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryGroupsMenu.java index 9fe3b6a3d5..e8d48de454 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryGroupsMenu.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryGroupsMenu.java @@ -21,10 +21,10 @@ import java.util.stream.Collectors; import org.eclipse.egit.ui.internal.CommonUtils; import org.eclipse.egit.ui.internal.UIIcons; import org.eclipse.egit.ui.internal.UIText; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.RepositoriesView; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.egit.ui.internal.repository.tree.command.CreateRepositoryGroupCommand; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroup.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/groups/RepositoryGroup.java index 272b437c62..b532ad3a48 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroup.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/groups/RepositoryGroup.java @@ -8,7 +8,7 @@ * * SPDX-License-Identifier: EPL-2.0 *******************************************************************************/ -package org.eclipse.egit.ui.internal.repository.tree; +package org.eclipse.egit.ui.internal.groups; import java.io.File; import java.util.ArrayList; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroups.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/groups/RepositoryGroups.java index fb179547da..50e7e64ce5 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroups.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/groups/RepositoryGroups.java @@ -8,9 +8,10 @@ * * SPDX-License-Identifier: EPL-2.0 *******************************************************************************/ -package org.eclipse.egit.ui.internal.repository.tree; +package org.eclipse.egit.ui.internal.groups; import java.io.File; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -21,34 +22,38 @@ import java.util.stream.Collectors; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.egit.core.RepositoryUtil; +import org.eclipse.egit.core.internal.Utils; import org.eclipse.egit.ui.Activator; import org.eclipse.egit.ui.internal.UIText; import org.eclipse.jgit.util.StringUtils; import org.osgi.service.prefs.BackingStoreException; /** - * This class manages the repository groups. The data is stored in the + * This singleton manages the repository groups. The data is stored in the * preferences. */ -public class RepositoryGroups { +public final class RepositoryGroups { - private static RepositoryGroups INSTANCE = new RepositoryGroups(); + private static final RepositoryGroups INSTANCE = new RepositoryGroups(); - private Map<UUID, RepositoryGroup> groupMap = new HashMap<>(); + private static final String PREFS_GROUP_NAME_PREFIX = "RepositoryGroups."; //$NON-NLS-1$ - private RepositoryUtil util = Activator.getDefault().getRepositoryUtil(); + private static final String PREFS_GROUPS = PREFS_GROUP_NAME_PREFIX + + "uuids"; //$NON-NLS-1$ - private IEclipsePreferences preferences = util.getPreferences(); + private static final String PREFS_GROUP_PREFIX = PREFS_GROUP_NAME_PREFIX + + "group."; //$NON-NLS-1$ - private static final String PREFS_GROUPS = "GitRepositoriesView.RepositoryGroups.uuids"; //$NON-NLS-1$ + private static final String EMPTY_STRING = ""; //$NON-NLS-1$ - private static final String PREFS_GROUP_NAME_PREFIX = "GitRepositoriesView.RepositoryGroups."; //$NON-NLS-1$ + private static final String SEPARATOR = "\n";//$NON-NLS-1$ - private static final String PREFS_GROUP_PREFIX = "GitRepositoriesView.RepositoryGroups.group."; //$NON-NLS-1$ + private final Map<UUID, RepositoryGroup> groupMap = new HashMap<>(); - private static final String EMPTY_STRING = ""; //$NON-NLS-1$ + private final RepositoryUtil util = Activator.getDefault() + .getRepositoryUtil(); - private static final String SEPARATOR = "\n";//$NON-NLS-1$ + private final IEclipsePreferences preferences = util.getPreferences(); /** * @return singleton of the repository group manager @@ -62,18 +67,30 @@ public class RepositoryGroups { private RepositoryGroups() { List<String> groups = split( preferences.get(PREFS_GROUPS, EMPTY_STRING)); + List<RepositoryGroup> toDelete = new ArrayList<>(); for (String groupIdString : groups) { UUID groupId = UUID.fromString(groupIdString); String name = preferences .get(PREFS_GROUP_NAME_PREFIX + groupIdString, EMPTY_STRING); + // Guard against corrupted preferences + if (isGroupNameInvalid(name)) { + toDelete.add(new RepositoryGroup(groupId, name)); + Activator.logWarning(MessageFormat.format( + UIText.RepositoryGroups_LoadPreferencesInvalidName, + name), null); + continue; + } List<File> repos = split(preferences .get(PREFS_GROUP_PREFIX + groupIdString, EMPTY_STRING)) .stream().map(util::getAbsoluteRepositoryPath) - .map(File::new) + .map(File::new).filter(File::isDirectory) .collect(Collectors.toList()); RepositoryGroup group = new RepositoryGroup(groupId, name, repos); groupMap.put(groupId, group); } + if (!toDelete.isEmpty()) { + delete(toDelete); + } } private List<String> split(String input) { @@ -96,16 +113,18 @@ public class RepositoryGroups { * @return id of the new group */ public UUID createGroup(String groupName) { + checkGroupName(groupName); if (!groupExists(groupName)) { - String trimmedName = groupName.trim(); UUID groupId = UUID.randomUUID(); - RepositoryGroup group = new RepositoryGroup(groupId, trimmedName); + RepositoryGroup group = new RepositoryGroup(groupId, groupName); groupMap.put(groupId, group); savePreferences(); return groupId; } else { throw new IllegalStateException( - UIText.RepositoriesView_RepoGroup_GroupExists); + MessageFormat.format( + UIText.RepositoryGroups_DuplicateGroupNameError, + groupName)); } } @@ -118,7 +137,7 @@ public class RepositoryGroups { public void renameGroup(RepositoryGroup group, String newName) { checkGroupName(newName); RepositoryGroup myGroup = groupMap.get(group.getGroupId()); - if (myGroup != null) { + if (myGroup != null && !newName.equals(myGroup.getName())) { myGroup.setGroupName(newName); savePreferences(); } @@ -128,22 +147,22 @@ public class RepositoryGroups { * @param groupName * name of the group * @return true if and only if a group of the given name already exists - * @throws IllegalArgumentException - * if the group name is not valid - * */ - public boolean groupExists(String groupName) - throws IllegalArgumentException { - checkGroupName(groupName); + public boolean groupExists(String groupName) { return groupMap.values().stream() .anyMatch(group -> group.getName().equals(groupName)); } - private void checkGroupName(String groupName) { - if (StringUtils.isEmptyOrNull(groupName) - || !groupName.equals(groupName.trim())) { + private static boolean isGroupNameInvalid(String groupName) { + return StringUtils.isEmptyOrNull(groupName) + || !groupName.equals(groupName.trim()) + || Utils.isMultiLine(groupName); + } + + private static void checkGroupName(String groupName) { + if (isGroupNameInvalid(groupName)) { throw new IllegalArgumentException( - UIText.RepositoriesView_RepoGroup_InvalidNameException); + UIText.RepositoryGroups_InvalidNameError); } } @@ -207,7 +226,7 @@ public class RepositoryGroups { preferences.flush(); } catch (BackingStoreException e) { Activator.logError( - UIText.RepositoriesView_RepoGroup_ErrorSavePreferences, e); + UIText.RepositoryGroups_SavePreferencesError, e); } } @@ -229,12 +248,12 @@ public class RepositoryGroups { } /** - * @param repositoryDirecptories + * @param repositoryDirectories * repository directories to be removed from all groups */ - public void removeFromGroups(List<File> repositoryDirecptories) { + public void removeFromGroups(List<File> repositoryDirectories) { for (RepositoryGroup group : groupMap.values()) { - group.removeRepositoryDirectories(repositoryDirecptories); + group.removeRepositoryDirectories(repositoryDirectories); } savePreferences(); } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java index d9cb226535..c03b32f8f8 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java @@ -21,8 +21,8 @@ import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.egit.ui.Activator; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType; import org.eclipse.jface.util.LocalSelectionTransfer; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java index 3d7a7a01d2..a35d73aba3 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java @@ -52,6 +52,8 @@ import org.eclipse.egit.core.RepositoryUtil; import org.eclipse.egit.ui.Activator; import org.eclipse.egit.ui.internal.CommonUtils; import org.eclipse.egit.ui.internal.UIText; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.AdditionalRefNode; import org.eclipse.egit.ui.internal.repository.tree.AdditionalRefsNode; import org.eclipse.egit.ui.internal.repository.tree.BranchHierarchyNode; @@ -66,9 +68,7 @@ import org.eclipse.egit.ui.internal.repository.tree.RefNode; import org.eclipse.egit.ui.internal.repository.tree.RemoteNode; import org.eclipse.egit.ui.internal.repository.tree.RemoteTrackingNode; import org.eclipse.egit.ui.internal.repository.tree.RemotesNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.egit.ui.internal.repository.tree.StashNode; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java index 68abc6fe07..d23cd098d7 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java @@ -32,9 +32,9 @@ import org.eclipse.egit.ui.internal.CommonUtils; import org.eclipse.egit.ui.internal.UIText; import org.eclipse.egit.ui.internal.decorators.DecoratorRepositoryStateCache; import org.eclipse.egit.ui.internal.decorators.GitDecorator; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.AdditionalRefNode; import org.eclipse.egit.ui.internal.repository.tree.RefNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java index dd2b6ddad2..eda759d0b8 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java @@ -18,9 +18,9 @@ package org.eclipse.egit.ui.internal.repository; import java.util.WeakHashMap; import org.eclipse.egit.ui.internal.GitLabels; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.AdditionalRefNode; import org.eclipse.egit.ui.internal.repository.tree.RefNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroupNode.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroupNode.java index 4f3e7cc170..7dadb68886 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroupNode.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryGroupNode.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.egit.ui.internal.repository.tree; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; + /** * This class represents the tree node of a repository group. */ diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java index fcd0202410..244993b5d3 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java @@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.egit.ui.internal.CommonUtils; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/CreateRepositoryGroupCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/CreateRepositoryGroupCommand.java index ea1fa392f1..f6b34a5144 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/CreateRepositoryGroupCommand.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/CreateRepositoryGroupCommand.java @@ -18,7 +18,7 @@ import java.util.stream.Collectors; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.egit.ui.internal.UIText; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType; @@ -76,7 +76,7 @@ public class CreateRepositoryGroupCommand return UIText.RepositoriesView_RepoGroup_EmptyNameError; } if (groupsUtil.groupExists(name.trim())) { - return UIText.RepositoriesView_RepoGroup_GroupExists; + return UIText.RepositoryGroups_DuplicateGroupNameError; } return null; }); diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupCommand.java index c90ea607a2..9b792ab623 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupCommand.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupCommand.java @@ -15,9 +15,9 @@ import java.util.List; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; import org.eclipse.jface.window.Window; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RemoveCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RemoveCommand.java index da37736231..091e61356f 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RemoveCommand.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RemoveCommand.java @@ -44,7 +44,7 @@ import org.eclipse.egit.ui.Activator; import org.eclipse.egit.ui.JobFamilies; import org.eclipse.egit.ui.internal.CommonUtils; import org.eclipse.egit.ui.internal.UIText; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType; import org.eclipse.jface.dialogs.IDialogConstants; diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RenameRepositoryGroupCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RenameRepositoryGroupCommand.java index cec7e5fc70..4b279eff73 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RenameRepositoryGroupCommand.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RenameRepositoryGroupCommand.java @@ -15,9 +15,9 @@ import java.util.List; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.egit.ui.internal.UIText; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroup; +import org.eclipse.egit.ui.internal.groups.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroupNode; -import org.eclipse.egit.ui.internal.repository.tree.RepositoryGroups; import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode; /** diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties index 467f196da2..beded88193 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties @@ -1362,9 +1362,6 @@ RepositoriesView_RepoGroup_Rename_Title=Rename Repository Group RepositoriesView_RepoGroup_Rename_IllegalSelection=Only a single repository group can be renamed. RepositoriesView_RepoGroup_EnterName=Enter the name of the repository group: RepositoriesView_RepoGroup_EmptyNameError=A repository group name must not be empty. -RepositoriesView_RepoGroup_InvalidNameException=A repository group name must not be empty or be surrounded by white spaces. -RepositoriesView_RepoGroup_GroupExists=A repository group with this name already exists. -RepositoriesView_RepoGroup_ErrorSavePreferences=Error saving repository group state RepositoriesViewActionProvider_OpenWithMenu=Open Wit&h RepositoriesViewContentProvider_ExceptionNodeText=Exception encountered while fetching children RepositoriesViewContentProvider_ReadReferencesJob=Reading repository references @@ -1375,6 +1372,10 @@ RepositoriesViewLabelProvider_SubmodulesNodeText=Submodules RepositoriesViewLabelProvider_SymbolicRefNodeText=References RepositoriesViewLabelProvider_TagsNodeText=Tags RepositoriesViewLabelProvider_UnbornBranchText=unborn branch; will be created on commit +RepositoryGroups_InvalidNameError=A repository group name must not be empty or be surrounded by white spaces. +RepositoryGroups_DuplicateGroupNameError=Repository group ''{0}'' already exists. +RepositoryGroups_LoadPreferencesInvalidName=Invalid group name in preferences; removing group ''{0}'' +RepositoryGroups_SavePreferencesError=Error saving repository group state DialogsPreferencePage_autoConfigureLfs=Automatically configure LFS without confirmation DialogsPreferencePage_DetachedHeadCombo=D&etached HEAD and checkout of remote-tracking branch |