GithubHelp home page GithubHelp logo

zielu / gittoolbox Goto Github PK

View Code? Open in Web Editor NEW
601.0 11.0 70.0 1.21 MB

GitToolBox IntelliJ plugin

License: GNU General Public License v3.0

Java 39.97% HTML 0.69% Kotlin 59.34%
java intellij git idea-plugin kotlin gradle jetbrains-ides

gittoolbox's Introduction

GitToolBox - plugin for Jetbrains IDEs

Repository status notice

Since 29 May 2021 plugin development continues in private repository. This repository serves as an archive but also public issue tracker and online manual.

Plugin is in development since 2014 and this codebase represents significant investment of my free time. Over the years there were only a few contributions so decision to close-source the plugin will not impact pace of development.

Description

Plugin for family of Jetbrains IDEs that expands build-in Git Integration.

Features

For list of features see the manual

Change notes

For list of change notes see changenotes

Jetbrains plugin repository

Plugin repository page

EAP builds

Add https://plugins.jetbrains.com/plugins/eap/7499 in Settings > Plugins > Browse repositories... > Manage repositories... to receive early access builds.

Architecture decisions record

Record of decisions is here.

Building & running

Releases

Release current -SNAPSHOT

gradle clean release

Upgrade to next minor version

gradle clean releaseMinorVersion

Upgrade to next major version

gradle clean releaseMajorVersion

Release and publish

Append -Ppublish=true and include publishPlugin task. For example

gradle clean release publishPlugin -Ppublish=true

Useful build commands

Full verification of build

gradle clean check integrationTest

Quick verification of build

gradle clean check

Generate code coverage report

gradle clean codeCoverage

Build to install with Install from disk

gradle buildPlugin

Update gradle version

./gradlew wrapper --gradle-version 6.8.1 --distribution-type BIN

Useful run commands

Run with previous sandbox contents

gradle runIde

Run with fresh sandbox

gradle clean runIde

Run plugin verifier

./gradlew runPluginVerifier -x buildSearchableOptions

Debugging

To debug the plugin execute Gradle run configuration with runIde task using IDE Debug action.

Logging

Plugin can log additional diagnostic information to help with issues investigation. All categories can be used in any combination.

Debug logging

Add following line to Help > Debug Log Settings...

#zielu.gittoolbox

Performance metrics

Metrics are exposed via JMX beans under zielu.gittoolbox domain.

Icons attribution:

Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License

Some icons by Yusuke Kamiyamane. Licensed under a Creative Commons Attribution 3.0 License

gittoolbox's People

Contributors

zielu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gittoolbox's Issues

Support for showing authors of file

It might be useful to find the author who modified the biggest part of a file. For example if you want to known who you should ask for help.

Do you think that such a feature might become a useful part of git-tool-box? Maybe I could also implement it, if you give me a good place where it might fit.

Plugin causes IDEA 16 (EAP) to hang

2015-12-22 01:15:24,202 [  22219]  ERROR - plication.impl.ApplicationImpl - git4idea.GitLocalBranch.getHash()Lcom/intellij/vcs/log/Hash; 
java.lang.NoSuchMethodError: git4idea.GitLocalBranch.getHash()Lcom/intellij/vcs/log/Hash;
    at zielu.gittoolbox.cache.RepoStatus.create(RepoStatus.java:32)
    at zielu.gittoolbox.cache.CachedStatus.update(CachedStatus.java:35)
    at zielu.gittoolbox.cache.PerRepoInfoCache.get(PerRepoInfoCache.java:56)
    at zielu.gittoolbox.cache.PerRepoInfoCache.getInfo(PerRepoInfoCache.java:69)
    at zielu.gittoolbox.cache.PerRepoInfoCache.onRepoChanged(PerRepoInfoCache.java:98)
    at zielu.gittoolbox.cache.PerRepoInfoCache.access$000(PerRepoInfoCache.java:21)
    at zielu.gittoolbox.cache.PerRepoInfoCache$1.run(PerRepoInfoCache.java:90)
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:365)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at org.jetbrains.ide.PooledThreadExecutor$2$1.run(PooledThreadExecutor.java:71)

