{"thread":{"id":"13877","subject":"[PATCH] Drop an unused empty menu contribution.","startedAt":"2008-06-09T22:50:09Z","lastAt":"2008-06-10T06:29:50Z","messageCount":11,"participants":["Robin Rosenberg","Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"79282","messageId":"1213051816-4046-1-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":null,"subject":"[EGIT PATCHES] Assorted minor fixes","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:09Z","receivedAt":"2008-06-09T22:50:09Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"\n-- robin\n\n .../egit/core/op/ConnectProviderOperation.java     |   15 ++++++-\n org.spearce.egit.ui/icons/toolbar/trackd.png       |  Bin 0 -> 387 bytes\n org.spearce.egit.ui/icons/toolbar/tracke.png       |  Bin 0 -> 411 bytes\n org.spearce.egit.ui/plugin.properties              |    2 +-\n org.spearce.egit.ui/plugin.xml                     |   19 +++++----\n .../src/org/spearce/egit/ui/UIText.java            |    3 +\n .../egit/ui/internal/actions/ResetAction.java      |    2 +-\n .../spearce/egit/ui/internal/actions/Track.java    |   40 +++++++++++++++++---\n .../internal/decorators/GitResourceDecorator.java  |    2 +-\n .../egit/ui/internal/history/GitHistoryPage.java   |   24 +++++++++---\n .../ui/internal/sharing/ExistingOrNewPage.java     |   17 ++++++++\n .../egit/ui/internal/sharing/SharingWizard.java    |   16 +++++++-\n .../src/org/spearce/egit/ui/uitext.properties      |    1 +\n 13 files changed, 115 insertions(+), 26 deletions(-)\n"},{"id":"79281","messageId":"1213051816-4046-2-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-1-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Reset the graph plotter internals when HEAD has changed.","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:10Z","receivedAt":"2008-06-09T22:50:10Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nWhen we reset HEAD to an old revision it becomes more visible than when\nwe add a new commit. This is an intermediate solution.\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\nindex 27cda08..278e1e4 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\n@@ -162,6 +162,9 @@ public class GitHistoryPage extends HistoryPage {\n \t/** Revision walker that allocated our graph's commit nodes. */\n \tprivate SWTWalk currentWalk;\n \n+\t/** Last HEAD */\n+\tprivate AnyObjectId currentHeadId;\n+\n \t/**\n \t * Highlight flag that can be applied to commits to make them stand out.\n \t * <p>\n@@ -521,8 +524,18 @@ public class GitHistoryPage extends HistoryPage {\n \t\tif (db == null)\n \t\t\treturn false;\n \n+\t\tfinal AnyObjectId headId;\n+\t\ttry {\n+\t\t\theadId = db.resolve(\"HEAD\");\n+\t\t} catch (IOException e) {\n+\t\t\tActivator.logError(\"Cannot parse HEAD in: \"\n+\t\t\t\t\t+ db.getDirectory().getAbsolutePath(), e);\n+\t\t\treturn false;\n+\t\t}\n+\n \t\tif (currentWalk == null || currentWalk.getRepository() != db\n-\t\t\t\t|| pathChange(pathFilters, paths)) {\n+\t\t\t\t|| pathChange(pathFilters, paths)\n+\t\t\t\t|| headId != null && !headId.equals(currentHeadId)) {\n \t\t\tcurrentWalk = new SWTWalk(db);\n \t\t\tcurrentWalk.sort(RevSort.COMMIT_TIME_DESC, true);\n \t\t\tcurrentWalk.sort(RevSort.BOUNDARY, true);\n@@ -531,13 +544,12 @@ public class GitHistoryPage extends HistoryPage {\n \t\t\tcurrentWalk.reset();\n \t\t}\n \n+\t\tif (headId == null)\n+\t\t\treturn false;\n \t\ttry {\n-\t\t\tfinal AnyObjectId headId = db.resolve(\"HEAD\");\n-\t\t\tif (headId == null)\n-\t\t\t\treturn false;\n \t\t\tcurrentWalk.markStart(currentWalk.parseCommit(headId));\n \t\t} catch (IOException e) {\n-\t\t\tActivator.logError(\"Cannot parse HEAD in: \"\n+\t\t\tActivator.logError(\"Cannot read HEAD commit \" + headId + \" in: \"\n \t\t\t\t\t+ db.getDirectory().getAbsolutePath(), e);\n \t\t\treturn false;\n \t\t}\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79286","messageId":"1213051816-4046-3-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-2-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Make it possible to create a new Git repository in project parent directory.","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:11Z","receivedAt":"2008-06-09T22:50:11Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nIn order to share repository, the Git repository must be located\noutside the project. This patch extends the scope to the parent\ndirectory.\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.core/src/org/spearce/egit/core/op/ConnectProviderOperation.java b/org.spearce.egit.core/src/org/spearce/egit/core/op/ConnectProviderOperation.java\nindex b029de7..3ed3569 100644\n--- a/org.spearce.egit.core/src/org/spearce/egit/core/op/ConnectProviderOperation.java\n+++ b/org.spearce.egit.core/src/org/spearce/egit/core/op/ConnectProviderOperation.java\n@@ -15,8 +15,10 @@ import org.eclipse.core.resources.IProject;\n import org.eclipse.core.resources.IResource;\n import org.eclipse.core.resources.IWorkspaceRunnable;\n import org.eclipse.core.runtime.CoreException;\n+import org.eclipse.core.runtime.IPath;\n import org.eclipse.core.runtime.IProgressMonitor;\n import org.eclipse.core.runtime.NullProgressMonitor;\n+import org.eclipse.core.runtime.Path;\n import org.eclipse.core.runtime.SubProgressMonitor;\n import org.eclipse.team.core.RepositoryProvider;\n import org.spearce.egit.core.Activator;\n@@ -57,7 +59,7 @@ public class ConnectProviderOperation implements IWorkspaceRunnable {\n \n \t\tm.beginTask(CoreText.ConnectProviderOperation_connecting, 100);\n \t\ttry {\n-\t\t\tfinal Collection repos = new ArrayList();\n+\t\t\tfinal Collection<RepositoryMapping> repos = new ArrayList<RepositoryMapping>();\n \n \t\t\tif (newGitDir != null) {\n \t\t\t\ttry {\n@@ -68,8 +70,17 @@ public class ConnectProviderOperation implements IWorkspaceRunnable {\n \n \t\t\t\t\tdb = new Repository(newGitDir);\n \t\t\t\t\tdb.create();\n+\t\t\t\t\tIPath gitDirParent = Path.fromOSString(\n+\t\t\t\t\t\t\tdb.getDirectory().getAbsolutePath())\n+\t\t\t\t\t\t\t.removeLastSegments(1);\n+\t\t\t\t\tIPath cPath = project.getLocation();\n+\t\t\t\t\tString subset = null;\n+\t\t\t\t\tif (gitDirParent.isPrefixOf(cPath)) {\n+\t\t\t\t\t\tint n = cPath.matchingFirstSegments(gitDirParent);\n+\t\t\t\t\t\tsubset = cPath.removeFirstSegments(n).toPortableString();\n+\t\t\t\t\t}\n \t\t\t\t\trepos.add(new RepositoryMapping(project, db.getDirectory(),\n-\t\t\t\t\t\t\tnull));\n+\t\t\t\t\t\t\tsubset));\n \t\t\t\t\tdb.close();\n \n \t\t\t\t\t// If we don't refresh the project directory right\ndiff --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\nindex 6f2c7cf..9ccf606 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIText.java\n@@ -41,6 +41,9 @@ public class UIText extends NLS {\n \tpublic static String ExistingOrNewPage_createNew;\n \n \t/** */\n+\tpublic static String ExistingOrNewPage_createInParent;\n+\n+\t/** */\n \tpublic static String GitCloneWizard_title;\n \n \t/** */\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/ExistingOrNewPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/ExistingOrNewPage.java\nindex 24377d4..d0ddcb7 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/ExistingOrNewPage.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/ExistingOrNewPage.java\n@@ -19,6 +19,7 @@ import org.spearce.egit.ui.UIText;\n \n class ExistingOrNewPage extends WizardPage {\n \tfinal SharingWizard myWizard;\n+\tprivate Button createInParent;\n \n \tExistingOrNewPage(final SharingWizard w) {\n \t\tsuper(ExistingOrNewPage.class.getName());\n@@ -45,6 +46,7 @@ class ExistingOrNewPage extends WizardPage {\n \n \t\t\tpublic void widgetSelected(final SelectionEvent e) {\n \t\t\t\tmyWizard.setUseExisting();\n+\t\t\t\tcreateInParent.setEnabled(false);\n \t\t\t}\n \t\t});\n \t\tuseExisting.setSelection(true);\n@@ -59,9 +61,24 @@ class ExistingOrNewPage extends WizardPage {\n \n \t\t\tpublic void widgetSelected(final SelectionEvent e) {\n \t\t\t\tmyWizard.setCreateNew();\n+\t\t\t\tcreateInParent.setEnabled(true);\n \t\t\t}\n \t\t});\n \n+\t\tcreateInParent = new Button(g, SWT.CHECK);\n+\t\tcreateInParent.setEnabled(createNew.getSelection());\n+\t\tcreateInParent.setText(UIText.ExistingOrNewPage_createInParent);\n+\t\tcreateInParent.addSelectionListener(new SelectionListener() {\n+\t\t\tpublic void widgetDefaultSelected(SelectionEvent e) {\n+\t\t\t\twidgetSelected(e);\n+\t\t\t}\n+\n+\t\t\tpublic void widgetSelected(SelectionEvent e) {\n+\t\t\t\tmyWizard.setUseParent(createInParent.getSelection());\n+\t\t\t}\n+\t\t});\n+\t\tcreateInParent.setSelection(true);\n+\t\tmyWizard.setUseParent(createInParent.getSelection());\n \t\tsetControl(g);\n \t}\n }\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/SharingWizard.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/SharingWizard.java\nindex e02b038..292baf2 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/SharingWizard.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/sharing/SharingWizard.java\n@@ -36,6 +36,8 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {\n \n \tprivate File newGitDir;\n \n+\tprivate boolean useParent;\n+\n \t/**\n \t * Construct the Git Sharing Wizard for connecting Git project to Eclipse\n \t */\n@@ -46,7 +48,14 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {\n \n \tpublic void init(final IWorkbench workbench, final IProject p) {\n \t\tproject = p;\n-\t\tnewGitDir = new File(project.getLocation().toFile(), \".git\");\n+\t\tcalculateNewGitDir();\n+\t}\n+\n+\tprivate void calculateNewGitDir() {\n+\t\tFile pdir = project.getLocation().toFile();\n+\t\tif (useParent)\n+\t\t\tpdir = pdir.getParentFile();\n+\t\tnewGitDir = new File(pdir, \".git\");\n \t}\n \n \tpublic void addPages() {\n@@ -100,4 +109,9 @@ public class SharingWizard extends Wizard implements IConfigurationWizard {\n \t\t\treturn false;\n \t\t}\n \t}\n+\n+\tvoid setUseParent(boolean selection) {\n+\t\tuseParent = selection;\n+\t\tcalculateNewGitDir();\n+\t}\n }\ndiff --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\nindex f4980a0..18f8c28 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/uitext.properties\n@@ -25,6 +25,7 @@ ExistingOrNewPage_description=Select Git Repository Location\n ExistingOrNewPage_groupHeader=Repository Location\n ExistingOrNewPage_useExisting=Search for existing Git repositories\n ExistingOrNewPage_createNew=Create a new Git repository for this project\n+ExistingOrNewPage_createInParent=Create repository in project's parent directory\n \n GitCloneWizard_title=Import Git Repository\n GitCloneWizard_jobName=Cloning from {0}\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79285","messageId":"1213051816-4046-4-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-3-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Fix a typo.","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:12Z","receivedAt":"2008-06-09T22:50:12Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/ResetAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/ResetAction.java\nindex 2187278..7ca48af 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/ResetAction.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/ResetAction.java\n@@ -24,7 +24,7 @@ import org.spearce.egit.ui.internal.dialogs.BranchSelectionDialog;\n import org.spearce.jgit.lib.Repository;\n \n /**\n- * An acton to reset the current branch to a specific revision.\n+ * An action to reset the current branch to a specific revision.\n  *\n  * @see ResetOperation\n  */\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79279","messageId":"1213051816-4046-5-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-4-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Drop an unused empty menu contribution.","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:13Z","receivedAt":"2008-06-09T22:50:13Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.ui/plugin.xml b/org.spearce.egit.ui/plugin.xml\nindex c71c763..e47d75a 100644\n--- a/org.spearce.egit.ui/plugin.xml\n+++ b/org.spearce.egit.ui/plugin.xml\n@@ -97,14 +97,6 @@\n                menubarPath=\"team.main/group1\"\n                tooltip=\"%CommitAction_tooltip\"/>\n \t  </objectContribution>\n-      <objectContribution\n-            objectClass=\"org.eclipse.core.resources.IFile\"\n-            adaptable=\"true\"\n-            id=\"org.spearce.egit.ui.IFileContributions\">\n-         <filter name=\"projectPersistentProperty\"\n-               value=\"org.eclipse.team.core.repository=org.spearce.egit.core.GitProvider\">\n-         </filter>\n-      </objectContribution>\n    </extension>\n \n    <extension\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79284","messageId":"1213051816-4046-6-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-5-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Check content if necessary when decorations want to know status","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:14Z","receivedAt":"2008-06-09T22:50:14Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\n\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java\nindex 10e740e..4b6394c 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/GitResourceDecorator.java\n@@ -310,7 +310,7 @@ public class GitResourceDecorator extends LabelProvider implements\n \n \t\t\t\t\t\tdecoration.addOverlay(UIIcons.OVR_SHARED);\n \n-\t\t\t\t\t\tif (entry.isModified(mapped.getWorkDir())) {\n+\t\t\t\t\t\tif (entry.isModified(mapped.getWorkDir(), true)) {\n \t\t\t\t\t\t\tdecoration.addPrefix(\">\");\n \t\t\t\t\t\t\tdecoration.addSuffix(\"(not updated)\");\n \t\t\t\t\t\t\torState(rsrc.getParent(), CHANGED);\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79283","messageId":"1213051816-4046-7-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-6-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Fix the context menu connection to the workbench","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:15Z","receivedAt":"2008-06-09T22:50:15Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nThis makes the context menu find declarative menu contributions\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\nindex 278e1e4..b84727f 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java\n@@ -211,7 +211,7 @@ public class GitHistoryPage extends HistoryPage {\n \t\tlayoutSashForm(graphDetailSplit, SPLIT_GRAPH);\n \t\tlayoutSashForm(revInfoSplit, SPLIT_INFO);\n \n-\t\tpopupMgr = new MenuManager(POPUP_ID);\n+\t\tpopupMgr = new MenuManager(null, POPUP_ID);\n \t\tattachCommitSelectionChanged();\n \t\tcreateLocalToolbarActions();\n \t\tcreateStandardActions();\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79280","messageId":"1213051816-4046-8-git-send-email-robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"1213051816-4046-7-git-send-email-robin.rosenberg.lists@dewire.com","subject":"[PATCH] Add a Track toolbar icon for adding resources","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-09T22:50:16Z","receivedAt":"2008-06-09T22:50:16Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"From: Robin Rosenberg <robin.rosenberg@dewire.com>\n\nWe already had a track action, but it was only available in the team menu. I had to choose a different\nhandler baseclass for this to work.\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n\ndiff --git a/org.spearce.egit.ui/icons/toolbar/trackd.png b/org.spearce.egit.ui/icons/toolbar/trackd.png\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..1ae9b5abd05c69681dd34485336f366772d530b4\nGIT binary patch\nliteral 387\nzcmV-}0et?6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0003>Nkl<ZIE{^y\nzKgz;D5XFBZifExXurY;bmkU_f*`@a`NzPzrZJ*9ku<-zr&PoJ9i7to;HjafDlDK|f\nz9t`_u=DnGn-4#`(EW$AS4p!Bi0h+bXeh>s&L=Xg8wPjLODQ5P4-&$1#V6|GQh^UAt\nzKz3flWHR{{7!HS0%vxM$$yt$#jbtMO%;)pm2$1$*u~_KobYeD}F`Z7e+wC$QkH3Vn\nz<WwMvBJK5h3<d*gwHmkE4Py*Z6shNVwrYg;ExiREj|U>c^ZCq0#c_=1c>siAm^*E*\nzg3IN?Znwj69M0!6Ns@3l9B8##0QkOd?MW)2s&qOX+U+)tMuU32PP5r0Ns?c@6qUc6\nzB0m$C6DWf!fH8*6W<$T<=YGF)JRaHa_gt^nautk5BevUZ&S8wfah!hz<nx`^>$NVI\nh%hchzuJs`m@dBk;vWC9IYJva&002ovPDHLkV1m>)t&RWy\n\nliteral 0\nHcmV?d00001\n\ndiff --git a/org.spearce.egit.ui/icons/toolbar/tracke.png b/org.spearce.egit.ui/icons/toolbar/tracke.png\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..b06c26581caef5b7bcd0e2f5f49840a0d47835e7\nGIT binary patch\nliteral 411\nzcmV;M0c8G(P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0004ENkl<ZIE|%~\nzPfG$(6vcmU97-&Of<UaGO+nPEpdbrd25xHQ$C;VW(6(KlK>`<%X@v+yo2*5-C<xSa\nzqeGy0TMXLFIFitT%e(K-IrqGON<^3xmSv4D77<SX;*P<%X`14PX_}%3RT2^9uWT4b\nzpeqd^pU;a@N|aIp;LiO}mPgwWNTpKBU)A4tliea(5GjZZAclBak3cDxk>dHPT%9d*\nzdAcB_TqbY}ZZd!lP{<}_Z*3mgIH5lkrPr>a>J<vvq#UGgg4`&aTXF<+y9-K#z70f&\nzt2*UJNISV@Sso)E2c4Qu>+Olz^$5MM3g5MNwAW7}u|)t3!w5W+p@8%uva*jJ+d&IA\nz(59=Xa0QCZal9ck0PmIm=3}11sK9@q1K2f<X8D1+?Hb*-js4Li^xURp$0u`ec$DD&\nzWyUj6vg0H+JAVqO!FO)l9n0-SeK@hT8)7MaJ@)hm_yIyFuY%3nKQ;gW002ovPDHLk\nFV1l|%vu*$Y\n\nliteral 0\nHcmV?d00001\n\ndiff --git a/org.spearce.egit.ui/plugin.properties b/org.spearce.egit.ui/plugin.properties\nindex c0cb735..64a88c3 100644\n--- a/org.spearce.egit.ui/plugin.properties\n+++ b/org.spearce.egit.ui/plugin.properties\n@@ -14,7 +14,7 @@ DisconnectAction_tooltip=Disconnect the Git team provider.\n AssumeUnchangedAction_label=Assume unchanged\n AssumeUnchangedAction_tooltip=Assume selected folders/files are unchanged\n \n-TrackAction_label=Track (Add)\n+TrackAction_label=Track (&Add)\n TrackAction_tooltip=Track selected files/folders with Git.\n \n UntrackAction_label=Untrack (Remove)\ndiff --git a/org.spearce.egit.ui/plugin.xml b/org.spearce.egit.ui/plugin.xml\nindex e47d75a..611829a 100644\n--- a/org.spearce.egit.ui/plugin.xml\n+++ b/org.spearce.egit.ui/plugin.xml\n@@ -240,6 +240,17 @@\n \t\t       toolbarPath=\"org.spearce.egit.ui\"\n \t\t       tooltip=\"%ResetAction_tooltip\">\n \t\t</action>\n+\t\t<action\n+\t\t       class=\"org.spearce.egit.ui.internal.actions.Track\"\n+\t\t       disabledIcon=\"icons/toolbar/trackd.png\"\n+\t\t       icon=\"icons/toolbar/tracke.png\"\n+\t\t       id=\"org.spearce.egit.ui.trackaction\"\n+\t\t       label=\"%TrackAction_label\"\n+\t\t       menubarPath=\"org.spearce.egit.ui.gitmenu/repo\"\n+\t\t       style=\"push\"\n+\t\t       toolbarPath=\"org.spearce.egit.ui\"\n+\t\t       tooltip=\"Start tracking the selected resources\">\n+\t\t</action>\n       </actionSet>\n    </extension>\n </plugin>\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/Track.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/Track.java\nindex 7622ee4..6588cca 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/Track.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/Track.java\n@@ -8,10 +8,15 @@\n  *******************************************************************************/\n package org.spearce.egit.ui.internal.actions;\n \n-import java.util.List;\n+import java.lang.reflect.InvocationTargetException;\n+import java.util.Arrays;\n \n-import org.eclipse.core.resources.IWorkspaceRunnable;\n+import org.eclipse.core.resources.IResource;\n+import org.eclipse.core.runtime.CoreException;\n+import org.eclipse.core.runtime.IProgressMonitor;\n import org.eclipse.jface.action.IAction;\n+import org.eclipse.jface.dialogs.MessageDialog;\n+import org.eclipse.jface.operation.IRunnableWithProgress;\n import org.spearce.egit.core.op.TrackOperation;\n \n /**\n@@ -19,9 +24,32 @@ import org.spearce.egit.core.op.TrackOperation;\n  *\n  * @see TrackOperation\n  */\n-public class Track extends AbstractOperationAction {\n-\tprotected IWorkspaceRunnable createOperation(final IAction act,\n-\t\t\tfinal List sel) {\n-\t\treturn sel.isEmpty() ? null : new TrackOperation(sel);\n+public class Track extends RepositoryAction {\n+\n+\t@Override\n+\tpublic void run(IAction action) {\n+\t\ttry {\n+\t\t\tfinal TrackOperation op = new TrackOperation(Arrays.asList(getSelectedResources()));\n+\t\t\tgetTargetPart().getSite().getWorkbenchWindow().run(true, false, new IRunnableWithProgress() {\n+\n+\t\t\t\tpublic void run(IProgressMonitor arg0) throws InvocationTargetException,\n+\t\t\t\t\t\tInterruptedException {\n+\t\t\t\t\ttry {\n+\t\t\t\t\t\top.run(arg0);\n+\t\t\t\t\t} catch (CoreException e) {\n+\t\t\t\t\t\tMessageDialog.openError(getShell(),\"Track failed\", e.getMessage());\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t});\n+\t\t} catch (InvocationTargetException e) {\n+\t\t\tMessageDialog.openError(getShell(),\"Reset failed\", e.getMessage());\n+\t\t} catch (InterruptedException e) {\n+\t\t\tMessageDialog.openError(getShell(),\"Reset failed\", e.getMessage());\n+\t\t}\n+\t}\n+\n+\t@Override\n+\tpublic boolean isEnabled() {\n+\t\treturn getSelectedAdaptables(getSelection(), IResource.class).length > 0;\n \t}\n }\n-- \n1.5.5.1.178.g1f811\n"},{"id":"79303","messageId":"20080610003144.GD4389@spearce.org","threadId":"13877","inReplyTo":"1213051816-4046-1-git-send-email-robin.rosenberg.lists@dewire.com","subject":"Re: [EGIT PATCHES] Assorted minor fixes","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-06-10T00:31:44Z","receivedAt":"2008-06-10T00:31:44Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:\n>  .../egit/core/op/ConnectProviderOperation.java     |   15 ++++++-\n>  org.spearce.egit.ui/icons/toolbar/trackd.png       |  Bin 0 -> 387 bytes\n>  org.spearce.egit.ui/icons/toolbar/tracke.png       |  Bin 0 -> 411 bytes\n>  org.spearce.egit.ui/plugin.properties              |    2 +-\n>  org.spearce.egit.ui/plugin.xml                     |   19 +++++----\n>  .../src/org/spearce/egit/ui/UIText.java            |    3 +\n>  .../egit/ui/internal/actions/ResetAction.java      |    2 +-\n>  .../spearce/egit/ui/internal/actions/Track.java    |   40 +++++++++++++++++---\n>  .../internal/decorators/GitResourceDecorator.java  |    2 +-\n>  .../egit/ui/internal/history/GitHistoryPage.java   |   24 +++++++++---\n>  .../ui/internal/sharing/ExistingOrNewPage.java     |   17 ++++++++\n>  .../egit/ui/internal/sharing/SharingWizard.java    |   16 +++++++-\n>  .../src/org/spearce/egit/ui/uitext.properties      |    1 +\n>  13 files changed, 115 insertions(+), 26 deletions(-)\n\nHow did you you send this series?  Its not format-patch output.\nThe diff-stat is missing from each commit, and there's no ---\nto split message from diff.  I didn't bother trying to run them\nthrough git-am yet as I assume I can just fetch from you, I'm\njust saying the patches look \"odd\".\n\n-- \nShawn.\n"},{"id":"79305","messageId":"20080610004046.GE4389@spearce.org","threadId":"13877","inReplyTo":"1213051816-4046-2-git-send-email-robin.rosenberg.lists@dewire.com","subject":"Re: [PATCH] Reset the graph plotter internals when HEAD has changed.","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-06-10T00:40:46Z","receivedAt":"2008-06-10T00:40:46Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:\n> When we reset HEAD to an old revision it becomes more visible than when\n> we add a new commit. This is an intermediate solution.\n\nHmm.\n \n> @@ -521,8 +524,18 @@ public class GitHistoryPage extends HistoryPage {\n>  \t\tif (db == null)\n>  \t\t\treturn false;\n>  \n> +\t\tfinal AnyObjectId headId;\n> +\t\ttry {\n> +\t\t\theadId = db.resolve(\"HEAD\");\n> +\t\t} catch (IOException e) {\n> +\t\t\tActivator.logError(\"Cannot parse HEAD in: \"\n> +\t\t\t\t\t+ db.getDirectory().getAbsolutePath(), e);\n> +\t\t\treturn false;\n> +\t\t}\n> +\n>  \t\tif (currentWalk == null || currentWalk.getRepository() != db\n> -\t\t\t\t|| pathChange(pathFilters, paths)) {\n> +\t\t\t\t|| pathChange(pathFilters, paths)\n> +\t\t\t\t|| headId != null && !headId.equals(currentHeadId)) {\n>  \t\t\tcurrentWalk = new SWTWalk(db);\n\nTossing the currentWalk just because HEAD changed to a different\ncommit shouldn't be necessary.  Its very heavy-handed.  Clearly\nthere is a bug in the plotter code where the reset does not clear\nstate right.\n\nFor now this is a reasonable work around.  I'll try to remember\nto come back and debug this case in the future as tossing the\nentire SWTWalk does reduce redraw performance.\n\nThanks for at least coming up with the work-around.\n\n-- \nShawn.\n"},{"id":"79317","messageId":"200806100829.50793.robin.rosenberg.lists@dewire.com","threadId":"13877","inReplyTo":"20080610003144.GD4389@spearce.org","subject":"Re: [EGIT PATCHES] Assorted minor fixes","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-06-10T06:29:50Z","receivedAt":"2008-06-10T06:29:50Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"tisdagen den 10 juni 2008 02.31.44 skrev Shawn O. Pearce:\n> How did you you send this series?  Its not format-patch output.\n> The diff-stat is missing from each commit, and there's no ---\n> to split message from diff.  I didn't bother trying to run them\n> through git-am yet as I assume I can just fetch from you, I'm\n> just saying the patches look \"odd\".\n\nIt was git format-patch --binary. Seems that option drops the diffstat\nin that case. Yes you can just pull and get the same series. I mostly\nsent it as patches for review purposes. It is much easier in e-mail.\nUsing gtik for reviiew isn't optimal. A nice tool for reviewing and\ncommenting directly from a repo would be nice.\n\n-- robin\n"}]}