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

[EGIT PATCH 06/10] Allow history listing on folders and projects.

From
Robin Rosenberg <robin.rosenberg@dewire.com>
Date
Mar 11, 2007, 18:15 UTC
Message-ID
<20070311181547.18012.12531.stgit@lathund.dewire.com>
In-Reply-To
<20070311180608.18012.13767.stgit@lathund.dewire.com>

Comparing two commits is disabled on a none-file resource until we implement the structured compare interfaces.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
---
 org.spearce.egit.core/META-INF/MANIFEST.MF         |    3 ++-
 .../egit/core/internal/mapping/GitFileHistory.java |    2 +-
 org.spearce.egit.ui/plugin.xml                     |   21 ++++++++++++--------
 .../src/org/spearce/egit/ui/GitHistoryPage.java    |    3 +++
 .../org/spearce/egit/ui/GitHistoryPageSource.java  |    5 ++++-
 5 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/org.spearce.egit.core/META-INF/MANIFEST.MF b/org.spearce.egit.core/META-INF/MANIFEST.MF
index a8349a1..13ec59d 100644
--- a/org.spearce.egit.core/META-INF/MANIFEST.MF
+++ b/org.spearce.egit.core/META-INF/MANIFEST.MF
@@ -11,6 +11,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.spearce.jgit,
  org.eclipse.core.filesystem
-Export-Package: org.spearce.egit.core.op,
+Export-Package: org.spearce.egit.core.internal.mapping;x-friends:="org.spearce.egit.ui",
+ org.spearce.egit.core.op,
  org.spearce.egit.core.project
 Eclipse-LazyStart: true
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/internal/mapping/GitFileHistory.java b/org.spearce.egit.core/src/org/spearce/egit/core/internal/mapping/GitFileHistory.java
index 6c40bb0..2e4e4e9 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/internal/mapping/GitFileHistory.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/internal/mapping/GitFileHistory.java
@@ -158,7 +158,7 @@ public class GitFileHistory extends FileHistory {
 				}
 			}
 			
-			if (!currentResourceHash[currentResourceHash.length-1].equals(lastResourceHash[currentResourceHash.length-1]))
+			if (currentResourceHash.length == 0 || !currentResourceHash[currentResourceHash.length-1].equals(lastResourceHash[currentResourceHash.length-1]))
 				ret.add(new GitFileRevision(previous, resource));
 
 			lastResourceHash = currentResourceHash;
diff --git a/org.spearce.egit.ui/plugin.xml b/org.spearce.egit.ui/plugin.xml
index d373d18..d81a0b6 100644
--- a/org.spearce.egit.ui/plugin.xml
+++ b/org.spearce.egit.ui/plugin.xml
@@ -50,7 +50,19 @@
                tooltip="%TrackAction_tooltip"
                menubarPath="team.main/group1"
                id="org.spearce.egit.ui.internal.actions.Track"/>
- 	 </objectContribution>
+         <action
+               class="org.spearce.egit.ui.internal.actions.ShowResourceInHistoryAction"
+               id="org.spearce.egit.ui.internal.actions.ShowResourceInHistoryAction"
+               label="%ShowResourceInHistoryAction_label"
+               menubarPath="team.main/group1"
+               tooltip="%ShowResourceInHistoryAction_tooltip"/>
+		<action
+		       class="org.spearce.egit.ui.internal.actions.GitCompareRevisionAction"
+        	   id="org.spearce.egit.ui.internal.actions.GitCompareAction"
+               menubarPath="team.main/group1"
+        	   label="Structured Git Compare">
+		</action>
+ 	  </objectContribution>
       <objectContribution
             objectClass="org.eclipse.core.resources.IFile"
             adaptable="true"
@@ -68,13 +80,6 @@
                overrideActionId="org.eclipse.team.ui.compareLocalHistory"
                tooltip="%CompareWithRevisionAction_tooltip">
          </action>
-         <action
-               class="org.spearce.egit.ui.internal.actions.ShowResourceInHistoryAction"
-               enablesFor="1"
-               id="org.spearce.egit.ui.internal.actions.ShowResourceInHistoryAction"
-               label="%ShowResourceInHistoryAction_label"
-               menubarPath="team.main/group1"
-               tooltip="%ShowResourceInHistoryAction_tooltip"/>
       </objectContribution>
    </extension>
 
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java
index 0e53036..cd31f18 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java
@@ -62,6 +62,7 @@ import org.eclipse.team.internal.ui.history.DialogHistoryPageSite;
 import org.eclipse.team.ui.history.HistoryPage;
 import org.eclipse.team.ui.history.IHistoryCompareAdapter;
 import org.eclipse.team.ui.history.IHistoryPageSite;
+import org.spearce.egit.core.internal.mapping.GitFileRevision;
 
 public class GitHistoryPage extends HistoryPage implements IAdaptable,
 		IHistoryCompareAdapter {
@@ -115,6 +116,8 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,
 				compareAction.setCurrentFileRevision(fileRevisions[0]);
 				compareAction.selectionChanged(new StructuredSelection(
 						selection2));
+				
+				compareAction.setEnabled(selection!=null && selection[0]!=null  && ((GitFileRevision)fileRevisions[0]).getResource().getType() == IResource.FILE);
 			}
 		});
 		compareAction.setPage(this);
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPageSource.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPageSource.java
index 03c1896..2d56063 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPageSource.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPageSource.java
@@ -27,7 +27,10 @@ public class GitHistoryPageSource extends HistoryPageSource {
 	}
 
 	public boolean canShowHistoryFor(Object object) {
-		return (object instanceof IResource && ((IResource) object).getType() == IResource.FILE);
+		return (object instanceof IResource 
+				&& (((IResource) object).getType() == IResource.FILE
+						|| ((IResource) object).getType() == IResource.FOLDER
+						|| ((IResource) object).getType() == IResource.PROJECT));
 	}
 
 }
Previous: Robin RosenbergNext: Robin Rosenberg
Message 7 of 16 in “Fixes and improvement on Eclipse plugin”
  1. 00/10 Fixes and improvement on Eclipse pluginRobin Rosenberg, Mar 11, 2007
  2. 01/10 Git history refresh problemRobin Rosenberg, Mar 11, 2007
  3. 02/10 Support commit encoding headerRobin Rosenberg, Mar 11, 2007
  4. 03/10 Avoid a nullpointerexception on shutdownRobin Rosenberg, Mar 11, 2007
  5. 04/10 Speed up history by comparing tree hashes.Robin Rosenberg, Mar 11, 2007
  6. 05/10 Cache commitsRobin Rosenberg, Mar 11, 2007
  7. 06/10 Allow history listing on folders and projects.Robin Rosenberg, Mar 11, 2007
  8. 07/10 Return nothing if no version exists for a commit.Robin Rosenberg, Mar 11, 2007
  9. 08/10 Show only commits that represent changes in the history viewRobin Rosenberg, Mar 11, 2007
  10. 09/10 Hash ObjectId faster.Robin Rosenberg, Mar 11, 2007
  11. 10/10 Display distance to head in history pageRobin Rosenberg, Mar 11, 2007
  12. 0/2 Series short descriptionRobin Rosenberg, Mar 11, 2007
  13. Shawn O. PearceMar 11, 2007
  14. Robin RosenbergMar 11, 2007
  15. 1/2 Tag version 0.2.1Robin Rosenberg, Mar 11, 2007
  16. 2/2 Re-add qualfiier for development versionRobin Rosenberg, Mar 11, 2007

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.