IntelliJ freezes during interactive rebase

Since updating to 2016.3, an interactive rebase blocks IDEA completely on the first try. The status message shows "Rebasing..." but the GUI is not updated anymore.

My process list shows a "git4idea.rebase.GitRebaseEditorMain". If I kill that process, IDEA displays an error "There was a problem with the editor...". After that, I have to abort the rebase and try again. On the second try, everything works as expected.

According to an IDEA developer, this is caused by GitToolBox. If I can help by providing logs and stacktraces, please tell me where I can send them privately without publishing them on GitHub.

Git Extender integration

When Git Extender is also installed provide option to select which action should be invoked when 'Update project' is clicked in notification popup.

When option is for Git Extender is selected but plugin is not installed/disabled - reset to default.

id = gr.jchrist.gitextender

This stopwatch is already running.

This stopwatch is already running.
java.lang.IllegalStateException: This stopwatch is already running.
at com.google.common.base.Preconditions.checkState(Preconditions.java:444)
at com.google.common.base.Stopwatch.start(Stopwatch.java:143)
at zielu.gittoolbox.util.LogWatch.start(LogWatch.java:33)
at zielu.gittoolbox.ui.projectView.ProjectViewDecorator.decorate(ProjectViewDecorator.java:43)

Autofetch should not prune or at least make it an option

I just installed plugin and it pruned and removed all of my local copies of remote branches. I am keeping local copies of branches so it's quicker to move back and forth b/w branches.

I would like use auto-fetch as it provides valuable notices in the IDE. Does it need to prune?

Font in status bar remains unchanged

If you adjust default font in IDE in Settings > Appearance & Behavior > Appearance

image

the font size in status bar remains unchanged until IDE restart

image

Same problem with Git Status bar in Git Integration plugin. But Encoding widget works fine (as you can see on screenshot)

Since the newest version, the status decorations are wrong after multi-push

Several times now I have had this issue with the newest version - when doing multi-push (on multiple modules at once), if one of the repositories is auto-merged during the push, the status does not update and still shows the repo behind the upstream. Nothing fixes the issue short of a restart of IntelliJ (fetching, disabling/reenabling decorations etc. doesn't work).

cannot create class "zielu.gittoolbox.actions.GitFetchAndShowStatusAction"

This is happening on startup. IDEA 13.1.4/OSX 10.8.5

cannot create class "zielu.gittoolbox.actions.GitFetchAndShowStatusAction" [Plugin: zielu.gittoolbox]: cannot create class "zielu.gittoolbox.actions.GitFetchAndShowStatusAction" [Plugin: zielu.gittoolbox]
com.intellij.diagnostic.PluginException: cannot create class "zielu.gittoolbox.actions.GitFetchAndShowStatusAction" [Plugin: zielu.gittoolbox]
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:287)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:239)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:232)
at com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:345)
at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:303)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1261)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1254)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:1254)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:1269)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:1269)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:1269)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:1269)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1248)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.c(ActionManagerImpl.java:1239)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.access$200(ActionManagerImpl.java:73)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$4.run(ActionManagerImpl.java:1220)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149)
Caused by: com.intellij.diagnostic.PluginException: zielu/gittoolbox/actions/GitFetchAndShowStatusAction : Unsupported major.minor version 51.0 [Plugin: zielu.gittoolbox]
at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:130)
at com.intellij.ide.plugins.cl.PluginClassLoader.a(PluginClassLoader.java:77)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:66)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.a(ActionManagerImpl.java:262)
... 24 more
Caused by: java.lang.UnsupportedClassVersionError: zielu/gittoolbox/actions/GitFetchAndShowStatusAction : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.lang.ClassLoader.defineClass(ClassLoader.java:471)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:195)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:191)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:167)
at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:124)
... 30 more

Git Status Widget UTF-8 display problem

Using PHPStorm v9.0 and GitToolBox v13.3.0 the awesome new Git status widget does not display the arrows correctly, see attached screenshot.

screenshot from 2015-07-20 10 50 24

Ubuntu 14.04

Latest update prevents me from opening any project

