diff --git a/plugin/src/main/java/git4idea/actions/GitCheckoutRevisionAction.java b/plugin/src/main/java/git4idea/actions/GitCheckoutRevisionAction.java
index bb64ff6..3707ac1 100644
--- a/plugin/src/main/java/git4idea/actions/GitCheckoutRevisionAction.java
+++ b/plugin/src/main/java/git4idea/actions/GitCheckoutRevisionAction.java
@@ -15,18 +15,24 @@
*/
package git4idea.actions;
-import consulo.ide.ServiceManager;
+import consulo.annotation.component.ActionImpl;
+import consulo.git.localize.GitLocalize;
import consulo.versionControlSystem.log.Hash;
import git4idea.branch.GitBrancher;
import git4idea.repo.GitRepository;
import jakarta.annotation.Nonnull;
-import java.util.Collections;
+import java.util.List;
+@ActionImpl(id = "Git.CheckoutRevision")
public class GitCheckoutRevisionAction extends GitLogSingleCommitAction {
+ public GitCheckoutRevisionAction() {
+ getTemplatePresentation().setTextValue(GitLocalize.actionCheckoutRevisionText());
+ }
+
@Override
protected void actionPerformed(@Nonnull GitRepository repository, @Nonnull Hash commit) {
- GitBrancher brancher = ServiceManager.getService(repository.getProject(), GitBrancher.class);
- brancher.checkout(commit.asString(), false, Collections.singletonList(repository), null);
+ GitBrancher brancher = repository.getProject().getInstance(GitBrancher.class);
+ brancher.checkout(commit.asString(), false, List.of(repository), null);
}
}
diff --git a/plugin/src/main/java/git4idea/actions/GitCreateNewBranchAction.java b/plugin/src/main/java/git4idea/actions/GitCreateNewBranchAction.java
index ea47618..ec141fc 100644
--- a/plugin/src/main/java/git4idea/actions/GitCreateNewBranchAction.java
+++ b/plugin/src/main/java/git4idea/actions/GitCreateNewBranchAction.java
@@ -17,23 +17,34 @@
import java.util.Collections;
+import consulo.annotation.component.ActionImpl;
+import consulo.component.ComponentManager;
+import consulo.git.localize.GitLocalize;
import consulo.project.Project;
import consulo.versionControlSystem.log.Hash;
-import consulo.ide.ServiceManager;
import git4idea.branch.GitBranchUtil;
import git4idea.branch.GitBrancher;
import git4idea.repo.GitRepository;
import jakarta.annotation.Nonnull;
+@ActionImpl(id = "Git.CreateNewBranch")
public class GitCreateNewBranchAction extends GitLogSingleCommitAction {
+ public GitCreateNewBranchAction() {
+ getTemplatePresentation().setTextValue(GitLocalize.actionCreateNewBranchText());
+ getTemplatePresentation().setDescriptionValue(GitLocalize.actionCreateNewBranchDescription());
+ }
+
@Override
protected void actionPerformed(@Nonnull GitRepository repository, @Nonnull Hash commit) {
Project project = repository.getProject();
String reference = commit.asString();
- final String name =
- GitBranchUtil.getNewBranchNameFromUser(project, Collections.singleton(repository), "Checkout New Branch From " + reference);
+ String name = GitBranchUtil.getNewBranchNameFromUser(
+ project,
+ Collections.singleton(repository),
+ GitLocalize.dialogCheckoutNewBranchFrom0Title(reference).get()
+ );
if (name != null) {
- GitBrancher brancher = ServiceManager.getService(project, GitBrancher.class);
+ GitBrancher brancher = project.getInstance(GitBrancher.class);
brancher.checkoutNewBranchStartingFrom(name, reference, Collections.singletonList(repository), null);
}
}
diff --git a/plugin/src/main/java/git4idea/actions/GitCreateTagAction.java b/plugin/src/main/java/git4idea/actions/GitCreateTagAction.java
index 3d70589..3205bb8 100644
--- a/plugin/src/main/java/git4idea/actions/GitCreateTagAction.java
+++ b/plugin/src/main/java/git4idea/actions/GitCreateTagAction.java
@@ -15,13 +15,23 @@
*/
package git4idea.actions;
+import consulo.annotation.component.ActionImpl;
+import consulo.git.localize.GitLocalize;
+import consulo.ui.annotation.RequiredUIAccess;
import jakarta.annotation.Nonnull;
import consulo.versionControlSystem.log.Hash;
import git4idea.history.wholeTree.GitCreateNewTag;
import git4idea.repo.GitRepository;
+@ActionImpl(id = "Git.CreateNewTag")
public class GitCreateTagAction extends GitLogSingleCommitAction {
+ public GitCreateTagAction() {
+ getTemplatePresentation().setTextValue(GitLocalize.actionCreateNewTagText());
+ getTemplatePresentation().setDescriptionValue(GitLocalize.actionCreateNewTagDescription());
+ }
+
@Override
+ @RequiredUIAccess
protected void actionPerformed(@Nonnull GitRepository repository, @Nonnull Hash commit) {
String reference = commit.asString();
new GitCreateNewTag(repository.getProject(), repository, reference, null).execute();
diff --git a/plugin/src/main/java/git4idea/actions/GitLogSingleCommitAction.java b/plugin/src/main/java/git4idea/actions/GitLogSingleCommitAction.java
index 6746ba6..b669b52 100644
--- a/plugin/src/main/java/git4idea/actions/GitLogSingleCommitAction.java
+++ b/plugin/src/main/java/git4idea/actions/GitLogSingleCommitAction.java
@@ -15,7 +15,6 @@
*/
package git4idea.actions;
-import consulo.ide.ServiceManager;
import consulo.project.Project;
import consulo.versionControlSystem.distributed.action.VcsLogSingleCommitAction;
import consulo.versionControlSystem.distributed.repository.AbstractRepositoryManager;
diff --git a/plugin/src/main/java/git4idea/actions/LogContextMenuGroup.java b/plugin/src/main/java/git4idea/actions/LogContextMenuGroup.java
new file mode 100644
index 0000000..2b7f601
--- /dev/null
+++ b/plugin/src/main/java/git4idea/actions/LogContextMenuGroup.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2013-2025 consulo.io
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package git4idea.actions;
+
+import consulo.annotation.component.ActionImpl;
+import consulo.annotation.component.ActionParentRef;
+import consulo.annotation.component.ActionRef;
+import consulo.application.dumb.DumbAware;
+import consulo.git.localize.GitLocalize;
+import consulo.ui.ex.action.AnSeparator;
+import consulo.ui.ex.action.DefaultActionGroup;
+import git4idea.reset.GitResetAction;
+
+/**
+ * @author UNV
+ * @since 2025-08-28
+ */
+@ActionImpl(
+ id = "Git.Log.ContextMenu",
+ children = {
+ @ActionRef(type = AnSeparator.class),
+ @ActionRef(type = GitCheckoutRevisionAction.class),
+ @ActionRef(type = GitCreateNewBranchAction.class),
+ @ActionRef(type = GitCreateTagAction.class),
+ @ActionRef(type = AnSeparator.class),
+ @ActionRef(type = GitResetAction.class)
+ },
+ parents = @ActionParentRef(@ActionRef(id = "Vcs.Log.ContextMenu"))
+)
+public class LogContextMenuGroup extends DefaultActionGroup implements DumbAware {
+ public LogContextMenuGroup() {
+ super(GitLocalize.groupLogContextMenuText(), false);
+ }
+}
diff --git a/plugin/src/main/java/git4idea/actions/LogToolbarGroup.java b/plugin/src/main/java/git4idea/actions/LogToolbarGroup.java
new file mode 100644
index 0000000..f8fd8c1
--- /dev/null
+++ b/plugin/src/main/java/git4idea/actions/LogToolbarGroup.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2013-2025 consulo.io
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package git4idea.actions;
+
+import consulo.annotation.component.ActionImpl;
+import consulo.annotation.component.ActionParentRef;
+import consulo.annotation.component.ActionRef;
+import consulo.application.dumb.DumbAware;
+import consulo.git.localize.GitLocalize;
+import consulo.ui.ex.action.DefaultActionGroup;
+import git4idea.branch.DeepCompareAction;
+
+/**
+ * @author UNV
+ * @since 2025-08-28
+ */
+@ActionImpl(
+ id = "Git.Log.Toolbar",
+ children = @ActionRef(type = DeepCompareAction.class),
+ parents = @ActionParentRef(@ActionRef(id = "Vcs.Log.Toolbar"))
+)
+public class LogToolbarGroup extends DefaultActionGroup implements DumbAware {
+ public LogToolbarGroup() {
+ super(GitLocalize.groupLogToolbarText(), false);
+ }
+}
diff --git a/plugin/src/main/java/git4idea/branch/DeepCompareAction.java b/plugin/src/main/java/git4idea/branch/DeepCompareAction.java
index 544be05..69590c9 100644
--- a/plugin/src/main/java/git4idea/branch/DeepCompareAction.java
+++ b/plugin/src/main/java/git4idea/branch/DeepCompareAction.java
@@ -15,7 +15,10 @@
*/
package git4idea.branch;
+import consulo.annotation.component.ActionImpl;
import consulo.application.dumb.DumbAware;
+import consulo.git.icon.GitIconGroup;
+import consulo.git.localize.GitLocalize;
import consulo.ide.impl.idea.vcs.log.data.VcsLogBranchFilterImpl;
import consulo.ide.impl.idea.vcs.log.ui.filter.BranchPopupBuilder;
import consulo.localize.LocalizeValue;
@@ -38,106 +41,120 @@
import java.util.Set;
import java.util.function.Consumer;
+@ActionImpl(id = "Git.Log.DeepCompare")
public class DeepCompareAction extends ToggleAction implements DumbAware {
- @Override
- public boolean isSelected(AnActionEvent e) {
- Project project = e.getData(Project.KEY);
- VcsLogUi ui = e.getData(VcsLogUi.KEY);
- if (project == null || ui == null) {
- return false;
+ public DeepCompareAction() {
+ super(GitLocalize.actionLogDeepCompareText(), GitLocalize.actionLogDeepCompareDescription(), GitIconGroup.deepcompare());
}
- return DeepComparator.getInstance(project, ui).hasHighlightingOrInProgress();
- }
- @Nonnull
- @Override
- public ActionUpdateThread getActionUpdateThread() {
- return ActionUpdateThread.EDT;
- }
-
- @RequiredUIAccess
- @Override
- public void setSelected(AnActionEvent e, boolean selected) {
- Project project = e.getData(Project.KEY);
- final VcsLogUi ui = e.getData(VcsLogUi.KEY);
- final VcsLogDataProvider dataProvider = e.getData(VcsLogDataProvider.KEY);
- if (project == null || ui == null || dataProvider == null) {
- return;
+ @Override
+ public boolean isSelected(AnActionEvent e) {
+ Project project = e.getData(Project.KEY);
+ VcsLogUi ui = e.getData(VcsLogUi.KEY);
+ return project != null && ui != null && DeepComparator.getInstance(project, ui).hasHighlightingOrInProgress();
}
- final DeepComparator dc = DeepComparator.getInstance(project, ui);
- if (selected) {
- VcsLogUtil.triggerUsage(e);
- VcsLogBranchFilter branchFilter = ui.getFilterUi().getFilters().getBranchFilter();
- String singleBranchName = branchFilter != null ? VcsLogUtil.getSingleFilteredBranch(branchFilter, ui.getDataPack().getRefs()) : null;
- if (singleBranchName == null) {
- selectBranchAndPerformAction(ui.getDataPack(), e, selectedBranch -> {
- ui.getFilterUi().setFilter(VcsLogBranchFilterImpl.fromBranch(selectedBranch));
- dc.highlightInBackground(selectedBranch, dataProvider);
- }, getAllVisibleRoots(ui));
- return;
- }
- dc.highlightInBackground(singleBranchName, dataProvider);
- }
- else {
- dc.stopAndUnhighlight();
+ @Nonnull
+ @Override
+ public ActionUpdateThread getActionUpdateThread() {
+ return ActionUpdateThread.EDT;
}
- }
- private static void selectBranchAndPerformAction(@Nonnull VcsLogDataPack dataPack,
- @Nonnull AnActionEvent event,
- @Nonnull final Consumer Some configured Git VCS roots are not under Git or have Git repositories in subdirectories without a configured VCS root. Configure. Some configured Git VCS roots are not under Git or have Git repositories in subdirectories without a configured VCS root. Configure. The following files under this root are locally modified. {0} is however fully merged to the following branches: {1}.'
+branch.delete.merged_to.one:
+ text: The branch {0} is however fully merged to the branch {1}.
+branch.delete.not_fully_merged.description:
+ text: The branch {0} is not fully merged to the branch {1}.
Below is the list of unmerged commits.
+branch.delete.not_fully_merged.description.not_on_branch:
+ text: You are currently not on the branch ({1}).
The branch {0} is not fully merged to {2}.
Below is the list of unmerged commits.
+branch.delete.warning:
+ text: You may still delete the branch {0}, but beware that it cannot be undone.
+button.commit.all.files:
+ text: Commit All Files
changes.retrieving:
- text: Retrieving changes for revision {0}
+ text: Retrieving changes for revision {0}
checking.out:
- text: Checkout {0}
+ text: Checkout {0}
checkout.action.name:
- text: Checkout
+ text: Checkout
+checkout.branch:
+ text: Checkout
checkout.branch.label:
- text: '&Checkout'
+ text: '&Checkout'
checkout.branch.name.exists:
- text: Branch with the same name exists. Use override option to force branch creation.
-checkout.branch:
- text: Checkout
-checkout.create.ref.log.tooltip:
- text: If checked the reference log is created for the branch. It allows time based searches. (the option "-l")
+ text: Branch with the same name exists. Use override option to force branch creation.
checkout.create.ref.log:
- text: Create ref &log
-checkout.include.tags.tooltip:
- text: If checked, the combobox will include tags names as well as branches.
+ text: Create ref &log
+checkout.create.ref.log.tooltip:
+ text: If checked the reference log is created for the branch. It allows time based searches. (the option "-l")
checkout.include.tags:
- text: '&Include tags'
+ text: '&Include tags'
+checkout.include.tags.tooltip:
+ text: If checked, the combobox will include tags names as well as branches.
checkout.invalid.new.branch.name:
- text: Invalid new branch name
-checkout.new.branch.tooltip:
- text: Enter name of new branch here. Leave blank if you do not want to create a new branch.
+ text: Invalid new branch name
checkout.new.branch:
- text: As &new branch
+ text: As &new branch
+checkout.new.branch.tooltip:
+ text: Enter name of new branch here. Leave blank if you do not want to create a new branch.
checkout.override.branch:
- text: '&Override'
+ text: '&Override'
checkout.override.tooltip:
- text: If checked a branch will be created even if a branch with the same name already exists. The previous branch will be deleted.
+ text: If checked a branch will be created even if a branch with the same name already exists. The previous branch will be deleted.
checkout.ref.tooltip:
- text: Select branch, tag, or enter commit reference
+ text: Select branch, tag, or enter commit reference
checkout.retrieving.branches.and.tags:
- text: Retrieving branches and tags
+ text: Retrieving branches and tags
checkout.track.branch:
- text: '&Track branch'
+ text: '&Track branch'
checkout.track.tooltip:
- text: If checked, the newly created branch will track original branch during pull.
-checkout.validate.tooltip:
- text: Use this button to validate reference expression if entered manually.
+ text: If checked, the newly created branch will track original branch during pull.
checkout.validate:
- text: '&Validate'
+ text: '&Validate'
+checkout.validate.tooltip:
+ text: Use this button to validate reference expression if entered manually.
checkout.validation.failed:
- text: Source revision validation failed
+ text: Source revision validation failed
clone.button:
- text: Clone
+ text: Clone
clone.destination.directory.description:
- text: Select a parent directory destination directory for clone
+ text: Select a parent directory destination directory for clone
clone.destination.directory.title:
- text: Parent Directory
+ text: Parent Directory
clone.destination.exists.error:
- text: The path {0} exists. Git cannot clone to an existing directory.
+ text: The path {0} exists. Git cannot clone to an existing directory.
+clone.dialog.checking.git.version:
+ text: Checking Git version…
clone.dir.name:
- text: 'Directory &Name:'
+ text: 'Directory &Name:'
clone.invalid.origin:
- text: The origin name is in invalid format.
+ text: The origin name is in invalid format.
clone.invalid.url:
- text: Repository URL is a malformed URL or non-existent directory.
+ text: Repository URL is a malformed URL or non-existent directory.
clone.origin:
- text: '&Origin Name'
+ text: '&Origin Name'
clone.parent.dir:
- text: '&Parent Directory:'
+ text: '&Parent Directory:'
clone.parent.missing.error:
- text: The parent path {0} must exist.
-clone.repository.url:
- text: 'Git &Repository URL:'
+ text: The parent path {0} must exist.
clone.repository.putty.key:
- text: 'Putty Key:'
+ text: 'Putty Key:'
+clone.repository.url:
+ text: 'Git &Repository URL:'
+clone.test:
+ text: '&Test'
+clone.test.connection.title:
+ text: Test Connection
clone.test.failed.error:
- text: Repository test has failed.
+ text: Repository test has failed.
clone.test.success.message:
- text: Connection to repository {0} has been successful.
-clone.test.connection.title:
- text: Test Connection
-clone.test:
- text: '&Test'
+ text: Connection to repository {0} has been successful.
clone.testing:
- text: Testing repository {0}
+ text: Testing repository {0}
clone.title:
- text: Clone Repository
+ text: Clone Repository
clone.url.is.not.directory.error:
- text: Repository URL is not a directory.
+ text: Repository URL is not a directory.
cloning.repository:
- text: Cloning source repository {0}
+ text: Cloning source repository {0}
command.cancelled:
- text: The command was cancelled.
+ text: The command was cancelled.
commit.action.name:
- text: Comm&it
-commit.author.tooltip:
- text: 'Specify a commit author here if it is different from committer. The author should be in the format: Author Name <author@ema.il>'
-commit.author:
- text: '&Author:'
-commit.amend.tooltip:
- text: Merge this commit with the previous one
+ text: Comm&it
commit.amend:
- text: Amend commit
+ text: Amend commit
+commit.amend.tooltip:
+ text: Merge this commit with the previous one
+commit.author:
+ text: '&Author:'
+commit.author.tooltip:
+ text: 'Specify a commit author here if it is different from committer. The author should be in the format: Author Name <author@ema.il>'
commit.partial.merge.message:
- text: |-
- Partial commit during a {0} is not allowed.
- The following files are not included in commit.
- Perform commit with all files included?
+ text: |-
+ Partial commit during a {0} is not allowed.
+ The following files are not included in commit.
+ Perform commit with all files included?
commit.partial.merge.title:
- text: Partial Merge Commit
-commit.push.changes.tooltip:
- text: When this option is enabled, changes are pushed to the server after commit.
+ text: Partial Merge Commit
commit.push.changes:
- text: '&Push Changes'
-common.current.branch.tooltip:
- text: The currently checked out branch.
+ text: '&Push Changes'
+commit.push.changes.tooltip:
+ text: When this option is enabled, changes are pushed to the server after commit.
common.current.branch:
- text: 'Current Branch:'
-common.do.not.show.tooltip:
- text: If this option is selected, the choice will be remembered, and the dialog will not be shown again.
+ text: 'Current Branch:'
+common.current.branch.tooltip:
+ text: The currently checked out branch.
common.do.not.show:
- text: '&Do not show this dialog again'
-common.git.root.tooltip:
- text: Select Git VCS root
+ text: '&Do not show this dialog again'
+common.do.not.show.tooltip:
+ text: If this option is selected, the choice will be remembered, and the dialog will not be shown again.
common.git.root:
- text: 'Git &Root:'
+ text: 'Git &Root:'
+common.git.root.tooltip:
+ text: Select Git VCS root
common.no.active.branch:
- text:
Select files you wish to convert to project default line separators before commit.
+ text: &The following text files have line separator that do not match the project line separator.
Select files you wish to convert to project default line separators before commit.
crlf.convert.leave:
- text: Leave Unchanged
-crlf.convert.none.tooltip:
- text: If this option is selected, the file are not attempted to be converted before commit.
+ text: Leave Unchanged
crlf.convert.none:
- text: Do ¬ convert files
+ text: Do ¬ convert files
+crlf.convert.none.tooltip:
+ text: If this option is selected, the file are not attempted to be converted before commit.
crlf.convert.title:
- text: Invalid Line Separators
+ text: Invalid Line Separators
current.branch.action.name:
- text: CurrentBranch
+ text: CurrentBranch
current.branch.change.tracked:
- text: Change Tracked Branch
+ text: Change Tracked Branch
current.branch.message:
- text: 'Checked out branch: {0}'
+ text: 'Checked out branch: {0}'
current.branch.title:
- text: Configure Tracked Branch
+ text: Configure Tracked Branch
+current.branch.tracked.branch:
+ text: '&Branch:'
current.branch.tracked.branch.none:
- text:
+ text: Select fetched commits policy
fetch.title:
- text: Git Fetch
+ text: Git Fetch
fetching.tags.title:
- text: Updating tags from {0}
+ text: Updating tags from {0}
fetching.title:
- text: Fetching from {0}
+ text: Fetching from {0}
find.git.description:
- text: Select path to Git executable
+ text: Select path to Git executable
find.git.error.title:
- text: Error Running Git
+ text: Error Running Git
find.git.success.title:
- text: Git executed successfully
+ text: Git executed successfully
find.git.title:
- text: Git Configuration
+ text: Git Configuration
find.git.unsupported.message:
- text: {0}
This version is unsupported, and some plugin functionality could fail to work.
The minimal supported version is {1}.
+ text: {0}
This version is unsupported, and some plugin functionality could fail to work.
The minimal supported version is {1}.
fix.roots.button:
- text: Accept
+ text: Accept
fix.roots.list.tooltip:
- text: The suggested list of Git VCS roots, new roots are marked as bold, removed roots are marked as overstriked.
+ text: The suggested list of Git VCS roots, new roots are marked as bold, removed roots are marked as overstriked.
fix.roots.message:
- text: The following Git VCS roots will be used instead of the current Git VCS roots.
+ text: The following Git VCS roots will be used instead of the current Git VCS roots.
fix.roots.title:
- text: Fix Git VCS Roots
+ text: Fix Git VCS Roots
fix.roots.valid.message:
- text: The invalid Git roots have been fixed already.
+ text: The invalid Git roots have been fixed already.
fix.roots.valid.title:
- text: All Git Roots Are Valid
+ text: All Git Roots Are Valid
+gc.action.name:
+ text: Run Garbage Collector
+general.error:
+ text: Git error
getting.history:
- text: Getting history for {0}
+ text: Getting history for {0}
+git.commit.message.empty:
+ text: Please specify commit message
+git.commit.message.empty.title:
+ text: Commit Message Is Empty
git.default.commit.message:
- text: |2+
+ text: |4+
- # Brief commit description here
+ # Brief commit description here
- # Full commit description here (comment lines starting with '#' will not be included)
+ # Full commit description here (comment lines starting with '#' will not be included)
git.error.exit:
- text: The Git process exited with the code {0}
+ text: The Git process exited with the code {0}
+git.executable.dialog.description:
+ text: Specify the full path to Git executable
+git.executable.dialog.error:
+ text: It doesn't appear to be a valid Git executable
+git.executable.dialog.title:
+ text: Git executable
+git.executable.filechooser.description:
+ text: Specify the full path to Git executable
+git.executable.filechooser.title:
+ text: Git executable
+git.executable.notification.description:
+ text: Probably the path to Git executable is not valid.
+git.executable.notification.title:
+ text: Can't start Git
+git.executable.version.is:
+ text: Git version is {0}
+git.light.status.bar.display.name:
+ text: Git
+git.light.status.bar.text:
+ text: 'Git: {0}'
+git.light.status.bar.tooltip:
+ text: 'Current Git Branch: {0}'
+git.new.tag.dialog.tag.name.label:
+ text: Enter the name of new tag
+git.new.tag.dialog.title:
+ text: Create New Tag On {0}
+git.push.active.close:
+ text: Close
git.running:
- text: 'Running: {0}'
+ text: 'Running: {0}'
+git.status.bar.widget.name:
+ text: Git Branch
+git.status.bar.widget.text.cherry.pick:
+ text: Cherry-picking in {0}
+git.status.bar.widget.text.merge:
+ text: Merging {0}
+git.status.bar.widget.text.rebase:
+ text: Rebasing {0}
+git.status.bar.widget.text.revert:
+ text: Reverting in {0}
+git.unstash.clear.confirmation.message:
+ text: Remove all stashes? This cannot be undone.
+git.unstash.clear.confirmation.title:
+ text: Remove all stashes?
+git.unstash.drop.confirmation.message:
+ text: Do you want to remove {0}?
"{1}"
+git.unstash.drop.confirmation.title:
+ text: Remove stash {0}?
+git.vcs.config.convert.ask:
+ text: Ask before conversion
git.vcs.config.convert.crlf:
- text: '&Line Separators Conversion:'
+ text: '&Line Separators Conversion:'
git.vcs.config.convert.do.not.convert:
- text: Do not convert
+ text: Do not convert
git.vcs.config.convert.project:
- text: Convert to project line separators
-git.vcs.config.convert.ask:
- text: Ask before conversion
+ text: Convert to project line separators
git.vcs.config.convert.tooltip:
- text: Specify what to do if line separators in a file and in the project code style are different:
Note that this setting has nothing common with Git autocrlf and other Git settings.
+ text: Specify what to do if line separators in a file and in the project code style are different:
Note that this setting has nothing common with Git autocrlf and other Git settings.
git.vcs.config.path.label:
- text: 'Path to &Git executable:'
+ text: 'Path to &Git executable:'
+git.vcs.config.ssh.mode:
+ text: '&SSH executable:'
git.vcs.config.ssh.mode.idea:
- text: Built-in
+ text: Built-in
git.vcs.config.ssh.mode.native:
- text: Native
+ text: Native
git.vcs.config.ssh.mode.putty:
- text: Putty
+ text: Putty
git.vcs.config.ssh.mode.tooltip:
- text: Specify the version of SSH to be used with Git.
The native implementation might cause hangups on some platforms. In native case, you also might need to configure ssh-askpass for your platform to receive GUI prompts for passwords.
-git.vcs.config.ssh.mode:
- text: '&SSH executable:'
-git.vcs.config.test.label:
- text: 'Test '
+ text: Specify the version of SSH to be used with Git.
The native implementation might cause hangups on some platforms. In native case, you also might need to configure ssh-askpass for your platform to receive GUI prompts for passwords.
git.vcs.config.test:
- text: '&Test'
+ text: '&Test'
+git.vcs.config.test.label:
+ text: 'Test '
+git4idea.vcs.name:
+ text: Git
+group.Git.MainMenu.LocalChanges.text:
+ text: _Uncommitted Changes
+group.Git.MainMenu.MergeActions.text:
+ text: _Merge
+group.Git.MainMenu.RebaseActions.text:
+ text: _Rebase
+group.Patch.MainMenu.text:
+ text: Patch
+group.log.context.menu.text:
+ text: Git Log Context Menu
+group.log.toolbar.text:
+ text: Git Log Toolbar
+group.mainmenu.vcs.current.file.text:
+ text: Current File
index.file.error:
- text: Updating file in the index failed
+ text: Updating file in the index failed
init.add.root.message:
- text: Do you want to add this directory as a VCS root?
+ text: Do you want to add this directory as a VCS root?
init.add.root.title:
- text: Git Init
+ text: Git Init
init.destination.directory.description:
- text: Select directory where the new Git repository will be created.
+ text: Select directory where the new Git repository will be created.
init.destination.directory.title:
- text: Select directory for git init
+ text: Select directory for git init
init.warning.already.under.git:
- text: The selected directory {0} is already under Git.
Are you sure that you want to create a new VCS root?
+ text: The selected directory {0} is already under Git.
Are you sure that you want to create a new VCS root?
init.warning.title:
- text: Git Init
+ text: Git Init
initializing.title:
- text: Initializing repository...
+ text: Initializing repository...
merge.action.name:
- text: Merge
-merge.add.log.information.tooltip:
- text: Add log information to the commit message ("--log" option)
+ text: Merge
merge.add.log.information:
- text: Add &log information
+ text: Add &log information
+merge.add.log.information.tooltip:
+ text: Add log information to the commit message ("--log" option)
merge.branch.button:
- text: Merge
+ text: Merge
merge.branch.message:
- text: Select branch to merge into this one ({0})
+ text: Select branch to merge into this one ({0})
merge.branch.title:
- text: Merge Branches
-merge.branches.tooltip:
- text: The chooser for branches. Select one or more branches to merge (already merged branches are not shown).
+ text: Merge Branches
merge.branches:
- text: '&Branches to merge:'
-merge.commit.message.tooltip:
- text: The commit message to use in case if merge results in commit ("-m" option)
+ text: '&Branches to merge:'
+merge.branches.tooltip:
+ text: The chooser for branches. Select one or more branches to merge (already merged branches are not shown).
merge.commit.message:
- text: Commit &Message
+ text: Commit &Message
+merge.commit.message.tooltip:
+ text: The commit message to use in case if merge results in commit ("-m" option)
merge.default.strategy:
- text:
-push.policy:
- text: '&Push:'
-push.remote.tooltip:
- text: Specify remote repository URL or remote name where to push changes.
+ text: Select push policy:
push.remote:
- text: 'Re&mote:'
-push.show.tags.tooltip:
- text: If selected, the tags are shown in branch chooser as well.
+ text: 'Re&mote:'
+push.remote.tooltip:
+ text: Specify remote repository URL or remote name where to push changes.
push.show.tags:
- text: Show ta&gs
-push.tags.tooltip:
- text: All tag references are pushed in addition to references specified in references section.
+ text: Show ta&gs
+push.show.tags.tooltip:
+ text: If selected, the tags are shown in branch chooser as well.
push.tags:
- text: Push &tags
+ text: Push &tags
+push.tags.tooltip:
+ text: All tag references are pushed in addition to references specified in references section.
push.title:
- text: Push Changes
-push.use.thin.pack.tooltip:
- text: If this option is selected, the push will spend extra CPU cycles to minimize amount of data transferred (use it for slow connections)
+ text: Push Changes
push.use.thin.pack:
- text: '&Use thin pack'
+ text: '&Use thin pack'
+push.use.thin.pack.tooltip:
+ text: If this option is selected, the push will spend extra CPU cycles to minimize amount of data transferred (use it for slow connections)
pushing.all.changes:
- text: Pushing all committed changes, refs & tags to remote repositories
-gc.action.name:
- text: Run Garbage Collector
+ text: Pushing all committed changes, refs & tags to remote repositories
rebase.abort.action.name:
- text: Abort Rebasing
+ text: Abort Rebasing
rebase.action.error:
- text: Git Rebase Error
+ text: Git Rebase Error
rebase.action.message:
- text: Multiple Git roots have unfinished rebase process, please select root to perform action on.
+ text: Multiple Git roots have unfinished rebase process, please select root to perform action on.
rebase.action.name:
- text: Rebase
+ text: Rebase
rebase.action.no.root:
- text: There is no rebase operation in progress in the project
-rebase.branch.tooltip:
- text: Select branch to rebase (if branch is different from the current branch, it will be checked out first)
+ text: There is no rebase operation in progress in the project
rebase.branch:
- text: '&Branch:'
+ text: '&Branch:'
+rebase.branch.tooltip:
+ text: Select branch to rebase (if branch is different from the current branch, it will be checked out first)
rebase.button:
- text: Rebase
+ text: Rebase
rebase.continue.action.name:
- text: Continue Rebasing
+ text: Continue Rebasing
rebase.editor.action.column:
- text: Action
+ text: Action
rebase.editor.button:
- text: Start Rebasing
+ text: Start Rebasing
rebase.editor.comment.column:
- text: Comment
+ text: Comment
rebase.editor.commit.column:
- text: Commit
+ text: Commit
rebase.editor.invalid.entryset:
- text: No commits found to rebase
+ text: No commits found to rebase
rebase.editor.invalid.squash:
- text: The first non-skip commit cannot be marked as {0} since it merges commit with the previous commit.
+ text: The first non-skip commit cannot be marked as {0} since it merges commit with the previous commit.
rebase.editor.message:
- text: Reorder and edit &rebased commits
-rebase.editor.move.down.tooltip:
- text: Move commit down (commit will be applied later)
+ text: Reorder and edit &rebased commits
rebase.editor.move.down:
- text: Move &Down
-rebase.editor.move.up.tooltip:
- text: Move commit up in the list (commit will be applied earlier)
+ text: Move &Down
+rebase.editor.move.down.tooltip:
+ text: Move commit down (commit will be applied later)
rebase.editor.move.up:
- text: Move &Up
+ text: Move &Up
+rebase.editor.move.up.tooltip:
+ text: Move commit up in the list (commit will be applied earlier)
rebase.editor.title:
- text: Rebasing Commits
-rebase.editor.view.tooltip:
- text: View commit contents
+ text: Rebasing Commits
rebase.editor.view:
- text: '&View'
-rebase.from.tooltip:
- text: Specify actual base for the branch. Leave blank to onto.
+ text: '&View'
+rebase.editor.view.tooltip:
+ text: View commit contents
rebase.from:
- text: '&From:'
+ text: '&From:'
+rebase.from.tooltip:
+ text: Specify actual base for the branch. Leave blank to onto.
rebase.in.progress:
- text: Interactive rebase has been already started for this Git root.
-rebase.interactive.tooltip:
- text: If selected, the interactive rebase will be preformed.
+ text: Interactive rebase has been already started for this Git root.
rebase.interactive:
- text: '&Interactive'
+ text: '&Interactive'
+rebase.interactive.tooltip:
+ text: If selected, the interactive rebase will be preformed.
rebase.invalid.from:
- text: '"From" reference expression is invalid.'
+ text: '"From" reference expression is invalid.'
rebase.invalid.onto:
- text: '"Onto" reference expression is invalid.'
-rebase.merge.strategy.tooltip:
- text: Select merge strategy to use
+ text: '"Onto" reference expression is invalid.'
rebase.merge.strategy:
- text: 'Merge &Strategy:'
-rebase.no.merge.tooltip:
- text: If selected, no merge strategies will be applied during the rebase.
+ text: 'Merge &Strategy:'
+rebase.merge.strategy.tooltip:
+ text: Select merge strategy to use
rebase.no.merge:
- text: '&Do not use merge strategies'
+ text: '&Do not use merge strategies'
+rebase.no.merge.tooltip:
+ text: If selected, no merge strategies will be applied during the rebase.
+rebase.onto:
+ text: '&Onto:'
rebase.onto.tooltip:
- text: The reference that will become a new base for selected branch.
+ text: The reference that will become a new base for selected branch.
rebase.onto.validate:
- text: '&Validate'
-rebase.onto:
- text: '&Onto:'
-rebase.preserve.merges.tooltip:
- text: Preserve merges during rebase instead of squashing them.
+ text: '&Validate'
rebase.preserve.merges:
- text: '&Preserve Merges'
-rebase.result.amend.title:
- text: Rebase Suspended
+ text: '&Preserve Merges'
+rebase.preserve.merges.tooltip:
+ text: Preserve merges during rebase instead of squashing them.
rebase.result.amend:
- text: |-
- Stopped for amending commit while rebasing ({0}/{1}).
- Amend commit and continue the rebase process.
-rebase.result.cancelled.title:
- text: Rebase Cancelled
+ text: |-
+ Stopped for amending commit while rebasing ({0}/{1}).
+ Amend commit and continue the rebase process.
+rebase.result.amend.title:
+ text: Rebase Suspended
rebase.result.cancelled:
- text: The rebase process was cancelled.
-rebase.result.conflict.title:
- text: Rebase Suspended
+ text: The rebase process was cancelled.
+rebase.result.cancelled.title:
+ text: Rebase Cancelled
rebase.result.conflict:
- text: |-
- Stopped rebasing because of conflict ({0}/{1}).
- Resolve conflicts and continue the rebase process.
-rebase.result.error.title:
- text: Rebase Error
+ text: |-
+ Stopped rebasing because of conflict ({0}/{1}).
+ Resolve conflicts and continue the rebase process.
+rebase.result.conflict.title:
+ text: Rebase Suspended
rebase.result.error:
- text: |-
- Stopped rebasing because of error while rebasing ({0}/{1}).
- Check vcs console for details.
-rebase.show.remote.branches.tooltip:
- text: If selected, remote branches are shown in drop down as well.
+ text: |-
+ Stopped rebasing because of error while rebasing ({0}/{1}).
+ Check vcs console for details.
+rebase.result.error.title:
+ text: Rebase Error
rebase.show.remote.branches:
- text: Show Re&mote Branches
+ text: Show Re&mote Branches
+rebase.show.remote.branches.tooltip:
+ text: If selected, remote branches are shown in drop down as well.
rebase.show.tags.tooltip:
- text: Show tags in "from" and "onto" comboboxes.
+ text: Show tags in "from" and "onto" comboboxes.
rebase.skip.action.name:
- text: Skip Commit in Rebasing
+ text: Skip Commit in Rebasing
rebase.title:
- text: Rebase branch
+ text: Rebase branch
rebase.unstructured.editor.button:
- text: Resume Rebasing
+ text: Resume Rebasing
rebase.unstructured.editor.git.root:
- text: 'Git Root:'
+ text: 'Git Root:'
rebase.unstructured.editor.message:
- text: 'Git rebase operation requested additional &information through the editor:'
+ text: 'Git rebase operation requested additional &information through the editor:'
rebase.unstructured.editor.title:
- text: Additional Rebase Input
+ text: Additional Rebase Input
rebase.unstructured.editor.tooltip:
- text: Edit this text according to instructions provided inline
+ text: Edit this text according to instructions provided inline
+rebase.update.project.abort.task.title:
+ text: Aborting rebase…
+rebase.update.project.notification.abort.cancel.message:
+ text: Abort rebase cancelled
+rebase.update.project.notification.abort.error.message:
+ text: Error aborting rebase
+rebase.update.project.notification.abort.success.message:
+ text: Rebase aborted
rebase.valdate.onto.tooltip:
- text: Validate "onto" reference.
-rebase.validate.from.tooltip:
- text: Validate "from" reference
+ text: Validate "onto" reference.
rebase.validate.from:
- text: Va&lidate
+ text: Va&lidate
+rebase.validate.from.tooltip:
+ text: Validate "from" reference
rebasing.title:
- text: Rebasing...
-refspec.add.all.branches.tooltip:
- text: Add refspec that maps all remote branches by glob spec.
+ text: Rebasing...
refspec.add.all.branches:
- text: Add A&ll Branches
-refspec.add.all.tags.tooltip:
- text: Adds mapping entry for all tags
+ text: Add A&ll Branches
+refspec.add.all.branches.tooltip:
+ text: Add refspec that maps all remote branches by glob spec.
refspec.add.all.tags:
- text: Add All Ta&gs
-refspec.add.ref.tooltip:
- text: Add branch or tag by name
+ text: Add All Ta&gs
+refspec.add.all.tags.tooltip:
+ text: Adds mapping entry for all tags
refspec.add.ref:
- text: '&Add...'
-refspec.branch.prefix.tooltip:
- text: Specify default branch prefix for the mapping.
+ text: '&Add...'
+refspec.add.ref.tooltip:
+ text: Add branch or tag by name
refspec.branch.prefix:
- text: 'Remote &Name:'
+ text: 'Remote &Name:'
+refspec.branch.prefix.tooltip:
+ text: Specify default branch prefix for the mapping.
refspec.column.force:
- text: Force
+ text: Force
refspec.column.local:
- text: Local
+ text: Local
refspec.column.remote:
- text: Remote
-refspec.default.tooltip:
- text: Restore default reference mapping
+ text: Remote
refspec.default:
- text: '&Default'
-refspec.remove.tooltip:
- text: Delete refspec entry
+ text: '&Default'
+refspec.default.tooltip:
+ text: Restore default reference mapping
refspec.remove:
- text: Remo&ve
+ text: Remo&ve
+refspec.remove.tooltip:
+ text: Delete refspec entry
refspec.title:
- text: Reference mapping
+ text: Reference mapping
refspec.validation.remote.invalid:
- text: The invalid local name for remote
+ text: The invalid local name for remote
refspec.validation.remote.is.blank:
- text: The local name for remote is blank
+ text: The local name for remote is blank
regase.show.tags:
- text: Show &tags
+ text: Show &tags
remove.removing:
- text: Removing files...
+ text: Removing files...
repository.action.missing.roots.misconfigured:
- text: None of configured Git roots are under Git. The configured directory or some of its ancestors must have ".git" directory in it.
+ text: None of configured Git roots are under Git. The configured directory or some of its ancestors must have ".git" directory in it.
repository.action.missing.roots.title:
- text: No Git roots
+ text: No Git roots
repository.action.missing.roots.unconfigured.message:
- text: No Git roots are configured for the project.
+ text: No Git roots are configured for the project.
+repository.not.found.error:
+ text: Cannot find configured Git repository for {0}
reset.action.name:
- text: Reset Head ...
+ text: Reset Head ...
reset.button:
- text: Reset
+ text: Reset
reset.commit.invalid:
- text: The specified commit expression did not pass validation.
+ text: The specified commit expression did not pass validation.
reset.commit.label:
- text: 'To &Commit:'
+ text: 'To &Commit:'
reset.commit.tooltip:
- text: |-
- The commit that will become the current HEAD
- as result of reset operation.
+ text: |-
+ The commit that will become the current HEAD
+ as result of reset operation.
reset.title:
- text: Reset Head
+ text: Reset Head
+reset.type:
+ text: 'Reset &Type:'
reset.type.hard:
- text: Hard
+ text: Hard
reset.type.mixed:
- text: Mixed
+ text: Mixed
reset.type.soft:
- text: Soft
+ text: Soft
reset.type.tooltip:
- text: The reset type (see also git reset man page):
-reset.type:
- text: 'Reset &Type:'
-reset.validate.tooltip:
- text: Validate the commit pointer and check the content of referenced commit.
+ text: The reset type (see also git reset man page):
reset.validate:
- text: '&Validate'
+ text: '&Validate'
+reset.validate.tooltip:
+ text: Validate the commit pointer and check the content of referenced commit.
resetting.title:
- text: Resetting HEAD...
+ text: Resetting HEAD...
revert.action.name:
- text: '&Revert'
-revert.reverting.mulitple:
- text: Reverting {0} files
+ text: '&Revert'
revert.reverting:
- text: Reverting files...
+ text: Reverting files...
+revert.reverting.mulitple:
+ text: Reverting {0} files
revision.graph:
- text: RevisionGraph
-root.tracker.message.title:
- text: Invalid Git Roots
+ text: RevisionGraph
root.tracker.message:
- text:
Possible reasons: uncommitted changes; a problem with crlf conversion; {0} configuration file auto-save.
Use Auto-Stash option to stash local changes before update and restore them after it.
The following files under this root are locally modified.
Possible reasons: uncommitted changes; a problem with crlf conversion; {0} configuration file auto-save.
{0} is not fully merged to the branch {1}.{1}). {0} is not fully merged to {2}.{0} is however fully merged to the following branches: {1}.'
-branch.delete.merged_to.one:
- text: The branch {0} is however fully merged to the branch {1}.
-branch.delete.warning:
- text: You may still delete the branch {0}, but beware that it cannot be undone.
-vcs.popup.git.github.section:
- text: GitHub
-git.status.bar.widget.name:
- text: Git Branch
-action.Annotate.with.Blame.text:
- text: A_nnotate with Git Blame
-git.status.bar.widget.text.cherry.pick:
- text: Cherry-picking in {0}
-git.status.bar.widget.text.revert:
- text: Reverting in {0}
-git.status.bar.widget.text.merge:
- text: Merging {0}
-git.status.bar.widget.text.rebase:
- text: Rebasing {0}
-git.light.status.bar.display.name:
- text: Git
-git.light.status.bar.tooltip:
- text: 'Current Git Branch: {0}'
-git.light.status.bar.text:
- text: 'Git: {0}'
-vcs.name.with.mnemonic:
- text: _Git
-group.mainmenu.vcs.current.file.text:
- text: Current File
-action.selected.file.text:
- text: Selected {0,choice,1#File|2#Files}
-action.selected.directory.text:
- text: Selected {0,choice,1#Directory|2#Directories}
-action.Git.Pull.text:
- text: Pull...
-action.Git.Fetch.text:
- text: Fetch
-action.Git.Rebase.text:
- text: Rebase...
-action.Git.Merge.text:
- text: Merge...
-action.Git.Branches.text:
- text: _Branches...
-action.Git.Tag.text:
- text: New Tag...
-action.Git.ResolveConflicts.text:
- text: Resolve Conflicts...
-action.Git.Reset.text:
- text: Reset HEAD...
-group.Git.MainMenu.RebaseActions.text:
- text: _Rebase
-group.Git.MainMenu.MergeActions.text:
- text: _Merge
-group.Git.MainMenu.LocalChanges.text:
- text: _Uncommitted Changes
-action.Git.Stash.text:
- text: Stash Changes...
-action.Git.Stash.Silently.text:
- text: Stash Silently
-group.Patch.MainMenu.text:
- text: Patch
-action.Git.Stash.UnstashAs.text:
- text: Unstash...
-action.Git.Stash.UnstashAs.description:
- text: Pop or apply selected stash as new branch with or without index
-action.Git.Unstash.text:
- text: Unstash Changes...
-action.Git.Rebase.Abort.text:
- text: Abort Rebase
-action.Git.Rebase.Continue.text:
- text: Continue Rebase
-action.Git.Rebase.Skip.text:
- text: Skip Commit
-repository.not.found.error:
- text: Cannot find configured Git repository for {0}
-git.new.tag.dialog.title:
- text: Create New Tag On {0}
-git.new.tag.dialog.tag.name.label:
- text: Enter the name of new tag
-error.commit.cant.create.message.file:
- text: Creation of commit message file failed
-rebase.update.project.abort.task.title:
- text: Aborting rebase…
-rebase.update.project.notification.abort.error.message:
- text: Error aborting rebase
-rebase.update.project.notification.abort.success.message:
- text: Rebase aborted
-rebase.update.project.notification.abort.cancel.message:
- text: Abort rebase cancelled
-settings.auto.update.on.push.rejected:
- text: Auto-update if &push of the current branch was rejected
-settings.crlf:
- text: Warn if &CRLF line separators are about to be committed
-settings.detached.head:
- text: Warn when committing in detached HEAD or during rebase
-settings.commit.automatically.on.cherry.pick:
- text: Commit automatically on cherry-pick
-settings.update.method:
- text: 'Update method:'
-settings.protected.branched:
- text: 'Protected branches:'
-clone.dialog.checking.git.version:
- text: Checking Git version…
-git.executable.version.is:
- text: Git version is {0}
-progress.title.moving.files:
- text: Moving files…
-button.commit.all.files:
- text: Commit All Files
\ No newline at end of file
+ text: Delete Files from Git
diff --git a/plugin/src/main/resources/META-INF/plugin.xml b/plugin/src/main/resources/META-INF/plugin.xml
index 08d2f6e..5e668ce 100644
--- a/plugin/src/main/resources/META-INF/plugin.xml
+++ b/plugin/src/main/resources/META-INF/plugin.xml
@@ -80,36 +80,12 @@