bf6e4027fa7ca3668cc14e75d0780d7b781c7fba
[idea/community.git] / plugins / git4idea / resources / META-INF / plugin.xml
1 <idea-plugin>
2   <name>Git</name>
3   <id>Git4Idea</id>
4   <description>
5     <![CDATA[
6       Provides integration with <a href="http://git-scm.com/">Git</a>.
7         <ul>
8         <li>Check out your source code from a Git repository</li>
9         <li>Browse, commit, push, pull, merge, view log, review pull requests, and much more</li>
10         <li>Dedicated item in the VCS menu and in the context menu</li>
11         </ul>
12          <p>To configure, open <b>Settings / Preferences</b> and go to <b>Version Control | Git</b>.</p>
13       ]]>
14    </description>
15   <category>Version Controls</category>
16   <vendor>JetBrains</vendor>
17
18   <resource-bundle>messages.GitBundle</resource-bundle>
19
20   <depends>com.intellij.modules.vcs</depends>
21   <depends optional="true" config-file="git-terminal.xml">org.jetbrains.plugins.terminal</depends>
22
23   <actions>
24     <action id="Git.Init" class="git4idea.actions.GitInit">
25       <add-to-group group-id="Vcs.Import"/>
26       <add-to-group group-id="Vcs.Operations.Popup.NonVcsAware" relative-to-action="Start.Use.Vcs" anchor="before"/>
27     </action>
28
29     <action id="Git.Log" class="git4idea.log.GitShowExternalLogAction">
30       <add-to-group group-id="Vcs.Browse"/>
31     </action>
32
33     <action class="git4idea.log.GitShowCommitInLogAction" id="Git.SelectInGitLog">
34       <add-to-group group-id="VcsSelectionHistoryDialog.Popup" anchor="after" relative-to-action="Vcs.CopyRevisionNumberAction"/>
35     </action>
36     <action class="git4idea.log.GitBrowseRepoAtRevisionAction" id="Git.BrowseRepoAtRevision"/>
37
38     <group class="git4idea.actions.GitCheckoutActionGroup" id="Git.CheckoutGroup"/>
39     <group class="git4idea.ui.branch.GitLogBranchOperationsActionGroup" id="Git.BranchOperationGroup"/>
40     <action class="git4idea.actions.GitCheckoutRevisionAction" id="Git.CheckoutRevision"/>
41     <action class="git4idea.actions.GitCreateNewBranchAction" id="Git.CreateNewBranch"/>
42     <action class="git4idea.actions.GitCreateTagAction" id="Git.CreateNewTag"/>
43     <action id="Git.Reset.In.Log" class="git4idea.reset.GitResetAction" icon="AllIcons.Actions.Rollback"/>
44     <action id="Git.Revert.In.Log" class="git4idea.revert.GitRevertAction"/>
45     <action id="Git.Uncommit" class="git4idea.reset.GitUncommitAction"/>
46     <action id="Git.Reword.Commit" class="git4idea.rebase.GitRewordAction"/>
47     <action id="Git.Squash.Commits" class="git4idea.rebase.log.squash.GitSquashLogAction"/>
48     <action id="Git.Drop.Commits" class="git4idea.rebase.log.drop.GitDropLogAction"/>
49     <action id="Git.Rename.Local.Branch" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$RenameLocalBranch"/>
50     <action id="Git.Checkout.Branch" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$CheckoutSelectedBranchAction"/>
51     <action id="Git.Log.Branches.Change.Branch.Filter" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$UpdateBranchFilterInLogAction">
52       <mouse-shortcut keystroke="button1 doubleClick" keymap="$default"/>
53       <keyboard-shortcut first-keystroke="ENTER" keymap="$default"/>
54     </action>
55     <action id="Git.Log.Hide.Branches" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$HideBranchesAction"
56             icon="AllIcons.Actions.ArrowCollapse"/>
57     <group id="Git.Log.Branches.Settings" popup="true" icon="AllIcons.General.GearPlain">
58       <action id="Git.Log.Branches.Change.Branch.Filter.On.Selection" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$ChangeBranchFilterAction"/>
59     </group>
60     <action id="Git.Fixup.To.Commit" class="git4idea.rebase.GitCommitFixupBySubjectAction"/>
61     <action id="Git.Squash.Into.Commit" class="git4idea.rebase.GitCommitSquashBySubjectAction"/>
62     <action id="Git.Interactive.Rebase" class="git4idea.rebase.GitInteractiveRebaseAction"/>
63     <action id="Git.Commit.And.Push.Executor" class="git4idea.actions.GitCommitAndPushExecutorAction">
64       <add-to-group group-id="Vcs.CommitExecutor.Actions"/>
65       <keyboard-shortcut first-keystroke="control alt K" keymap="$default"/>
66     </action>
67
68     <group id="Git.FileActions">
69       <reference ref="CheckinFiles"/>
70       <action id="Git.Add" class="com.intellij.openapi.vcs.changes.actions.ScheduleForAdditionWithIgnoredFilesConfirmationAction"
71               icon="AllIcons.General.Add" use-shortcut-of="ChangesView.AddUnversioned"/>
72       <separator/>
73       <reference ref="Annotate"/>
74       <reference ref="Compare.SameVersion"/>
75       <reference ref="Compare.Selected"/>
76       <action id="Git.CompareWithBranch" class="git4idea.actions.GitCompareWithBranchAction"/>
77       <reference ref="Vcs.ShowTabbedFileHistory"/>
78       <reference id="Vcs.ShowHistoryForBlock"/>
79     </group>
80
81     <group id="Git.MainMenu.FileActions" class="git4idea.actions.GitFileActionGroup" popup="true">
82       <reference ref="Git.FileActions"/>
83     </group>
84
85     <group id="Git.MainMenu.RebaseActions" class="git4idea.actions.GitRepositoryStateActionGroup$Rebase" popup="true">
86       <action id="Git.ResolveConflicts" class="git4idea.actions.GitResolveConflictsAction"/>
87       <action id="Git.Rebase.Abort" class="git4idea.actions.GitRebaseAbort"/>
88       <action id="Git.Rebase.Continue" class="git4idea.actions.GitRebaseContinue"/>
89       <action id="Git.Rebase.Skip" class="git4idea.actions.GitRebaseSkip"/>
90     </group>
91
92     <group id="Git.MainMenu.MergeActions" class="git4idea.actions.GitRepositoryStateActionGroup$Merge" popup="true">
93       <reference ref="Git.ResolveConflicts"/>
94       <action id="Git.Merge.Abort" class="git4idea.actions.GitAbortOperationAction$Merge"/>
95     </group>
96
97     <group id="Git.MainMenu.LocalChanges" popup="true">
98       <reference ref="ChangesView.Shelve"/>
99       <reference ref="Vcs.Show.Shelf"/>
100       <action id="Git.Stash" class="git4idea.actions.GitStash"/>
101       <action id="Git.Unstash" class="git4idea.actions.GitUnstash"/>
102       <reference ref="ChangesView.Revert" />
103     </group>
104
105     <group id="Git.MainMenu" class="git4idea.actions.GitMainMenuActionGroup">
106
107       <reference ref="CheckinProject"/>
108       <reference ref="Vcs.Push"/>
109       <reference ref="Vcs.UpdateProject"/>
110       <action id="Git.Pull" class="git4idea.actions.GitPull"/>
111       <action id="Git.Fetch" class="git4idea.actions.GitFetch"/>
112       <separator/>
113       <action id="Git.Merge" class="git4idea.actions.GitMerge" icon="AllIcons.Vcs.Merge"/>
114       <reference ref="Git.MainMenu.MergeActions"/>
115       <action id="Git.Rebase" class="git4idea.actions.GitRebase"/>
116       <reference ref="Git.MainMenu.RebaseActions"/>
117       <separator/>
118       <action id="Git.Branches" class="git4idea.ui.branch.GitBranchesAction" icon="AllIcons.Vcs.Branch">
119         <keyboard-shortcut first-keystroke="control shift BACK_QUOTE" keymap="$default" />
120         <keyboard-shortcut first-keystroke="meta shift BACK_QUOTE" keymap="Mac OS X" remove="true" />
121         <keyboard-shortcut first-keystroke="meta shift BACK_QUOTE" keymap="Mac OS X 10.5+" remove="true" />
122       </action>
123       <reference ref="Git.CreateNewBranch"/>
124       <action id="Git.Tag" class="git4idea.actions.GitTag"/>
125       <action id="Git.Reset" class="git4idea.actions.GitResetHead" icon="AllIcons.Actions.Rollback"/>
126       <separator/>
127       <reference ref="Vcs.Show.Log"/>
128       <reference id="Patch.MainMenu"/>
129       <reference id="Git.MainMenu.LocalChanges"/>
130       <reference id="Git.MainMenu.FileActions"/>
131       <separator/>
132       <action id="Git.Configure.Remotes" class="git4idea.remote.GitConfigureRemotesAction"/>
133       <action id="Git.Clone" class="git4idea.actions.GitCloneAction"/>
134       <separator/>
135       <action id="Git.Revert.Abort" class="git4idea.actions.GitAbortOperationAction$Revert"/>
136       <action id="Git.CherryPick.Abort" class="git4idea.actions.GitAbortOperationAction$CherryPick"/>
137
138       <add-to-group group-id="VcsGroups" relative-to-action="Vcs.MainMenu" anchor="after"/>
139     </group>
140
141     <group id="GitRepositoryActions">
142       <reference ref="Vcs.Push"/>
143       <reference ref="Git.Pull"/>
144       <reference ref="Git.Fetch"/>
145       <separator/>
146       <reference ref="Git.Merge"/>
147       <reference ref="Git.MainMenu.MergeActions"/>
148       <reference ref="Git.Rebase"/>
149       <reference ref="Git.MainMenu.RebaseActions"/>
150       <separator/>
151       <reference ref="Git.Branches"/>
152       <reference ref="Git.CreateNewBranch"/>
153       <reference ref="Git.Tag"/>
154       <reference ref="Git.Reset"/>
155       <separator/>
156       <reference ref="Git.Stash"/>
157       <reference ref="Git.Unstash"/>
158       <separator/>
159       <reference ref="Git.Configure.Remotes"/>
160       <reference ref="Git.Clone"/>
161       <separator/>
162       <reference ref="Git.Revert.Abort"/>
163       <reference ref="Git.CherryPick.Abort"/>
164     </group>
165
166     <group id="Git.Ongoing.Rebase.Actions" popup="false">
167       <!-- See GitOngoingOperationAction -->
168       <reference id="Git.Rebase.Abort"/>
169       <reference id="Git.Merge.Abort"/>
170       <reference id="Git.CherryPick.Abort"/>
171       <reference id="Git.Revert.Abort"/>
172       <reference id="Git.Rebase.Continue"/>
173       <reference id="Git.Rebase.Skip"/>
174     </group>
175
176     <group id="Git.Menu" class="git4idea.actions.GitMenu" popup="true">
177       <reference ref="Git.FileActions"/>
178       <separator/>
179       <reference ref="ChangesView.Revert" />
180       <separator/>
181       <reference ref="GitRepositoryActions"/>
182       <add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Vcs.Specific"/>
183     </group>
184
185     <group id="Git.ContextMenu" class="git4idea.actions.GitMenu" popup="true">
186       <reference ref="Git.FileActions"/>
187       <reference ref="Show.Current.Revision"/>
188       <reference ref="ChangesView.Revert" />
189       <separator/>
190       <reference ref="Git.ResolveConflicts" />
191       <separator/>
192       <reference ref="GitRepositoryActions"/>
193       <add-to-group group-id="VcsGroup" anchor="last"/>
194     </group>
195
196     <!--This group is empty and unused, left for plugins compatibility.-->
197     <group id="Git.LogContextMenu"/>
198
199     <group id="Git.FileHistory.ContextMenu">
200       <reference id="Git.SelectInGitLog"/>
201       <separator/>
202       <reference id="Git.Revert.In.Log" />
203       <separator/>
204       <add-to-group group-id="Vcs.FileHistory.ContextMenu" relative-to-action="VcsHistoryActionsGroup" anchor="before"/>
205     </group>
206
207     <group id="Git.Log.ContextMenu.CheckoutBrowse">
208       <reference id="Git.CheckoutGroup"/>
209       <reference id="Git.BrowseRepoAtRevision"/>
210
211       <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.CompareRevisions" anchor="before"/>
212     </group>
213
214     <group id="Git.Log.ContextMenu">
215       <reference id="Git.Reset.In.Log"/>
216       <reference id="Git.Revert.In.Log"/>
217       <reference id="Git.Uncommit"/>
218       <separator/>
219       <reference id="Git.Reword.Commit"/>
220       <reference id="Git.Fixup.To.Commit" />
221       <reference id="Git.Squash.Into.Commit" />
222       <reference id="Git.Drop.Commits"/>
223       <reference id="Git.Squash.Commits" />
224       <reference id="Git.Interactive.Rebase"/>
225       <separator/>
226       <reference id="Git.BranchOperationGroup"/>
227       <reference id="Git.CreateNewBranch"/>
228       <reference id="Git.CreateNewTag"/>
229       <separator/>
230       <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.GoToChild" anchor="before"/>
231     </group>
232
233     <group id="Git.Log.Toolbar">
234       <action id="Git.Log.DeepCompare" class="git4idea.branch.DeepCompareAction"/>
235       <add-to-group group-id="Vcs.Log.PresentationSettings" relative-to-action="Vcs.Log.HighlightersActionGroup" anchor="after"/>
236     </group>
237
238     <group id="Git.Ignore.File" class="git4idea.ignore.actions.GitIgnoreFileActionGroup">
239       <add-to-group group-id="ChangesViewPopupMenu" anchor="after" relative-to-action="ChangesView.AddUnversioned"/>
240       <add-to-group group-id="Git.FileActions" anchor="after" relative-to-action="Git.Add"/>
241       <add-to-group group-id="Unversioned.Files.Dialog.Popup" anchor="after" relative-to-action="$Delete"/>
242     </group>
243
244     <action id="git4idea.commands.TestGitHttpLoginDialogAction" class="git4idea.commands.TestGitHttpLoginDialogAction" internal="true"/>
245     <action id="CopyPathFromRepositoryRootProvider" class="git4idea.actions.CopyPathFromRepositoryRootProvider">
246       <add-to-group group-id="CopyFileReference"/>
247       <add-to-group group-id="CopyGroup" relative-to-action="CopySourceRootPath" anchor="after"/>
248     </action>
249
250     <action id="Git.Stage.Refresh" class="git4idea.index.actions.GitRefreshStageAction" icon="AllIcons.Actions.Refresh"
251             use-shortcut-of="Refresh"/>
252     <action id="Git.Stage.Add" class="git4idea.index.actions.GitAddAction" use-shortcut-of="ChangesView.AddUnversioned"/>
253     <action id="Git.Stage.Reset" class="git4idea.index.actions.GitResetAction" use-shortcut-of="ChangesView.Revert"/>
254     <action id="Git.Stage.Revert" class="git4idea.index.actions.GitRevertAction" use-shortcut-of="ChangesView.Revert"/>
255     <action id="Git.Stage.AcceptTheirs" class="git4idea.index.actions.GitAcceptTheirsAction"/>
256     <action id="Git.Stage.AcceptYours" class="git4idea.index.actions.GitAcceptYoursAction"/>
257     <action id="Git.Stage.Merge" class="git4idea.index.actions.GitMergeConflictAction"/>
258
259     <group id="Git.Stage.Toolbar">
260       <reference id="Diff.ShowDiff"/>
261       <reference id="Git.Stage.Refresh"/>
262     </group>
263     <group id="Git.Stage.Tree.Menu">
264       <reference id="Git.Stage.Merge"/>
265       <reference id="Git.Stage.AcceptTheirs"/>
266       <reference id="Git.Stage.AcceptYours"/>
267       <reference id="Git.Stage.Add"/>
268       <reference id="Git.Stage.Reset"/>
269       <reference id="Git.Stage.Revert"/>
270       <reference id="$Delete"/>
271       <reference id="Git.Ignore.File"/>
272       <separator/>
273       <reference id="Diff.ShowDiff"/>
274       <reference id="Vcs.ShowTabbedFileHistory"/>
275       <reference id="LocalHistory"/>
276     </group>
277   </actions>
278
279   <extensions defaultExtensionNs="com.intellij">
280     <registryKey key="git.execute.with.mediator" defaultValue="true"
281                  description="Use wrapper executable on Windows to support soft Git process cancellation."/>
282     <registryKey key="git.blocking.read" defaultValue="true"
283                  description="Use blocking mode for git process output reader."/>
284     <registryKey key="git.allow.stderr.to.stdout.mixing" defaultValue="false"
285                  description="Enables legacy hack for git integration, when some messages from stderr are handled as if they came from stdout."/>
286     <registryKey key="git.execution.trace" defaultValue="0"
287                  description="Bitmask to control git logging of the commands executed by the IDE. Specified as int.\n
288                               (0)  00000 - logging disabled\n
289                               (31) 11111 - all categories enabled\n
290                               (29) 11101 - the one you might want\n
291                               (1)  00001 - GIT_TRACE\n
292                               (2)  00010 - GIT_TRACE_PACK_ACCESS\n
293                               (4)  00100 - GIT_TRACE_PACKET\n
294                               (8)  01000 - GIT_TRACE_PERFOMANCE\n
295                               (16) 10000 - GIT_TRACE_SETUP"/>
296     <registryKey key="git.file.history.full" defaultValue="true"
297                  description="Adds &quot;--full-history --simplify-merges&quot; to git log arguments when retrieving history for a file.
298                               This may sometimes result in empty merges being shown in the file history.
299                               However, skipping this arguments hides some side branches if the end result is the same."/>
300     <registryKey key="git.diff.renameLimit" defaultValue="1"
301                  description="Sets diff.renameLimit configuration variable value.\n
302                               Essentially this variable tells Git the maximal size of commit for which to perform rename detection.
303                               Zero value means detecting renames in all commits.
304                               Setting this value too high (or zero) may lead to increased memory consumption by a Git process and longer execution time.\n
305                               This variable only used when reading git commits for indexing.
306                               Value from git configuration (1000 by default) is used for other purposes (eg for displaying changes in changes view)."/>
307     <registryKey key="git.refresh.vfs.total" defaultValue="false"
308                  description="If set to true, the whole Git repository root will be refreshed after performing a Git operation.
309                               Otherwise only the affected files will be refreshed.
310                               Affects only a subset of Git operations.
311                               The option is needed to debug possible &quot;incomplete VFS refresh&quot; reports, if they appear."/>
312     <registryKey key="git.force.commit.using.staging.area" defaultValue="true"
313                  description="When enabled, perform all git commits by updating staging area. If disabled, use 'git commit --only' when possible."/>
314     <registryKey key="git.clone.recurse.submodules" defaultValue="true"
315                  description="When enabled, Checkout from Git calls 'git clone --recurse-submodules', i.e. clones the main repository with all submodules if there are any."/>
316     <registryKey key="git.read.content.with.textconv" defaultValue="false"
317                  description="Apply 'textconv' transformations when reading file content from git. (overrides &quot;git.read.content.with.filters&quot; option)"/>
318     <registryKey key="git.read.content.with.filters" defaultValue="true"
319                  description="Apply 'filters' transformations when reading file content from git."/>
320     <registryKey key="git.log.fix.merge.commits.parents.order" defaultValue="false" restartRequired="true"
321                  description="Find merge commits where a remote branch was merged into local before pushing
322                               and fix parents order for such commits in order to display them more naturally in the commits graph."/>
323     <registryKey key="git.log.use.index.for.picked.commits.highlighting" defaultValue="true"
324                  description="Find cherry-picked commits not only looking at patches using 'git cherry'
325                               but also by matching commit author, author time and &quot;cherry picked from commit &lt;hash&gt;&quot; suffix."/>
326     <registryKey key="git.log.fast.picked.commits.highlighting" defaultValue="false"
327                  description="Find cherry-picked commits not looking at patches using 'git cherry'
328                               but by matching commit author, author time and commit message. This allows to find commits that were cherry-picked with conflicts
329                               and without adding &quot;cherry picked from commit &lt;hash&gt;&quot; suffix. Requires &quot;git.log.use.index.for.picked.commits.highlighting&quot; set to true."/>
330     <registryKey key="git.parallel.fetch.threads" defaultValue="-3"
331                  description="Number of threads to call git fetch in parallel.\n
332                               Set to 1 to execute sequentially.\n
333                               Set to -1 to use the number of CPU cores.\n
334                               Set to -2 to start as many threads, as there are repositories in the project.\n
335                               Set to -3 to start as many threads, as there are repositories, but not more than 2 * number of cores.\n
336                               By default, SSH supports up to 10 multiplexed connections, thus number of threads will be limited by 10 despite this value."/>
337     <registryKey key="git.use.schannel.on.windows" defaultValue="false"
338                  description="Force git to use Windows certificate store to very SSL connections. Git 2.14 and above is required"/>
339     <registryKey key="git.use.shell.script.on.windows" defaultValue="true"
340                  description="Use workaround for Native SSH support in Git. Batch file cannot properly handle arguments with newlines when used as SSH_ASKPASS."/>
341     <registryKey key="git.use.setsid.for.native.ssh" defaultValue="true"
342                  description="Wrap 'git' process with 'setsid' for remote operations.
343                               This fixes issue with SSH_ASKPASS if IDE is executed from terminal or under DM/WM that pass system TTY from Xorg to GUI applications."/>
344     <registryKey key="git.use.setsid.wait.for.wsl.ssh" defaultValue="true"
345                  description="Wrap 'git' process with 'setsid -w' for remote operations with WSL executable."/>
346     <registryKey key="git.use.push.force.with.lease" defaultValue="true"
347                  description="Use '--force-with-lease' to push from IDE instead of '--force'"/>
348     <registryKey key="git.use.no.optional.locks" defaultValue="true"
349                  description="Use 'GIT_OPTIONAL_LOCKS' env variable to avoid taking unnecessary locks in git. Ex: to avoid 'git status' to interfere with 'git rebase' process in terminal."/>
350     <registryKey key="git.process.ignored" defaultValue="true"
351                  description="Process and highlight Git ignored files."/>
352     <registryKey key="git.update.incoming.outgoing.info" defaultValue="true"
353                  description="Update branches info that have incoming/outgoing commits in the Branches popup."/>
354     <registryKey key="git.merge.conflicts.toolwindow" defaultValue="false"
355                  description="Show dedicated toolwindow for git merge conflicts"/>
356     <registryKey key="git.update.project.info.as.log" defaultValue="true"
357                  description="If enabled, Update Project for Git is followed by the list of commits, instead of the list of updated files."/>
358     <registryKey key="git.enable.stage" defaultValue="false"
359                  description="Show tool window with staging area."/>
360     <registryKey key="git.enable.stage.line.status.tracker" defaultValue="true"
361                  description="Show staged and unstaged changes in gutter markers."/>
362     <registryKey key="git.shelve.load.base.in.batches" defaultValue="1000"
363                  description="If set to a value > 0, load base contents for shelving in batches: by reading the given number of files at once. If set to -1, contents are loaded as usual, one by one."/>
364     <registryKey key="git.allow.wsl1.executables" defaultValue="false"
365                  description="If set to false, IDE will ignore configured WSL1 executables. See IDEA-242469"/>
366
367     <search.projectOptionsTopHitProvider implementation="git4idea.config.GitOptionsTopHitProvider"/>
368     <vcs name="Git" vcsClass="git4idea.GitVcs" displayName="Git" administrativeAreaName=".git"/>
369     <checkoutProvider implementation="git4idea.checkout.GitCheckoutProvider" order="first"/>
370     <vcs.checkoutProcessor implementation="git4idea.checkout.GitCheckoutProcessor"/>
371     <vcsRootChecker implementation="git4idea.roots.GitRootChecker"/>
372     <vcsIgnoreChecker implementation="git4idea.ignore.GitIgnoreChecker"/>
373     <vcsRepositoryCreator implementation="git4idea.repo.GitRepositoryCreator"/>
374     <vcsPopupProvider implementation="git4idea.actions.GitQuickListContentProvider"/>
375     <vcsCheckinHandlerFactory implementation="git4idea.checkin.GitCheckinHandlerFactory"/>
376     <vcsCheckinHandlerFactory implementation="git4idea.rebase.GitRebaseCheckinHandlerFactory"/>
377     <checkinHandlerFactory implementation="git4idea.checkin.GitSkipHooksCommitHandlerFactory" order="last"/>
378     <unresolvedMergeCheckProvider implementation="git4idea.checkin.GitUnresolvedMergeCheckProvider"/>
379     <logProvider implementation="git4idea.log.GitLogProvider"/>
380     <vcsChangesViewRefresher implementation="git4idea.changes.GitChangesViewRefresher" />
381     <vcs.branchStateProvider implementation="git4idea.branch.GitBranchStateProvider"/>
382     <pushSupport implementation="git4idea.push.GitPushSupport"/>
383     <cherryPicker implementation="git4idea.cherrypick.GitCherryPicker"/>
384     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitToggleAnnotationOptionsActionProvider" />
385     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitShowCommitInLogAnnotationGutterActionProvider" />
386     <statistics.projectUsagesCollector implementation="git4idea.GitStatisticsCollector"/>
387     <vcsRepositoryInitializer implementation="git4idea.repo.GitRepositoryInitializer"/>
388     <openapi.vcs.changes.actions.diff.ChangeDiffRequestProvider
389         implementation="git4idea.diff.GitSubmoduleDiffRequestProvider"/>
390     <vcsChangesViewRefresher implementation="git4idea.ignore.GitIgnoredFilesHolder$Provider"/>
391     <vcs.ignoredFilesHolder implementation="git4idea.ignore.GitIgnoredFilesHolder$Provider"/>
392     <projectConfigurable id="vcs.Git" displayName="Git" instance="git4idea.config.GitVcsPanel"
393                          parentId="project.propVCSSupport.Mappings" groupWeight="-500"/>
394
395     <projectService serviceImplementation="git4idea.repo.GitRepositoryManager"/>
396     <projectService serviceImplementation="git4idea.ui.branch.GitBranchManager"/>
397     <projectService serviceImplementation="git4idea.branch.GitBranchIncomingOutgoingManager"/>
398     <projectService serviceImplementation="git4idea.checkin.GitCheckinEnvironment"/>
399     <projectService serviceImplementation="git4idea.status.GitChangeProvider"/>
400     <projectService serviceImplementation="git4idea.checkin.GitCommitAndPushExecutor"/>
401     <projectService serviceImplementation="git4idea.changes.GitOutgoingChangesProvider"/>
402     <projectService serviceImplementation="git4idea.changes.GitCommittedChangeListProvider"/>
403     <projectService serviceImplementation="git4idea.update.GitUpdateEnvironment"/>
404     <projectService serviceImplementation="git4idea.config.GitVcsSettings" configurationSchemaKey="versionControl.git"/>
405     <projectService serviceImplementation="git4idea.config.GitRebaseSettings"/>
406     <projectService serviceImplementation="git4idea.config.GitMergeSettings"/>
407     <projectService serviceImplementation="git4idea.config.GitSharedSettings" />
408     <projectService serviceImplementation="git4idea.rebase.interactive.GitRewordedCommitMessageProvider"/>
409     <projectService serviceInterface="git4idea.branch.GitBrancher"
410                     serviceImplementation="git4idea.branch.GitBrancherImpl"/>
411     <projectService serviceImplementation="git4idea.branch.DeepComparatorHolder"/>
412     <projectService serviceImplementation="git4idea.config.GitExecutableProblemsNotifier"/>
413     <projectService serviceImplementation="git4idea.update.GitUpdateProjectInfoLogProperties"/>
414     <projectService serviceImplementation="git4idea.branch.GitCompareBranchesTopLogProperties"/>
415     <projectService serviceImplementation="git4idea.branch.GitCompareBranchesBottomLogProperties"/>
416     <projectService serviceInterface="git4idea.fetch.GitFetchSupport" serviceImplementation="git4idea.fetch.GitFetchSupportImpl" />
417     <projectService serviceImplementation="git4idea.ui.branch.dashboard.BranchesTreeStateHolder"/>
418
419     <applicationService serviceImplementation="git4idea.config.GitVcsApplicationSettings"/>
420     <applicationService serviceImplementation="org.jetbrains.git4idea.ssh.GitXmlRpcNativeSshService"/>
421     <applicationService serviceInterface="git4idea.commands.GitHttpAuthService"
422                         serviceImplementation="git4idea.commands.GitHttpAuthServiceImpl" />
423     <applicationService serviceImplementation="git4idea.rebase.GitRebaseEditorService"/>
424     <applicationService serviceImplementation="git4idea.config.SSHConnectionSettings"/>
425     <applicationService serviceImplementation="git4idea.remote.GitRememberedInputs"/>
426     <applicationService serviceInterface="git4idea.commands.Git"
427                         serviceImplementation="git4idea.commands.GitImpl"/>
428     <applicationService serviceImplementation="git4idea.config.GitExecutableManager"/>
429     <applicationService serviceImplementation="git4idea.DialogManager" />
430     <applicationService serviceImplementation="git4idea.log.GitExternalLogTabsProperties"/>
431
432     <applicationService serviceImplementation="git4idea.light.LightGitTracker"/>
433
434     <fileType name="PLAIN_TEXT" fileNames=".gitmodules"/>
435     <vcs.taskHandler implementation="git4idea.GitTaskHandler"/>
436
437     <logHighlighterFactory implementation="git4idea.branch.DeepComparator$Factory"/>
438
439     <ignoredFileContentProvider implementation="git4idea.ignore.GitIgnoredFileContentProvider"/>
440     <openapi.vcs.changes.vcsPreservingExecutor implementation="git4idea.util.GitPreservingExecutor"/>
441     <editorNotificationProvider implementation="git4idea.conflicts.MergeConflictResolveUtil$NotificationProvider"/>
442     <codeInsight.linkHandler prefix="#git_commit/" handlerClass="git4idea.log.GitCommitTooltipLinkHandler"/>
443
444     <!-- Git ignore lang -->
445     <fileType language="GitIgnore" extensions="gitignore" fieldName="INSTANCE" name="GitIgnore file" implementationClass="git4idea.ignore.lang.GitIgnoreFileType"/>
446     <lang.parserDefinition language="GitIgnore"
447                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
448     <codeInsight.lineMarkerProvider language="GitIgnore"
449                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
450     <lang.braceMatcher language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
451     <lang.commenter language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
452      <!--END Git ignore lang-->
453
454     <!-- Git exclude lang -->
455     <fileType language="GitExclude" fileNames="exclude" fieldName="INSTANCE" name="GitExclude file" implementationClass="git4idea.ignore.lang.GitExcludeFileType"/>
456     <lang.fileViewProviderFactory language="GitExclude"
457                                   implementationClass="git4idea.ignore.lang.GitExcludeViewProviderFactory"/>
458     <lang.parserDefinition language="GitExclude"
459                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
460     <codeInsight.lineMarkerProvider language="GitExclude"
461                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
462     <lang.braceMatcher language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
463     <lang.commenter language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
464      <!--END Git exclude lang-->
465
466     <backgroundPostStartupActivity implementation="git4idea.ignore.GitIgnoreInStoreDirGeneratorActivity"/>
467     <backgroundPostStartupActivity implementation="git4idea.config.GitSetupProjectConfig" />
468
469     <registryKey key="git.update.incoming.info.time" defaultValue="20"
470                  description="Time period (in minutes) between incoming commits checks." restartRequired="true"/>
471
472     <registryKey key="git.commit.completion.fixup.squash" defaultValue="false"
473                  description="Provide completion for fixup and squash prefixes in commit message field" restartRequired="false"/>
474
475     <registryKey key="git.interactive.rebase.collect.entries.using.log" defaultValue="true"
476                  description="Use Log to collect Rebase Entries"/>
477
478     <vcs.actions.ScheduleForAdditionActionExtension implementation="git4idea.actions.GitAdd"/>
479     <completion.contributor language="TEXT" implementationClass="git4idea.commit.GitCommitCompletionContributor"
480                             order="first, before commitCompletion"/>
481
482     <customVcsLogUiFactoryProvider implementation="git4idea.ui.branch.dashboard.BranchesInGitLogUiFactoryProvider"/>
483     <virtualFileSystem key="git-compare-branches" implementationClass="git4idea.branch.GitCompareBranchesVirtualFileSystem"/>
484
485     <statusBarWidgetFactory implementation="git4idea.light.LightGitStatusBarWidgetFactory"/>
486     <lightEditTabAttributesProvider implementation="git4idea.light.LightGitTabAttributesProvider"/>
487     <statusBarWidgetFactory id="gitWidget"
488                             implementation="git4idea.ui.branch.GitBranchWidget$Factory"
489                             order="after codeStyleWidget,before readOnlyWidget"/>
490
491     <vcsBulkMovesOnlyChangesFilter implementation="git4idea.GitBulkMovesOnlyChangesFilter"/>
492
493     <editorNotificationProvider implementation="git4idea.ui.GitEditorPromo" order="first"/>
494
495     <changesViewContent id="git.stage" tabName="Staging Area" className="git4idea.index.GitStageContentProvider"
496                         predicateClassName="git4idea.index.GitStageContentVisibilityPredicate"
497                         preloaderClassName="git4idea.index.GitStageContentPreloader"
498                         displayNameSupplierClassName="git4idea.index.GitStageDisplayNameSupplier"/>
499
500     <projectService serviceImplementation="git4idea.index.GitStageManager"/>
501     <projectService serviceImplementation="git4idea.index.GitStageTracker"/>
502     <openapi.vcs.impl.LocalLineStatusTrackerProvider implementation="git4idea.index.lst.GitStageLineStatusTrackerProvider"/>
503
504     <backgroundPostStartupActivity implementation="git4idea.index.GitStageStartupActivity"/>
505
506     <projectService serviceImplementation="git4idea.index.vfs.GitIndexVirtualFileCache"/>
507     <projectService serviceImplementation="git4idea.index.vfs.GitIndexFileSystemRefresher"/>
508     <virtualFileSystem implementationClass="git4idea.index.vfs.GitIndexFileSystem" key="gitIndexFs" physical="true"/>
509
510     <vcs.baseContentProvider implementation="git4idea.index.vfs.GitIndexVirtualFileBaseContentProvider"/>
511     <editorNotificationProvider implementation="git4idea.index.vfs.GitIndexVirtualFileEditorNotificationProvider"/>
512     <editorTabTitleProvider implementation="git4idea.index.vfs.GitIndexVirtualFileTabTitleProvider"/>
513
514     <diff.actions.ShowDiffAction.ExtensionProvider implementation="git4idea.index.actions.GitStageDiffAction"/>
515
516     <vcs.consoleFolding implementation="git4idea.console.GitConsoleFolding"/>
517     <console.folding implementation="git4idea.console.GitProgressOutputConsoleFolding"/>
518   </extensions>
519
520   <extensionPoints>
521     <extensionPoint interface="git4idea.remote.GitHttpAuthDataProvider" name="GitHttpAuthDataProvider" dynamic="true"/>
522     <extensionPoint interface="git4idea.remote.GitRepositoryHostingService" name="gitRepositoryHostingService" dynamic="true"/>
523     <extensionPoint interface="git4idea.checkin.GitCheckinExplicitMovementProvider"
524                     name="GitCheckinExplicitMovementProvider"
525                     dynamic="true"/>
526   </extensionPoints>
527
528   <projectListeners>
529     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyStagingAreaListener"
530               topic="git4idea.status.GitStagingAreaHolder$StagingAreaListener"
531               activeInHeadlessMode="false"/>
532     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyRepositoryListener"
533               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
534               activeInHeadlessMode="false"/>
535     <listener class="git4idea.ui.branch.GitBranchWidget$Listener"
536               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
537               activeInHeadlessMode="false" activeInTestMode="false"/>
538   </projectListeners>
539 </idea-plugin>