When starting PHPStorm with the lastest plugin version, my currently opened project gets automatically closed and I'm sent to the home screen. From there, I can't open any project unless I disable the plugin and restart.

Support for PhpStorm 2016.2 EAP (162.*)

The current version of GitToolBox is compatible with 144 โ€” 145.*.
But the new Version PhpStorm 2016.2 EAP with #PS-162.426.10. is no more compatible with this plugin.

Could you please make this plugin compatible with 162.*?

Saving password key doesn't work

I've been using your plugin for a while, but every time I open up a new project it asks for my ssh key, I've clicked 'save password' but it always asks again. I'm fairly certain this has been happening ever since I started using it (several months or more ago).

I am on the latest EAP though (2016.3)

Don't queue auto fetch if previous auto fetch is not completed

A blocking operation like a big merge or having the password dialog box show means that an auto fetch will not complete, however new ones are still scheduled and they are all queued up. Once the blocking operation is complete the fetches all happen at once, spawning many processes.

Feature Request: check repository changes

I miss a feature in PHPStorm which might be possible to implement in GitToolBox:

Can you add some note if a remote repository / branch did change after the last fetch?

The tricky part might be that you can not permform a git fetch outside of the regular phpstorm git environement because this will confuse the phpstorm git log.
On the other hand it might be ok to just trigger a regular git fetch via the usual PHPStorm way, for example every minute.

I think this would be really great to have!

Auto fetching started more often than set in the settings

Seems like auto fetching is started much more often than set in the settings (15 minutes)

12:22:07.628: [test-project] git -c core.quotepath=false fetch translations --progress --prune
12:38:38.698: [test-project] git -c core.quotepath=false fetch origin --progress --prune
12:38:42.054: [test-project] git -c core.quotepath=false fetch translations --progress --prune
12:39:40.610: [test-project] git -c core.quotepath=false fetch origin --progress --prune
12:39:43.318: [test-project] git -c core.quotepath=false fetch translations --progress --prune
12:42:49.280: [test-project] git -c core.quotepath=false fetch translations --progress --prune
12:42:52.301: [test-project] git -c core.quotepath=false fetch origin --progress --prune
12:45:36.980: [test-project] git -c core.quotepath=false fetch translations --progress --prune
12:45:39.619: [test-project] git -c core.quotepath=false fetch origin --progress --prune
13:14:59.359: [test-project] git -c core.quotepath=false fetch origin --progress --prune
13:15:32.153: [test-project] git -c core.quotepath=false fetch translations --progress --prune
13:17:35.486: [test-project] git -c core.quotepath=false fetch origin --progress --prune
13:18:00.126: [test-project] git -c core.quotepath=false fetch translations --progress --prune
13:23:44.748: [test-project] git -c core.quotepath=false fetch origin --progress --prune
13:24:05.553: [test-project] git -c core.quotepath=false fetch translations --progress --prune
13:35:02.665: [test-project] git -c core.quotepath=false fetch translations --progress --prune
13:36:05.704: [test-project] git -c core.quotepath=false fetch origin --progress --prune
13:43:02.126: [test-project] git -c core.quotepath=false fetch translations --progress --prune
13:43:06.441: [test-project] git -c core.quotepath=false fetch origin --progress --prune

One more note:
Maybe auto fetching can be delayed when some heavy task, like application building, is running?
Sometimes each megabyte of RAM is needed for building and auto fetching launched at this very moment is not at all convenient :)

if the module is in a group, location path is "null"

In the "Project" view, if a module is placed in a module group, the location path of every module of the group is "null".
Projects outside of the module group (at the root of the view) have their location path well displayed.

support for git svn

There are a few small changes to be made to support git svn (git as an svn client):

  • the remote branch is not correctly found. This is a bit weird, since command line git doesn't see any difference from a normal tracking branch (e.g. git prompt, git branch -vv, and git rev-parse --abbrev-ref --symbolic-full-name @{u} all work fine)
  • auto fetch needs to be changed to do git svn fetch instead of git fetch.

NullPointerException when dragging a tab out of the main window

First of all: Great plugin. Helps a lot in my everyday work!
I just encountered an exception, most likely to be caused by GitToolBox.

