3b730e92d9d64b14757e906c979f0554689b7cbf
[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
258     <group id="Git.Stage.Toolbar">
259       <reference id="Diff.ShowDiff"/>
260       <reference id="Git.Stage.Refresh"/>
261     </group>
262     <group id="Git.Stage.Tree.Menu">
263       <reference id="Git.Stage.AcceptTheirs"/>
264       <reference id="Git.Stage.AcceptYours"/>
265       <reference id="Git.Stage.Add"/>
266       <reference id="Git.Stage.Reset"/>
267       <reference id="Git.Stage.Revert"/>
268       <reference id="$Delete"/>
269       <reference id="Git.Ignore.File"/>
270       <separator/>
271       <reference id="Diff.ShowDiff"/>
272       <reference id="Vcs.ShowTabbedFileHistory"/>
273       <reference id="LocalHistory"/>
274     </group>
275   </actions>
276
277   <extensions defaultExtensionNs="com.intellij">
278     <registryKey key="git.execute.with.mediator" defaultValue="true"
279                  description="Use wrapper executable on Windows to support soft Git process cancellation."/>
280     <registryKey key="git.blocking.read" defaultValue="true"
281                  description="Use blocking mode for git process output reader."/>
282     <registryKey key="git.allow.stderr.to.stdout.mixing" defaultValue="false"
283                  description="Enables legacy hack for git integration, when some messages from stderr are handled as if they came from stdout."/>
284     <registryKey key="git.execution.trace" defaultValue="0"
285                  description="Bitmask to control git logging of the commands executed by the IDE. Specified as int.\n
286                               (0)  00000 - logging disabled\n
287                               (31) 11111 - all categories enabled\n
288                               (29) 11101 - the one you might want\n
289                               (1)  00001 - GIT_TRACE\n
290                               (2)  00010 - GIT_TRACE_PACK_ACCESS\n
291                               (4)  00100 - GIT_TRACE_PACKET\n
292                               (8)  01000 - GIT_TRACE_PERFOMANCE\n
293                               (16) 10000 - GIT_TRACE_SETUP"/>
294     <registryKey key="git.file.history.full" defaultValue="true"
295                  description="Adds &quot;--full-history --simplify-merges&quot; to git log arguments when retrieving history for a file.
296                               This may sometimes result in empty merges being shown in the file history.
297                               However, skipping this arguments hides some side branches if the end result is the same."/>
298     <registryKey key="git.diff.renameLimit" defaultValue="1"
299                  description="Sets diff.renameLimit configuration variable value.\n
300                               Essentially this variable tells Git the maximal size of commit for which to perform rename detection.
301                               Zero value means detecting renames in all commits.
302                               Setting this value too high (or zero) may lead to increased memory consumption by a Git process and longer execution time.\n
303                               This variable only used when reading git commits for indexing.
304                               Value from git configuration (1000 by default) is used for other purposes (eg for displaying changes in changes view)."/>
305     <registryKey key="git.refresh.vfs.total" defaultValue="false"
306                  description="If set to true, the whole Git repository root will be refreshed after performing a Git operation.
307                               Otherwise only the affected files will be refreshed.
308                               Affects only a subset of Git operations.
309                               The option is needed to debug possible &quot;incomplete VFS refresh&quot; reports, if they appear."/>
310     <registryKey key="git.force.commit.using.staging.area" defaultValue="true"
311                  description="When enabled, perform all git commits by updating staging area. If disabled, use 'git commit --only' when possible."/>
312     <registryKey key="git.clone.recurse.submodules" defaultValue="true"
313                  description="When enabled, Checkout from Git calls 'git clone --recurse-submodules', i.e. clones the main repository with all submodules if there are any."/>
314     <registryKey key="git.read.content.with.textconv" defaultValue="false"
315                  description="Apply 'textconv' transformations when reading file content from git. (overrides &quot;git.read.content.with.filters&quot; option)"/>
316     <registryKey key="git.read.content.with.filters" defaultValue="true"
317                  description="Apply 'filters' transformations when reading file content from git."/>
318     <registryKey key="git.log.fix.merge.commits.parents.order" defaultValue="false" restartRequired="true"
319                  description="Find merge commits where a remote branch was merged into local before pushing
320                               and fix parents order for such commits in order to display them more naturally in the commits graph."/>
321     <registryKey key="git.log.use.index.for.picked.commits.highlighting" defaultValue="true"
322                  description="Find cherry-picked commits not only looking at patches using 'git cherry'
323                               but also by matching commit author, author time and &quot;cherry picked from commit &lt;hash&gt;&quot; suffix."/>
324     <registryKey key="git.log.fast.picked.commits.highlighting" defaultValue="false"
325                  description="Find cherry-picked commits not looking at patches using 'git cherry'
326                               but by matching commit author, author time and commit message. This allows to find commits that were cherry-picked with conflicts
327                               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."/>
328     <registryKey key="git.parallel.fetch.threads" defaultValue="-3"
329                  description="Number of threads to call git fetch in parallel.\n
330                               Set to 1 to execute sequentially.\n
331                               Set to -1 to use the number of CPU cores.\n
332                               Set to -2 to start as many threads, as there are repositories in the project.\n
333                               Set to -3 to start as many threads, as there are repositories, but not more than 2 * number of cores.\n
334                               By default, SSH supports up to 10 multiplexed connections, thus number of threads will be limited by 10 despite this value."/>
335     <registryKey key="git.use.schannel.on.windows" defaultValue="false"
336                  description="Force git to use Windows certificate store to very SSL connections. Git 2.14 and above is required"/>
337     <registryKey key="git.use.shell.script.on.windows" defaultValue="true"
338                  description="Use workaround for Native SSH support in Git. Batch file cannot properly handle arguments with newlines when used as SSH_ASKPASS."/>
339     <registryKey key="git.use.setsid.for.native.ssh" defaultValue="true"
340                  description="Wrap 'git' process with 'setsid' for remote operations.
341                               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."/>
342     <registryKey key="git.use.setsid.wait.for.wsl.ssh" defaultValue="true"
343                  description="Wrap 'git' process with 'setsid -w' for remote operations with WSL executable."/>
344     <registryKey key="git.use.push.force.with.lease" defaultValue="true"
345                  description="Use '--force-with-lease' to push from IDE instead of '--force'"/>
346     <registryKey key="git.use.no.optional.locks" defaultValue="true"
347                  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."/>
348     <registryKey key="git.process.ignored" defaultValue="true"
349                  description="Process and highlight Git ignored files."/>
350     <registryKey key="git.update.incoming.outgoing.info" defaultValue="true"
351                  description="Update branches info that have incoming/outgoing commits in the Branches popup."/>
352     <registryKey key="git.merge.conflicts.toolwindow" defaultValue="false"
353                  description="Show dedicated toolwindow for git merge conflicts"/>
354     <registryKey key="git.update.project.info.as.log" defaultValue="true"
355                  description="If enabled, Update Project for Git is followed by the list of commits, instead of the list of updated files."/>
356     <registryKey key="git.enable.stage" defaultValue="false"
357                  description="Show tool window with staging area."/>
358     <registryKey key="git.enable.stage.line.status.tracker" defaultValue="true"
359                  description="Show staged and unstaged changes in gutter markers."/>
360     <registryKey key="git.shelve.load.base.in.batches" defaultValue="1000"
361                  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."/>
362     <registryKey key="git.allow.wsl1.executables" defaultValue="false"
363                  description="If set to false, IDE will ignore configured WSL1 executables. See IDEA-242469"/>
364
365     <search.projectOptionsTopHitProvider implementation="git4idea.config.GitOptionsTopHitProvider"/>
366     <vcs name="Git" vcsClass="git4idea.GitVcs" displayName="Git" administrativeAreaName=".git"/>
367     <checkoutProvider implementation="git4idea.checkout.GitCheckoutProvider" order="first"/>
368     <vcs.checkoutProcessor implementation="git4idea.checkout.GitCheckoutProcessor"/>
369     <vcsRootChecker implementation="git4idea.roots.GitRootChecker"/>
370     <vcsIgnoreChecker implementation="git4idea.ignore.GitIgnoreChecker"/>
371     <vcsRepositoryCreator implementation="git4idea.repo.GitRepositoryCreator"/>
372     <vcsPopupProvider implementation="git4idea.actions.GitQuickListContentProvider"/>
373     <vcsCheckinHandlerFactory implementation="git4idea.checkin.GitCheckinHandlerFactory"/>
374     <vcsCheckinHandlerFactory implementation="git4idea.rebase.GitRebaseCheckinHandlerFactory"/>
375     <checkinHandlerFactory implementation="git4idea.checkin.GitSkipHooksCommitHandlerFactory" order="last"/>
376     <unresolvedMergeCheckProvider implementation="git4idea.checkin.GitUnresolvedMergeCheckProvider"/>
377     <logProvider implementation="git4idea.log.GitLogProvider"/>
378     <vcsChangesViewRefresher implementation="git4idea.changes.GitChangesViewRefresher" />
379     <vcs.branchStateProvider implementation="git4idea.branch.GitBranchStateProvider"/>
380     <pushSupport implementation="git4idea.push.GitPushSupport"/>
381     <cherryPicker implementation="git4idea.cherrypick.GitCherryPicker"/>
382     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitToggleAnnotationOptionsActionProvider" />
383     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitShowCommitInLogAnnotationGutterActionProvider" />
384     <statistics.projectUsagesCollector implementation="git4idea.GitStatisticsCollector"/>
385     <vcsRepositoryInitializer implementation="git4idea.repo.GitRepositoryInitializer"/>
386     <openapi.vcs.changes.actions.diff.ChangeDiffRequestProvider
387         implementation="git4idea.diff.GitSubmoduleDiffRequestProvider"/>
388     <vcsChangesViewRefresher implementation="git4idea.ignore.GitIgnoredFilesHolder$Provider"/>
389     <vcs.ignoredFilesHolder implementation="git4idea.ignore.GitIgnoredFilesHolder$Provider"/>
390     <projectConfigurable id="vcs.Git" displayName="Git" instance="git4idea.config.GitVcsPanel"
391                          parentId="project.propVCSSupport.Mappings" groupWeight="-500"/>
392
393     <projectService serviceImplementation="git4idea.repo.GitRepositoryManager"/>
394     <projectService serviceImplementation="git4idea.ui.branch.GitBranchManager"/>
395     <projectService serviceImplementation="git4idea.branch.GitBranchIncomingOutgoingManager"/>
396     <projectService serviceImplementation="git4idea.checkin.GitCheckinEnvironment"/>
397     <projectService serviceImplementation="git4idea.status.GitChangeProvider"/>
398     <projectService serviceImplementation="git4idea.checkin.GitCommitAndPushExecutor"/>
399     <projectService serviceImplementation="git4idea.changes.GitOutgoingChangesProvider"/>
400     <projectService serviceImplementation="git4idea.changes.GitCommittedChangeListProvider"/>
401     <projectService serviceImplementation="git4idea.update.GitUpdateEnvironment"/>
402     <projectService serviceImplementation="git4idea.config.GitVcsSettings" configurationSchemaKey="versionControl.git"/>
403     <projectService serviceImplementation="git4idea.config.GitRebaseSettings"/>
404     <projectService serviceImplementation="git4idea.config.GitMergeSettings"/>
405     <projectService serviceImplementation="git4idea.config.GitSharedSettings" />
406     <projectService serviceImplementation="git4idea.rebase.interactive.GitRewordedCommitMessageProvider"/>
407     <projectService serviceInterface="git4idea.branch.GitBrancher"
408                     serviceImplementation="git4idea.branch.GitBrancherImpl"/>
409     <projectService serviceImplementation="git4idea.branch.DeepComparatorHolder"/>
410     <projectService serviceImplementation="git4idea.config.GitExecutableProblemsNotifier"/>
411     <projectService serviceImplementation="git4idea.update.GitUpdateProjectInfoLogProperties"/>
412     <projectService serviceImplementation="git4idea.branch.GitCompareBranchesTopLogProperties"/>
413     <projectService serviceImplementation="git4idea.branch.GitCompareBranchesBottomLogProperties"/>
414     <projectService serviceInterface="git4idea.fetch.GitFetchSupport" serviceImplementation="git4idea.fetch.GitFetchSupportImpl" />
415     <projectService serviceImplementation="git4idea.ui.branch.dashboard.BranchesTreeStateHolder"/>
416
417     <applicationService serviceImplementation="git4idea.config.GitVcsApplicationSettings"/>
418     <applicationService serviceImplementation="org.jetbrains.git4idea.ssh.GitXmlRpcNativeSshService"/>
419     <applicationService serviceInterface="git4idea.commands.GitHttpAuthService"
420                         serviceImplementation="git4idea.commands.GitHttpAuthServiceImpl" />
421     <applicationService serviceImplementation="git4idea.rebase.GitRebaseEditorService"/>
422     <applicationService serviceImplementation="git4idea.config.SSHConnectionSettings"/>
423     <applicationService serviceImplementation="git4idea.remote.GitRememberedInputs"/>
424     <applicationService serviceInterface="git4idea.commands.Git"
425                         serviceImplementation="git4idea.commands.GitImpl"/>
426     <applicationService serviceImplementation="git4idea.config.GitExecutableManager"/>
427     <applicationService serviceImplementation="git4idea.DialogManager" />
428     <applicationService serviceImplementation="git4idea.log.GitExternalLogTabsProperties"/>
429
430     <applicationService serviceImplementation="git4idea.light.LightGitTracker"/>
431
432     <fileType name="PLAIN_TEXT" fileNames=".gitmodules"/>
433     <vcs.taskHandler implementation="git4idea.GitTaskHandler"/>
434
435     <logHighlighterFactory implementation="git4idea.branch.DeepComparator$Factory"/>
436
437     <ignoredFileContentProvider implementation="git4idea.ignore.GitIgnoredFileContentProvider"/>
438     <openapi.vcs.changes.vcsPreservingExecutor implementation="git4idea.util.GitPreservingExecutor"/>
439     <editorNotificationProvider implementation="git4idea.conflicts.MergeConflictResolveUtil$NotificationProvider"/>
440     <codeInsight.linkHandler prefix="#git_commit/" handlerClass="git4idea.log.GitCommitTooltipLinkHandler"/>
441
442     <!-- Git ignore lang -->
443     <fileType language="GitIgnore" extensions="gitignore" fieldName="INSTANCE" name="GitIgnore file" implementationClass="git4idea.ignore.lang.GitIgnoreFileType"/>
444     <lang.parserDefinition language="GitIgnore"
445                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
446     <codeInsight.lineMarkerProvider language="GitIgnore"
447                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
448     <lang.braceMatcher language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
449     <lang.commenter language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
450      <!--END Git ignore lang-->
451
452     <!-- Git exclude lang -->
453     <fileType language="GitExclude" fileNames="exclude" fieldName="INSTANCE" name="GitExclude file" implementationClass="git4idea.ignore.lang.GitExcludeFileType"/>
454     <lang.fileViewProviderFactory language="GitExclude"
455                                   implementationClass="git4idea.ignore.lang.GitExcludeViewProviderFactory"/>
456     <lang.parserDefinition language="GitExclude"
457                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
458     <codeInsight.lineMarkerProvider language="GitExclude"
459                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
460     <lang.braceMatcher language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
461     <lang.commenter language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
462      <!--END Git exclude lang-->
463
464     <backgroundPostStartupActivity implementation="git4idea.ignore.GitIgnoreInStoreDirGeneratorActivity"/>
465     <backgroundPostStartupActivity implementation="git4idea.config.GitSetupProjectConfig" />
466
467     <registryKey key="git.update.incoming.info.time" defaultValue="20"
468                  description="Time period (in minutes) between incoming commits checks." restartRequired="true"/>
469
470     <registryKey key="git.commit.completion.fixup.squash" defaultValue="false"
471                  description="Provide completion for fixup and squash prefixes in commit message field" restartRequired="false"/>
472
473     <registryKey key="git.interactive.rebase.collect.entries.using.log" defaultValue="true"
474                  description="Use Log to collect Rebase Entries"/>
475
476     <vcs.actions.ScheduleForAdditionActionExtension implementation="git4idea.actions.GitAdd"/>
477     <completion.contributor language="TEXT" implementationClass="git4idea.commit.GitCommitCompletionContributor"
478                             order="first, before commitCompletion"/>
479
480     <customVcsLogUiFactoryProvider implementation="git4idea.ui.branch.dashboard.BranchesInGitLogUiFactoryProvider"/>
481     <virtualFileSystem key="git-compare-branches" implementationClass="git4idea.branch.GitCompareBranchesVirtualFileSystem"/>
482
483     <statusBarWidgetFactory implementation="git4idea.light.LightGitStatusBarWidgetFactory"/>
484     <lightEditTabAttributesProvider implementation="git4idea.light.LightGitTabAttributesProvider"/>
485     <statusBarWidgetFactory id="gitWidget"
486                             implementation="git4idea.ui.branch.GitBranchWidget$Factory"
487                             order="after codeStyleWidget,before readOnlyWidget"/>
488
489     <vcsBulkMovesOnlyChangesFilter implementation="git4idea.GitBulkMovesOnlyChangesFilter"/>
490
491     <editorNotificationProvider implementation="git4idea.ui.GitEditorPromo" order="first"/>
492
493     <changesViewContent id="git.stage" tabName="Staging Area" className="git4idea.index.GitStageContentProvider"
494                         predicateClassName="git4idea.index.GitStageContentVisibilityPredicate"
495                         preloaderClassName="git4idea.index.GitStageContentPreloader"
496                         displayNameSupplierClassName="git4idea.index.GitStageDisplayNameSupplier"/>
497
498     <projectService serviceImplementation="git4idea.index.GitStageManager"/>
499     <projectService serviceImplementation="git4idea.index.GitStageTracker"/>
500     <openapi.vcs.impl.LocalLineStatusTrackerProvider implementation="git4idea.index.lst.GitStageLineStatusTrackerProvider"/>
501
502     <backgroundPostStartupActivity implementation="git4idea.index.GitStageStartupActivity"/>
503
504     <projectService serviceImplementation="git4idea.index.vfs.GitIndexVirtualFileCache"/>
505     <projectService serviceImplementation="git4idea.index.vfs.GitIndexFileSystemRefresher"/>
506     <virtualFileSystem implementationClass="git4idea.index.vfs.GitIndexFileSystem" key="gitIndexFs" physical="true"/>
507
508     <vcs.baseContentProvider implementation="git4idea.index.vfs.GitIndexVirtualFileBaseContentProvider"/>
509     <editorNotificationProvider implementation="git4idea.index.vfs.GitIndexVirtualFileEditorNotificationProvider"/>
510     <editorTabTitleProvider implementation="git4idea.index.vfs.GitIndexVirtualFileTabTitleProvider"/>
511
512     <diff.actions.ShowDiffAction.ExtensionProvider implementation="git4idea.index.actions.GitStageDiffAction"/>
513
514     <vcs.consoleFolding implementation="git4idea.console.GitConsoleFolding"/>
515     <console.folding implementation="git4idea.console.GitProgressOutputConsoleFolding"/>
516   </extensions>
517
518   <extensionPoints>
519     <extensionPoint interface="git4idea.remote.GitHttpAuthDataProvider" name="GitHttpAuthDataProvider" dynamic="true"/>
520     <extensionPoint interface="git4idea.remote.GitRepositoryHostingService" name="gitRepositoryHostingService" dynamic="true"/>
521     <extensionPoint interface="git4idea.checkin.GitCheckinExplicitMovementProvider"
522                     name="GitCheckinExplicitMovementProvider"
523                     dynamic="true"/>
524   </extensionPoints>
525
526   <projectListeners>
527     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyStagingAreaListener"
528               topic="git4idea.status.GitStagingAreaHolder$StagingAreaListener"
529               activeInHeadlessMode="false"/>
530     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyRepositoryListener"
531               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
532               activeInHeadlessMode="false"/>
533     <listener class="git4idea.ui.branch.GitBranchWidget$Listener"
534               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
535               activeInHeadlessMode="false" activeInTestMode="false"/>
536   </projectListeners>
537 </idea-plugin>