rherrmann / gonsole Goto Github PK
View Code? Open in Web Editor NEWGonsole - Git Console for the Eclipse IDE
Home Page: http://gonsole.codeaffine.com
Gonsole - Git Console for the Eclipse IDE
Home Page: http://gonsole.codeaffine.com
I tried to add files to the index using the command:
add *
Unfortunately no files were added to the index!
(using gonsole v 1.1)
When trying to fetch changes for an existing repository via gconsole I get java.lang.RuntimeException: org.eclipse.jgit.api.errors.TransportException: USERAUTH fail even though I am able to interact with the repository fully via Egit.
The EGit connector should contribute an action to open a git console where applicable, e.g. the context menu of the repository view or the context menu on shared resources
To reproduce, follow these steps:
!ENTRY org.eclipse.text 4 2 2014-06-20 13:02:00.919
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.text".
!STACK 0
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:4441)
at org.eclipse.swt.SWT.error(SWT.java:4356)
at org.eclipse.swt.SWT.error(SWT.java:4327)
at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:348)
at org.eclipse.swt.custom.StyledText.getCharCount(StyledText.java:3873)
at com.codeaffine.console.core.internal.InputObserver$InputScanner$2.documentChanged(InputObserver.java:66)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721)
at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210)
at org.eclipse.ui.internal.console.ConsoleDocument.replace(ConsoleDocument.java:92)
at org.eclipse.ui.internal.console.IOConsolePartitioner.processQueue(IOConsolePartitioner.java:582)
at org.eclipse.ui.internal.console.IOConsolePartitioner$QueueProcessingJob.runInUIThread(IOConsolePartitioner.java:532)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:97)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Because of the RepositoryHelper
, test utility bundle now has a Require-Bundle dependency on o.e.core.runtime. Some time earlier, the DisplayHelper
brought in (unversioned) package imports to SWT.
These legacy dependencies (in particular core.runtime) might hinder using the test utility in other places, where there is no Equinox (or even OSGi?) or no SWT available. Therefore I was thinking to extract those test helpers into a bundle of their own.
The README.md should have a paragraph that describes how to set up the development environment:
Allow dropping a workspace resource into the gonsole view to change to the corresponding repository.
Can in be in Alt+Shift+W "Show in =>" context submenu ?
related to #32
Currently, Gonsole does not support "checkout --orphan".
In Git, developers can create isolated branches where the history of the original branch is not copied into the new branch. This is used in Github, for instance, to create a branch for source code and another isolated "gh-pages" branch for a website.
In the Github Pages help, there is an explanation of the steps to create an empty branch using "checkout --orphan"
According to the following link, JGit only supports "checkout --orphan" since beginning of 2014, but the EGit plugin does not use this option yet. There is a code snippet that may help to introduce this option into the Gonsole.
There seems to be an issue with older Eclipse installations: for example Eclipse 3.8 comes with EGit 2.2 by default. If EGit was never updated, the Gonsle-EGit integration cannot be installed:
Cannot complete the install because one or more required items could not be found.
Software being installed: Gonsole - EGit Integration 1.0.0.20140709-1040 (com.codeaffine.gonsole.egit.feature.feature.group 1.0.0.20140709-1040)
Missing requirement: EGit Repository Provider for Gonsole 1.0.0.20140709-1040 (com.codeaffine.gonsole.egit 1.0.0.20140709-1040) requires 'bundle org.eclipse.egit.core [3.3.0,4.0.0)' but it could not be found
Cannot satisfy dependency: From: Gonsole - EGit Integration 1.0.0.20140709-1040 (com.codeaffine.gonsole.egit.feature.feature.group 1.0.0.20140709-1040) To: com.codeaffine.gonsole.egit [1.0.0.20140709-1040]
The above error report was taken form the 'Error' tab of the Eclipse Marketplace listing.
In Eclipse Mars JGit and EGit have Version number 4.0.0 which is not included in the bundle dependencies of the gonsole.egit manifest
org.eclipse.egit.core;bundle-version="[1.3.0,4.0.0)",
org.eclipse.jgit;bundle-version="[3.6.0,4.0.0)"
Invalid command line options currently terminate the VM, The reaseon therefore is that org.eclipse.jgit.pgm.TextBuiltint#parseArguments()
exist the VM if a CmdLineParseException
occurs.
To see it in all its greatness, enter status x
and say goodby to your IDE.
Eclipse Marketplace lists 8 error reports and 155 Installations. Most of the error reports seem to be caused by users that try to install Gonsole into Eclipse 3.7.
To reproduce, enter and confirm a command and then place the cursor on the just entered command. Press Ctrl+Space to open the content assist and again, select and confirm a command. an IllegalArgumentException is thrown. The console becomes unusable thereafter.
java.lang.IllegalArgumentException: Argument not valid
at org.eclipse.swt.SWT.error(SWT.java:4422)
at org.eclipse.swt.SWT.error(SWT.java:4356)
at org.eclipse.swt.SWT.error(SWT.java:4327)
at org.eclipse.swt.custom.StyledText.setCaretOffset(StyledText.java:8576)
at org.eclipse.ui.internal.console.IOConsoleViewer.handleVerifyEvent(IOConsoleViewer.java:89)
at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:435)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:273)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7236)
at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:8111)
at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2481)
at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5955)
at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5986)
at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5663)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1112)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1108)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1529)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4722)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:343)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4610)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5023)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
For example, type commit "message"
and then try to insert the missing -m
between commit and message. You will notice that the cursor is placed at the end of the line after each char that you typed.
See
https://www.eclipse.org/forums/index.php/t/633869/
and
https://github.com/satyagraha/gfm_viewer/blob/master/.travis.yml
for a possible solution
For unknown commands (from JGit) the exception text is shown. The exception 'org.kohsuke.args4j.CmdLineException' should be catched and some clear text printed for the user with information about 'help' or 'help git' command.
Exception
...
gtest_repo>help
java.lang.RuntimeException: org.kohsuke.args4j.CmdLineException: help is not a jgit command
at com.codeaffine.gonsole.internal.CommandLineParser.parse(CommandLineParser.java:13)
at com.codeaffine.gonsole.internal.GitInterpreter.execute(GitInterpreter.java:29)
at com.codeaffine.gonsole.internal.GitConsole$InputScanner.run(GitConsole.java:148)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.kohsuke.args4j.CmdLineException: help is not a jgit command
at org.eclipse.jgit.pgm.opt.SubcommandHandler.parseArguments(SubcommandHandler.java:85)
at org.kohsuke.args4j.CmdLineParser.parseArgument(CmdLineParser.java:437)
at org.eclipse.jgit.pgm.opt.CmdLineParser.parseArgument(CmdLineParser.java:148)
at com.codeaffine.gonsole.internal.CommandLineParser.parse(CommandLineParser.java:11)
... 5 more
...
I have installed Gonsole from the repository via the regular Eclipse mechanism. However, when I try to open Gonsole after restarting Eclipse, the "Show Console View" action fails with the following error message:
'Show Console View' has encountered a problem.
An internal error has occurred.
Unrecognized formal key name: ⌃SPACE ⌥/
The error happens when I select Git Console from the Open Console drop-down of the Console View. Do the same from the Team context menu when right-clicking on a project with Git repository.
I use Eclipse Luna on OS X 10.8.5 x86_64.
Reproducable: always, also with the "calc" console.
Simply hit enter twice, and you end up with this:
repo>
repo>
|
I did not find a way to recover from this, other than closing and re-opening the console.
commit -m "my message"
will currently be split into command line arguments '-m', '"my' and 'message"'.
When using a Linux terminal I can use tab to complete the input. One nice feature here is that the console adds a blank " " after the completed instruction. This allows me to just continue typing.
It would be nice if gonsole would do the same.
Allow to type git status
or status
Some commands (most notably push, diff, fetch, gc, clone) write their progress to the system error stream.
Reported as bug 437410 to JGit.
When doing commands like git log, I'm usually interested in the most recent activities. The output should when there is no screen space left and I can decide to continue or abort.
The title says it all ;)
It would be good to add an 'help' command that prints some hints how to use the console and show the internal commands (without JGit?) with description, like 'cr' or 'use'...
Once, bug 436232 is resolved and available in a release, we should consume org.eclipse.jgit.pgm from the project update site: http://download.eclipse.org/egit/updates
For example
Type cr <repository-name> to change the current repository or
enter a git command like (git) status.
Type help lists all available commands.
Entering status ma
should provide a dropdown with all branches starting with (or containing?) ma
. Eg. master
.
The colors for background, prompt, input, standard output and error output should be configurable
Please enable aslo Alt+/ for command assist (Ctrl+Space is used by Windows to switch input methods)
BTW, https://marketplace.eclipse.org/content/gonsole MP support link could open GitHub issues directly
It seems not possible to install Gonsole into the EPP package 'Eclipse IDE for Java EE Developers' v1.4.0
A little research surfaced that EPP 1.4 packages features from the Indigo (3.7) release.
The Eclipse Marketplace error report
Cannot complete the install because of a conflicting dependency.
Software being installed: Gonsole - Git Console for Eclipse 1.0.0.20140720-1910 (com.codeaffine.gonsole.feature.feature.group 1.0.0.20140720-1910)
Software currently installed: Eclipse IDE for Java EE Developers 1.4.0.20110615-0550 (epp.package.jee 1.4.0.20110615-0550)
Only one of the following can be installed at once: Equinox Java Authentication and Authorization Service (JAAS) 1.0.100.v20090520-1800 (org.eclipse.equinox.security 1.0.100.v20090520-1800) Equinox Java Authentication and Authorization Service (JAAS) 1.1.1.R37x_v20110822-1018 (org.eclipse.equinox.security 1.1.1.R37x_v20110822-1018) Equinox Java Authentication and Authorization Service (JAAS) 1.1.0.v20110502 (org.eclipse.equinox.security 1.1.0.v20110502)
Cannot satisfy dependency: From: Gonsole - Git Console for Eclipse 1.0.0.20140720-1910 (com.codeaffine.gonsole.feature.feature.group 1.0.0.20140720-1910) To: org.eclipse.equinox.security [1.1.1,2.0.0)
Cannot satisfy dependency: From: Eclipse IDE for Java EE Developers 1.4.0.20110615-0550 (epp.package.jee 1.4.0.20110615-0550) To: org.eclipse.epp.package.jee.feature.feature.group [1.4.0.20110615-0550]
Cannot satisfy dependency: From: Java EE IDE Feature 1.4.0.20110615-0550 (org.eclipse.epp.package.jee.feature.feature.group 1.4.0.20110615-0550) To: org.eclipse.platform.feature.group [3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f]
Cannot satisfy dependency: From: Eclipse Platform 3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f (org.eclipse.platform.feature.group 3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f) To: org.eclipse.equinox.security [1.1.0.v20110502]
The console view does not restore the last recently used console page. If the last recently used console page was the Git Console, it should be restored after workbench restart.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.