Steps to reproduce:

  • Open multiple files, so that you have multiple editor tabs in the main window
  • Drag one of them out of the main window

Expected behavior: The editor tab is placed in a new secondary PhpStorm window.
Actual behavior: Exception status bubble pops up; phantom tab where the dragged tab has been. Changes made in the editor before dragging are not saved. Be aware of data loss.

This error only appears with GitToolBox enabled. Before the latest update of GitToolBox, everything worked fine.

2016-10-31 09:04:24,908 [  17949]  ERROR - llij.ide.plugins.PluginManager - null 
java.lang.NullPointerException
	at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
	at zielu.gittoolbox.cache.PerRepoInfoCache.get(PerRepoInfoCache.java:47)
	at zielu.gittoolbox.cache.PerRepoInfoCache.getInfo(PerRepoInfoCache.java:67)
	at zielu.gittoolbox.ui.statusBar.StatusToolTip.prepareStatusTooltip(StatusToolTip.java:59)
	at zielu.gittoolbox.ui.statusBar.StatusToolTip.prepateToolTip(StatusToolTip.java:48)
	at zielu.gittoolbox.ui.statusBar.StatusToolTip.getText(StatusToolTip.java:39)
	at zielu.gittoolbox.ui.statusBar.GitStatusWidget.getTooltipText(GitStatusWidget.java:133)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl$MultipleTextValuesPresentationWrapper.<init>(IdeStatusBarImpl.java:708)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl$MultipleTextValuesPresentationWrapper.<init>(IdeStatusBarImpl.java:700)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl.b(IdeStatusBarImpl.java:569)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl.a(IdeStatusBarImpl.java:366)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl.b(IdeStatusBarImpl.java:203)
	at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:2397)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl.a(IdeStatusBarImpl.java:203)
	at com.intellij.openapi.wm.impl.status.IdeStatusBarImpl.createChild(IdeStatusBarImpl.java:147)
	at com.intellij.ui.docking.impl.DockManagerImpl$DockWindow.<init>(DockManagerImpl.java:441)
	at com.intellij.ui.docking.impl.DockManagerImpl$DockWindow.<init>(DockManagerImpl.java:423)
	at com.intellij.ui.docking.impl.DockManagerImpl.a(DockManagerImpl.java:417)
	at com.intellij.ui.docking.impl.DockManagerImpl.createNewDockContainerFor(DockManagerImpl.java:376)
	at com.intellij.ui.docking.impl.DockManagerImpl$MyDragSession.process(DockManagerImpl.java:322)
	at com.intellij.openapi.fileEditor.impl.EditorTabbedContainer$MyDragOutDelegate.dragOutFinished(EditorTabbedContainer.java:652)
	at com.intellij.ui.tabs.impl.DragHelper.processDragOutFinish(DragHelper.java:81)
	at com.intellij.ui.MouseDragHelper.mouseReleased(MouseDragHelper.java:157)
	at com.intellij.openapi.wm.impl.IdeGlassPaneImpl.a(IdeGlassPaneImpl.java:405)
	at com.intellij.openapi.wm.impl.IdeGlassPaneImpl.a(IdeGlassPaneImpl.java:296)
	at com.intellij.openapi.wm.impl.IdeGlassPaneImpl.dispatch(IdeGlassPaneImpl.java:136)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:595)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:387)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
2016-10-31 09:04:24,909 [  17950]  ERROR - llij.ide.plugins.PluginManager - PhpStorm 2016.2.2  Build #PS-162.2380.11 
2016-10-31 09:04:24,909 [  17950]  ERROR - llij.ide.plugins.PluginManager - JDK: 1.8.0_112-release 
2016-10-31 09:04:24,910 [  17951]  ERROR - llij.ide.plugins.PluginManager - VM: OpenJDK 64-Bit Server VM 
2016-10-31 09:04:24,910 [  17951]  ERROR - llij.ide.plugins.PluginManager - Vendor: JetBrains s.r.o 
2016-10-31 09:04:24,910 [  17951]  ERROR - llij.ide.plugins.PluginManager - OS: Linux 
2016-10-31 09:04:24,910 [  17951]  ERROR - llij.ide.plugins.PluginManager - Last Action:  

