{"thread":{"id":"12570","subject":"[EGIT PATCH] Branch bar in resource history.","startedAt":"2008-03-08T05:40:28Z","lastAt":"2008-03-10T23:14:04Z","messageCount":4,"participants":["Roger C. Soares","Robin Rosenberg","Roger Carneiro Soares","Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"71402","messageId":"1204954828-3937-1-git-send-email-rogersoares@intelinet.com.br","threadId":"12570","inReplyTo":null,"subject":"[EGIT PATCH] Branch bar in resource history.","fromName":"Roger C. Soares","fromEmail":"rogersoares@intelinet.com.br","sentAt":"2008-03-08T05:40:28Z","receivedAt":"2008-03-08T05:40:28Z","isPatch":true,"sender":{"key":"rogersoares@intelinet.com.br","avatar":null},"body":"Adds a bar to show the current branch in resource history.\nBecause other programs can change the current branch, the branch bar\nhelps the user to remember what is being displayed in resource history.\nThe bar can be disabled through a local menu preference.\n---\n org.spearce.egit.ui/icons/elcl16/branch.gif        |  Bin 0 -> 313 bytes\n .../src/org/spearce/egit/ui/GitHistoryPage.java    |   58 +++++++++++++++++++-\n .../egit/ui/PluginPreferenceInitializer.java       |    1 +\n .../src/org/spearce/egit/ui/UIIcons.java           |    4 ++\n .../src/org/spearce/egit/ui/UIPreferences.java     |    2 +\n .../src/org/spearce/egit/ui/UIText.java            |    4 ++\n .../src/org/spearce/egit/ui/uitext.properties      |    2 +\n 7 files changed, 70 insertions(+), 1 deletions(-)\n create mode 100644 org.spearce.egit.ui/icons/elcl16/branch.gif\n\ndiff --git a/org.spearce.egit.ui/icons/elcl16/branch.gif b/org.spearce.egit.ui/icons/elcl16/branch.gif\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..50c33aa61169d83dc88e1e4d4f7aad90f0382bde\nGIT binary patch\nliteral 313\nzcmZ?wbhEHb6krfwSZc&z(h^g-t77Brs*QIlHr}b+c(-EHy|PXB$~WCF*>t~j^Znw@\nzkMg%X%G>fdcgy3vEl;wxJjvPeBzMcx?5)o-x4lT-_9Aur%j9jZlD5A}+zupP$8Ud~\nzu;Weqj<<0;-$(9zAGPyC_|6XzyFP~P`WU|JQ^>AQp}Rf@@A@3F=d1soZ@zoJ`R)Gh\nzyXU+2p6@<;etPZw>9O~x=iZ-QYtHu(i4=dbFmf^2Gw3h?0mx4bY+(oH7kKDM^`BT$\nzbW(+l;lc_N2bKjPD?_`Vb{&jscy(Nusn<pI(n%3HCM}WEs?9euEaq+#*pOf$B`6@o\nhFDzVT&%ngO!pzFf#>v6e?jJNQ#CPVb+3t=E)&PoVqFDd{\n\nliteral 0\nHcmV?d00001\n\ndiff --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\nindex 268a6ba..7096f64 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/GitHistoryPage.java\n@@ -63,6 +63,7 @@ import org.eclipse.swt.events.SelectionAdapter;\n import org.eclipse.swt.events.SelectionEvent;\n import org.eclipse.swt.graphics.Font;\n import org.eclipse.swt.graphics.FontData;\n+import org.eclipse.swt.graphics.Image;\n import org.eclipse.swt.graphics.Point;\n import org.eclipse.swt.layout.GridData;\n import org.eclipse.swt.layout.GridLayout;\n@@ -70,6 +71,7 @@ import org.eclipse.swt.widgets.Composite;\n import org.eclipse.swt.widgets.Control;\n import org.eclipse.swt.widgets.Display;\n import org.eclipse.swt.widgets.Event;\n+import org.eclipse.swt.widgets.Label;\n import org.eclipse.swt.widgets.Listener;\n import org.eclipse.swt.widgets.Menu;\n import org.eclipse.swt.widgets.Table;\n@@ -115,8 +117,10 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t/* private */static final SimpleDateFormat DATETIME_FORMAT = new SimpleDateFormat(\"yyyy-MM-dd HH:mm\");\n \t/* private */static final SimpleDateFormat DATETIMETZ_FORMAT = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss z\");\n \t/* private */Font BANNER_FONT_BOLD;\n+\tImage BRANCH_ICON;\n \n \tprivate Composite parentComposite;\n+\tprivate Composite branchBarComposite;\n \tprivate SashForm localComposite;\n \tprivate SashForm revisionInfoComposite;\n \t/* private */FindToolbar findToolbar;\n@@ -127,12 +131,15 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t/* private */TextViewer revDetailTextViewer;\n \t/* private */TextViewer revCommentTextViewer;\n \t/* private */IAction toggleCommentWrapAction;\n+\tprivate IAction toggleBranchBarAction;\n \t/* private */IAction toggleRevDetailAction;\n \t/* private */IAction toggleRevCommentAction;\n \t/* private */IAction toggleTooltipsAction;\n \t/* private */IAction findAction;\n \n \t/* private */Table table;\n+\tLabel currentBranchLabel;\n+\n \tprivate MouseMoveListener tableMouseMoveListener;\n \n \t/* private */List<IFileRevision> fileRevisions;\n@@ -172,6 +179,7 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\tFont bannerFont = JFaceResources.getBannerFont();\n \t\tBANNER_FONT_BOLD = new Font(parent.getDisplay(),\n \t\t\t\tnew FontData(bannerFont.getFontData()[0].getName(), bannerFont.getFontData()[0].getHeight(), SWT.BOLD));\n+\t\tBRANCH_ICON = UIIcons.ELCL16_BRANCH.createImage();\n \n \t\tparentComposite = new Composite(parent, SWT.NULL);\n \t\tGridLayout parentLayout = new GridLayout();\n@@ -182,6 +190,22 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\tGridData parentData = new GridData(SWT.FILL, SWT.FILL, true, true);\n \t\tparentComposite.setLayoutData(parentData);\n \n+\t\tbranchBarComposite = new Composite(parentComposite, SWT.NULL);\n+\t\tGridLayout bbl = new GridLayout();\n+\t\tbbl.marginHeight = 0;\n+\t\tbbl.marginWidth = 1;\n+\t\tbbl.verticalSpacing = 0;\n+\t\tbbl.horizontalSpacing = 2;\n+\t\tbbl.numColumns = 2;\n+\t\tbranchBarComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));\n+\t\tbranchBarComposite.setLayout(bbl);\n+\n+\t\tLabel branchIcon = new Label(branchBarComposite, SWT.NULL);\n+\t\tbranchIcon.setImage(BRANCH_ICON);\n+\t\tbranchIcon.setToolTipText(UIText.ResourceHistory_currentBranchTooltip);\n+\t\tcurrentBranchLabel = new Label(branchBarComposite, SWT.NULL);\n+\t\tcurrentBranchLabel.setToolTipText(UIText.ResourceHistory_currentBranchTooltip);\n+\n \t\tlocalComposite = new SashForm(parentComposite, SWT.VERTICAL);\n \t\tGridData data = new GridData(SWT.FILL, SWT.FILL, true, true);\n \t\tlocalComposite.setLayoutData(data);\n@@ -376,6 +400,15 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\t};\n \t\ttoggleCommentWrapAction.setChecked(prefs.getBoolean(UIPreferences.RESOURCEHISTORY_SHOW_COMMENT_WRAP));\n \n+\t\ttoggleBranchBarAction = new Action(UIText.ResourceHistory_toggleBranchBar) {\n+\t\t\tpublic void run() {\n+\t\t\t\tshowHideBranchBar();\n+\t\t\t\tprefs.setValue(UIPreferences.RESOURCEHISTORY_SHOW_BRANCHBAR, toggleBranchBarAction.isChecked());\n+\t\t\t\tActivator.getDefault().savePluginPreferences();\n+\t\t\t}\n+\t\t};\n+\t\ttoggleBranchBarAction.setChecked(prefs.getBoolean(UIPreferences.RESOURCEHISTORY_SHOW_BRANCHBAR));\n+\n \t\ttoggleRevDetailAction = new Action(UIText.ResourceHistory_toggleRevDetail) {\n \t\t\tpublic void run() {\n \t\t\t\tupdateResourceHistoryComposites();\n@@ -408,12 +441,14 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\tif (menuManager != null) {\n \t\t\tmenuManager.add(toggleCommentWrapAction);\n \t\t\tmenuManager.add(new Separator());\n+\t\t\tmenuManager.add(toggleBranchBarAction);\n \t\t\tmenuManager.add(toggleRevDetailAction);\n \t\t\tmenuManager.add(toggleRevCommentAction);\n \t\t\tmenuManager.add(toggleTooltipsAction);\n \t\t\tmenuManager.add(new Separator());\n \t\t}\n \t\tactionBars.updateActionBars();\n+\t\tshowHideBranchBar();\n \t\tupdateResourceHistoryComposites();\n \t\tupdateShowTooltips();\n \t\tshowHideFindToolbar();\n@@ -422,6 +457,15 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\trevisionInfoComposite.setWeights(new int[] {40, 60});\n \t}\n \n+\tprivate void showHideBranchBar() {\n+\t\tif(toggleBranchBarAction.isChecked()) {\n+\t\t\t((GridData) branchBarComposite.getLayoutData()).heightHint = SWT.DEFAULT;\n+\t\t} else {\n+\t\t\t((GridData) branchBarComposite.getLayoutData()).heightHint = 0;\n+\t\t}\n+\t\tparentComposite.layout();\n+\t}\n+\n \t/* private */void updateResourceHistoryComposites() {\n \t\tboolean commentWrap = toggleCommentWrapAction.isChecked();\n \t\tboolean showRevDetail = toggleRevDetailAction.isChecked();\n@@ -471,6 +515,11 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\tparentComposite.layout();\n \t}\n \n+\tprivate void updateCurrentBranch(String currentBranchName) {\n+\t\tcurrentBranchLabel.setText(currentBranchName);\n+\t\tbranchBarComposite.layout();\n+\t}\n+\n \t/* private */boolean isShowAllRepoVersions() {\n \t\treturn showAllRepoVersions;\n \t}\n@@ -975,6 +1024,12 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\t\t\tMap newappliedPatches = null;\n \t\t\t\ttry {\n \t\t\t\t\tnewappliedPatches = repositoryMapping.getRepository().getAppliedPatches();\n+\t\t\t\t\tfinal String currentBranchName = repositoryMapping.getRepository().getBranch();\n+\t\t\t\t\ttable.getDisplay().asyncExec(new Runnable() {\n+\t\t\t\t\t\tpublic void run() {\n+\t\t\t\t\t\t\tupdateCurrentBranch(currentBranchName);\n+\t\t\t\t\t\t}\n+\t\t\t\t\t});\n \t\t\t\t} catch (IOException e) {\n \t\t\t\t\t// TODO Auto-generated catch block\n \t\t\t\t\te.printStackTrace();\n@@ -1063,7 +1118,7 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t\t\t\t});\n \t\t\t\tfinal Map fnewappliedPatches = newappliedPatches;\n \t\t\t\tfinal Map<ObjectId,Tag[]> ftags = newtags;\n-\t\n+\n \t\t\t\ttable.getDisplay().asyncExec(new Runnable() {\n \t\t\t\t\n \t\t\t\t\tpublic void run() {\n@@ -1293,6 +1348,7 @@ public class GitHistoryPage extends HistoryPage implements IAdaptable,\n \t@Override\n \tpublic void dispose() {\n \t\tBANNER_FONT_BOLD.dispose();\n+\t\tBRANCH_ICON.dispose();\n \t\tsuper.dispose();\n \t}\n \ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/PluginPreferenceInitializer.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/PluginPreferenceInitializer.java\nindex ecb79b8..e480a9e 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/PluginPreferenceInitializer.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/PluginPreferenceInitializer.java\n@@ -41,6 +41,7 @@ public class PluginPreferenceInitializer extends AbstractPreferenceInitializer {\n \t\tprefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_DETAIL, true);\n \t\tprefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_COMMENT, true);\n \t\tprefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_TOOLTIPS, false);\n+\t\tprefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_BRANCHBAR, true);\n \n \t\tprefs.setDefault(UIPreferences.FINDTOOLBAR_IGNORE_CASE, true);\n \t\tprefs.setDefault(UIPreferences.FINDTOOLBAR_COMMIT_ID, true);\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java\nindex 881265d..7172aec 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIIcons.java\n@@ -47,6 +47,9 @@ public class UIIcons {\n \t/** Previous arrow icon */\n \tpublic static final ImageDescriptor ELCL16_PREVIOUS;\n \n+\t/** Branch icon */\n+\tpublic static final ImageDescriptor ELCL16_BRANCH;\n+\n \tprivate static final URL base;\n \n \tstatic {\n@@ -59,6 +62,7 @@ public class UIIcons {\n \t\tELCL16_FIND = map(\"elcl16/find.gif\");\n \t\tELCL16_NEXT = map(\"elcl16/next.gif\");\n \t\tELCL16_PREVIOUS = map(\"elcl16/previous.gif\");\n+\t\tELCL16_BRANCH = map(\"elcl16/branch.gif\");\n \t}\n \n \tprivate static ImageDescriptor map(final String icon) {\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIPreferences.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIPreferences.java\nindex cb9443b..de1dc10 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/UIPreferences.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/UIPreferences.java\n@@ -32,6 +32,8 @@ public class UIPreferences {\n \t/** */\n \tpublic final static String RESOURCEHISTORY_SHOW_FINDTOOLBAR = \"resourcehistory_show_findtoolbar\";\n \t/** */\n+\tpublic final static String RESOURCEHISTORY_SHOW_BRANCHBAR = \"resourcehistory_show_branchbar\";\n+\t/** */\n \tpublic final static String FINDTOOLBAR_IGNORE_CASE = \"findtoolbar_ignore_case\";\n \t/** */\n \tpublic final static String FINDTOOLBAR_COMMIT_ID = \"findtoolbar_commit_id\";\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 1454124..4f0aeb8 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@@ -56,11 +56,15 @@ public class UIText extends NLS {\n \t/** */\n \tpublic static String ResourceHistory_toggleCommentWrap;\n \t/** */\n+\tpublic static String ResourceHistory_toggleBranchBar;\n+\t/** */\n \tpublic static String ResourceHistory_toggleRevDetail;\n \t/** */\n \tpublic static String ResourceHistory_toggleRevComment;\n \t/** */\n \tpublic static String ResourceHistory_toggleTooltips;\n+\t/** */\n+\tpublic static String ResourceHistory_currentBranchTooltip;\n \n \tstatic {\n \t\tinitializeMessages(UIText.class.getPackage().getName() + \".uitext\",\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 be02978..c4eb779 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@@ -30,6 +30,8 @@ Decorator_failedLazyLoading=Resource decorator failed to load tree contents on d\n QuickDiff_failedLoading=Quick diff failed to obtain file data.\n \n ResourceHistory_toggleCommentWrap=Wrap Comments\n+ResourceHistory_toggleBranchBar=Show Branch Bar\n ResourceHistory_toggleRevDetail=Show Revision Details\n ResourceHistory_toggleRevComment=Show Revision Comment\n ResourceHistory_toggleTooltips=Show Revision Tooltip\n+ResourceHistory_currentBranchTooltip=Current Branch\n-- \n1.5.4.1\n\n"},{"id":"71543","messageId":"200803100100.28927.robin.rosenberg@dewire.com","threadId":"12570","inReplyTo":"1204954828-3937-1-git-send-email-rogersoares@intelinet.com.br","subject":"Re: [EGIT PATCH] Branch bar in resource history.","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2008-03-10T00:00:28Z","receivedAt":"2008-03-10T00:00:28Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"Den Saturday 08 March 2008 06.40.28 skrev Roger C. Soares:\n> Adds a bar to show the current branch in resource history.\n> Because other programs can change the current branch, the branch bar\n> helps the user to remember what is being displayed in resource history.\n> The bar can be disabled through a local menu preference.\n\nGood idea, but I wonder if we wouldn't be better off trying too keep compact\nand do this decoration in the first bar instead, either as an icon or just \ntext. I only have 15 inches of preciousss screen space. Compare to what you \ndid with the compare view in removing those unnecessary directory levels that\nreally only wasted space. That was very good.\n\nAnother idea would be to allow the user to filter which branches and I think\none could combine this indicator with that functionality through e.g. a poup \nmenu. \n\nThe green color on the indicator sugests something is \"ok\"?\n\n-- robin\n"},{"id":"71549","messageId":"47D4C384.3030703@intelinet.com.br","threadId":"12570","inReplyTo":"200803100100.28927.robin.rosenberg@dewire.com","subject":"Re: [EGIT PATCH] Branch bar in resource history.","fromName":"Roger Carneiro Soares","fromEmail":"rogersoares@intelinet.com.br","sentAt":"2008-03-10T05:13:40Z","receivedAt":"2008-03-10T05:13:40Z","isPatch":true,"sender":{"key":"rogersoares@intelinet.com.br","avatar":null},"body":"Hi Robin,\n\n> Good idea, but I wonder if we wouldn't be better off trying too keep compact\n> and do this decoration in the first bar instead, either as an icon or just \n> text. I only have 15 inches of preciousss screen space. Compare to what you \n> did with the compare view in removing those unnecessary directory levels that\n> really only wasted space. That was very good.\n>   \nMy first attempt was to put the current branch name in the first bar, \nbefore the path, like:\n[mybranch]/myproject\n\nBut from what I noticed after a little debuging, the history page API \ndoesn't allow us to change this value, probably because of the \"Show \nPrevious Histories\" where this value is also stored. We would need to \nchange parent classes to make it possible.\n\nI also tried to add the branch name as an icon, but I didn't really like \nit there. In the end I accepted to lose some space, especially because \nwhen I'm searching for something I end up maximizing the history page. \nAnd I also started thinking about other uses for it, to convince me that \nanother bar there could have some use :)\n. maybe put the SHA1 there, like in gitk.\n. show the bar in a different color when some filter is applied to help \navoid confusion when you don't see a commit there.\n. put a trail for some common operation.\n\nbut, unless someone really sees the need for something, I'm not \nseriously considering any of it right now...\n\nAnother attempt I made was to put a vertical bar on the left, but it \nwould require the installation of some extra eclipse package to write \nthe text in the vertical. I saw that eclipse can also use the java \ngraphics api to render things, so if people think it would be the best \noption, I can give it a try.\n\n\n> Another idea would be to allow the user to filter which branches and I think\n> one could combine this indicator with that functionality through e.g. a poup \n> menu. \n>   \nThis would be really nice :)\n\nSome time ago I wrote a quick hack to show only the commits in the \ncurrent branch and it's been very useful for us. It isn't implemented \nthe proper way but I consider it simple and safe and others may find it \nuseful too... I'll review it later and post a patch for you to decide.\n\n> The green color on the indicator sugests something is \"ok\"?\n>   \nIt was my attempt to make a branch icon following eclipse guidelines :) \nIt will be more obvious when we have the \"list references\" icon (get a \nlook on gitk: file->list references). It was intended as an icon to \ndesignate branch.\n\n[]s,\nRoger.\n"},{"id":"71624","messageId":"20080310231404.GF8410@spearce.org","threadId":"12570","inReplyTo":"47D4C384.3030703@intelinet.com.br","subject":"Re: [EGIT PATCH] Branch bar in resource history.","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-03-10T23:14:04Z","receivedAt":"2008-03-10T23:14:04Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Roger Carneiro Soares <rogersoares@intelinet.com.br> wrote:\n> >Another idea would be to allow the user to filter which branches and I \n> >think\n> >one could combine this indicator with that functionality through e.g. a \n> >poup menu. \n>   \n> This would be really nice :)\n> \n> Some time ago I wrote a quick hack to show only the commits in the \n> current branch and it's been very useful for us. It isn't implemented \n> the proper way but I consider it simple and safe and others may find it \n> useful too... I'll review it later and post a patch for you to decide.\n\nNow that we have index v2 support implemented my current project\nhas been \"proper\" revision machinary for jgit.  Mostly because I\nfound the History pane too damn slow to be useful, but also as I\nneed it for the packer for a push implementation.\n\nI have most of the machinary implemented and am right now working on\nthe path limiter / history simplification.  I already have features\nlike \"--author\" and \"--grep\" working to filter commits, as well\nas the commit set difference like \"^A ^C B D\".  Its wicked fast;\nabout the exact same speed as C Git, from the time my test \"main\"\ngets invoked to the time I have the full results.\n\nNot unsurprisingly jgit bottlenecks in about the exact same major\nareas that C Git bottlenecks, and in about the exact same ratio.\nIf I remember what JProbe was telling me correctly its about 30%\nin zlib's inflate(), 30% in commit parsing, and 30% in the rest of\nthe lookup-packed-object code.\n\nPack v4 was being created to reduce the 60% inflate()+parse costs,\nas that is the major impact to C Git.\n\nIn short, I'm not sure I can squeeze too much more out of jgit.\nGiven that I'm really close to C Git I think we're nearing the\npoint where it just can't get faster.\n\nThe above mentioned revision machinary is a completely new set of\ncode in jgit.  I'm basically abandoning the work Robin has done on\nthis previously.  I also am moving away from the Commit and Tree\nclasses in favor of smaller, lighter abstractions that perform\nbetter when faced with 17,000 commits.\n\nMost of this code is in my spearce fork of egit in my sp/revwalk\nbranch, but a good chunk isn't pushed up there yet.  Its not ready\nto be merged, but maybe in another week.\n\n-- \nShawn.\n"}]}