[EGIT PATCH 6/6] Add actions in history view to perform reset actions
Soft, mixed and hard reset supported
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
org.spearce.egit.ui/plugin.xml | 43 +++++++++++---------
.../actions/HardResetToRevisionAction.java | 26 ++++++++++++
.../actions/MixedResetToRevisionAction.java | 26 ++++++++++++
.../actions/SoftResetToRevisionAction.java | 26 ++++++++++++
4 files changed, 102 insertions(+), 19 deletions(-)
create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java
create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java
create mode 100644 org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java
diff --git a/org.spearce.egit.ui/plugin.xml b/org.spearce.egit.ui/plugin.xml
index 924c6e5..cfd4b80 100644
--- a/org.spearce.egit.ui/plugin.xml
+++ b/org.spearce.egit.ui/plugin.xml
@@ -97,29 +97,34 @@
menubarPath="team.main/group1"
tooltip="%CommitAction_tooltip"/>
</objectContribution>
- <objectContribution
- id="org.spearce.egit.ui.revobjectContributions"
- adaptable="true"
- objectClass="org.spearce.jgit.revwalk.RevObject">
+ <objectContribution
+ id="org.spearce.egit.ui.resetto"
+ objectClass="org.spearce.jgit.revwalk.RevCommit">
<action
- class="org.spearce.egit.ui.internal.actions.BranchAction"
- id="org.spearce.egit.ui.action1"
- label="Kolla"
- enablesFor="*"
- menubarPath="additions">
+ class="org.spearce.egit.ui.internal.actions.SoftResetToRevisionAction"
+ id="org.spearce.egit.ui.softresettorevision"
+ label="Soft Reset"
+ menubarPath="additions"
+ enablesFor="1"
+ tooltip="Resets HEAD but not working directory nor index">
</action>
- </objectContribution>
- <viewerContribution
- id="org.spearce.egit.ui.viewerContribution1"
- targetID="org.spearce.egit.ui.historyPageContributions">
<action
- class="org.spearce.egit.ui.internal.actions.ResetAction"
- id="org.spearce.egit.ui.action1"
- label="Titta"
- enablesFor="*"
- menubarPath="additions">
+ class="org.spearce.egit.ui.internal.actions.MixedResetToRevisionAction"
+ id="org.spearce.egit.ui.mixedresettorevision"
+ label="Mixed Reset"
+ menubarPath="additions"
+ enablesFor="1"
+ tooltip="Resets HEAD and index, but not working directory">
</action>
- </viewerContribution>
+ <action
+ class="org.spearce.egit.ui.internal.actions.HardResetToRevisionAction"
+ id="org.spearce.egit.ui.hardresettorevision"
+ label="Hard Reset"
+ menubarPath="additions"
+ enablesFor="1"
+ tooltip="Resets HEAD and index, and working directory (changed in tracked files will be lost)">
+ </action>
+ </objectContribution>
</extension>
<extension
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java
new file mode 100644
index 0000000..78fd87f
--- /dev/null
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * See LICENSE for the full license text, also available.
+ *******************************************************************************/
+package org.spearce.egit.ui.internal.actions;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.jface.action.IAction;
+import org.spearce.egit.core.op.ResetOperation;
+
+/**
+ * Hard reset to selected revision
+ */
+public class HardResetToRevisionAction extends AbstractRevObjectAction {
+
+ @Override
+ protected IWorkspaceRunnable createOperation(IAction act, List selection) {
+ return new ResetOperation(getActiveRepository(), selection.get(0)
+ .toString(), ResetOperation.ResetType.HARD);
+ }
+}
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java
new file mode 100644
index 0000000..6e4a9bf
--- /dev/null
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * See LICENSE for the full license text, also available.
+ *******************************************************************************/
+package org.spearce.egit.ui.internal.actions;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.jface.action.IAction;
+import org.spearce.egit.core.op.ResetOperation;
+
+/**
+ * Mixed reset to selected revision
+ */
+public class MixedResetToRevisionAction extends AbstractRevObjectAction {
+
+ @Override
+ protected IWorkspaceRunnable createOperation(IAction act, List selection) {
+ return new ResetOperation(getActiveRepository(), selection.get(0)
+ .toString(), ResetOperation.ResetType.MIXED);
+ }
+}
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java
new file mode 100644
index 0000000..7abbc92
--- /dev/null
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * See LICENSE for the full license text, also available.
+ *******************************************************************************/
+package org.spearce.egit.ui.internal.actions;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.jface.action.IAction;
+import org.spearce.egit.core.op.ResetOperation;
+
+/**
+ * Soft reset to selected revision
+ */
+public class SoftResetToRevisionAction extends AbstractRevObjectAction {
+
+ @Override
+ protected IWorkspaceRunnable createOperation(IAction act, List selection) {
+ return new ResetOperation(getActiveRepository(), selection.get(0)
+ .toString(), ResetOperation.ResetType.SOFT);
+ }
+}
--
1.5.6.2.220.g44701