PhpStorm 9 error

I got this error and had to disable GitToolBox. PHPStorm 9.0 was crashing when loading projects with git support enabled.

This seemed to happen on Java update from 8.51 to 8.52. Sorry, the bug report is incomplete because I had a hard time getting the trace before PHPStorm crashed.

java/util/Objects
java.lang.NoClassDefFoundError: java/util/Objects
    at zielu.gittoolbox.cache.CachedStatus.update(CachedStatus.java:31)
    at zielu.gittoolbox.cache.PerRepoStatusCache.get(PerRepoStatusCache.java:48)
    at zielu.gittoolbox.ui.GitStatusWidget.runUpdate(GitStatusWidget.java:146)
    at zielu.gittoolbox.ui.GitStatusWidget.selectionChanged(GitStatusWidget.java:114)
    at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:116)
    at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:322)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:309)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:295)
    at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:288)
    at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:41)
    at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:177)
    at com.sun.proxy.$Proxy80.selectionChanged(Unknown Source)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$17.run(FileEditorManagerImpl.java:1585)
    at com.intellij.openapi.fileEditor.impl.FileEditorManagerImpl$14$1.run(FileEditorManagerImpl.java:1016)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.a(FocusManagerImpl.java:672)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.g(FocusManagerImpl.java:656)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.e(FocusManagerImpl.java:626)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.access$200(FocusManagerImpl.java:60)
    at com.intellij.openapi.wm.impl.FocusManagerImpl$IdleRunnable.runEdt(FocusManagerImpl.java:108)
    at com.intellij.openapi.util.EdtRunnable$1.run(EdtRunnable.java:28)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:734)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:569)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Add checkstyle

Add checkstyle configuration and reformat code to conform to it

'Unable to serialize' exception in PhpStorm 2017.3 Public Preview

Stack trace:

Unable to serialize GitToolBoxProjectSettings state: org/apache/commons/lang3/builder/EqualsBuilder
java.lang.NoClassDefFoundError: org/apache/commons/lang3/builder/EqualsBuilder
	at zielu.gittoolbox.config.CommitCompletionConfig.equals(CommitCompletionConfig.java:71)
	at java.util.AbstractList.equals(AbstractList.java:523)
	at com.intellij.openapi.util.Comparing.equal(Comparing.java:43)
	at com.intellij.util.xmlb.SkipDefaultsSerializationFilter.equal(SkipDefaultsSerializationFilter.java:64)
	at com.intellij.util.xmlb.SkipDefaultsSerializationFilter.equal(SkipDefaultsSerializationFilter.java:32)
	at com.intellij.util.xmlb.BeanBinding.serializeInto(BeanBinding.java:96)
	at com.intellij.util.xmlb.BeanBinding.serialize(BeanBinding.java:80)
	at com.intellij.configurationStore.XmlSerializer.serialize(xmlSerializer.kt:55)
	at com.intellij.configurationStore.XmlSerializer.serialize$default(xmlSerializer.kt:49)
	at com.intellij.configurationStore.SaveSessionBaseKt.serializeState(SaveSessionBase.kt:57)
	at com.intellij.configurationStore.SaveSessionBase.setState(SaveSessionBase.kt:29)
	at com.intellij.configurationStore.StateStorageManagerImpl$startExternalization$1.setState(StateStorageManagerImpl.kt:434)
	at com.intellij.configurationStore.ComponentStoreImpl.a(ComponentStoreImpl.kt:228)
	at com.intellij.configurationStore.ComponentStoreImpl.save(ComponentStoreImpl.kt:158)
	at com.intellij.openapi.components.impl.stores.StoreUtil.save(StoreUtil.java:49)
	at com.intellij.openapi.project.impl.ProjectImpl.save(ProjectImpl.java:349)
	at com.intellij.openapi.components.impl.stores.StoreUtil.saveDocumentsAndProjectsAndApp(StoreUtil.java:126)
	at com.intellij.openapi.application.impl.ApplicationImpl.saveAll(ApplicationImpl.java:1413)
	at com.intellij.openapi.vcs.actions.AbstractCommonCheckinAction.prepareRootsForCommit(AbstractCommonCheckinAction.java:100)
	at com.intellij.openapi.vcs.actions.AbstractCommonCheckinAction.actionPerformed(AbstractCommonCheckinAction.java:63)
	at com.intellij.openapi.vcs.actions.AbstractVcsAction.actionPerformed(AbstractVcsAction.java:48)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:576)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.a(IdeKeyEventDispatcher.java:625)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:624)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.a(IdeKeyEventDispatcher.java:479)
	at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:213)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:622)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Feature Request: white space flag for git annotations

One of the things that seems to of been missed in JetBrains Git plugin is a flag to Ignore whitespace differences in annotations.

It's a bit strange that they missed it given that the option is there in their Mercurial Plugin.

Is this something that could be easily be added to GitToolBox?

Thanks

Global ssh config ignored

On Windows
The %USERPROFILE%/.ssh/config file is ignored when connecting to a repo.
Prompt asks for password for user 'git' and does not use SSH key file.
Nowhere to specify SSH key file.

PHPStorm 2017.2.3
GitToolBox 171.2.0

Already disposed: Project (Disposed)

Already disposed: Project (Disposed) snow-parent
java.lang.AssertionError: Already disposed: Project (Disposed) snow-parent
	at com.intellij.openapi.components.impl.ComponentManagerImpl.getComponent(ComponentManagerImpl.java:167)
	at zielu.gittoolbox.GitToolBoxProject.getInstance(GitToolBoxProject.java:24)
	at zielu.gittoolbox.fetch.AutoFetchTask.doFetch(AutoFetchTask.java:109)
	at zielu.gittoolbox.fetch.AutoFetchTask.doFetch(AutoFetchTask.java:88)
	at zielu.gittoolbox.fetch.AutoFetchTask.access$000(AutoFetchTask.java:25)
	at zielu.gittoolbox.fetch.AutoFetchTask$1.run(AutoFetchTask.java:125)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:726)
	at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:176)
	at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:137)
	at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

The project snow has been closed before, but then the exception occurs.

Rider error when starting the IDE

After updating the plugin to the most recent version:

Plugin 'zielu.gittoolbox' failed to initialize and will be disabled.  Please restart Rider.

java.lang.AbstractMethodError
    at com.intellij.openapi.components.impl.ComponentManagerImpl.registerComponentInstance(ComponentManagerImpl.java:417)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.access$300(ComponentManagerImpl.java:58)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:482)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:120)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$createComponents$8(ApplicationImpl.java:466)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)
    at com.intellij.openapi.application.impl.ApplicationImpl.createComponents(ApplicationImpl.java:473)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:425)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:411)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:203)
    at com.intellij.idea.MainImpl$1$1.lambda$proceed$0(MainImpl.java:63)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Git stat icons are not shown correctly

My setup:

  • Ubuntu 14.04
  • Webstorm 16.01
  • GitToolBox 16.0.1

My issue:
The icons next to the git stat information that indicate the number of commits you are behind or ahead are not shown correctly. This is the case both in the status bar in the bottom as next to the project root folder in the project tab. I attached a screenshot indicating the issue.

It would be great if you would be able to help me out, thanks in advance!

icons not shown correctly

Feature Request: Button to fetch,stash,rebase and stash pop in one go

Hey, great Plug-In!

A thing we do a lot here is to avoid using pull. I know you can use git pull --rebase to get a similar effect, however the problem is, that we often have uncommitted changes and want to avoid the merges. Our workflow is often to simply fetch -> stash changes -> rebase -> unstash changes via stash pop.
Since you featured auto-fetch, I wonder if it would be possible to add a feature that basically does the flow I described.

Cheers!

Sometimes the status bar not updated correctly

Sometimes after push(Cmd+Shift+K), the status bar didn't refresh and remain the 1 โ†‘.

IntelliJ IDEA 2016.3.1 Build #IU-163.9166.29, built on December 9, 2016
git version 2.11.0

Tagging is broken

Setting a forced tag does not work since latest version. It says "tag updated" but the tag does not update. Adding new tags works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.