52574f26124743bdb8969e189b805b0337f5299e
[idea/community.git] / plugins / git4idea / resources / META-INF / plugin.xml
1 <idea-plugin package="git4idea">
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.Branches.Navigate.Log.To.Selected.Branch"
56             icon="AllIcons.General.Locate"
57             use-shortcut-of="SelectIn"
58             class="git4idea.ui.branch.dashboard.BranchesDashboardActions$NavigateLogToSelectedBranchAction"/>
59     <action id="Git.Log.Hide.Branches" class="git4idea.ui.branch.dashboard.BranchesDashboardActions$HideBranchesAction"
60             icon="AllIcons.Actions.ArrowCollapse"/>
61     <group id="Git.Log.Branches.Settings" popup="true" icon="AllIcons.General.GearPlain">
62       <separator key="group.Git.Log.Branches.Settings.Separator.text"/>
63       <action id="Git.Log.Branches.Change.Branch.Filter.On.Selection"
64               class="git4idea.ui.branch.dashboard.BranchesDashboardActions$ChangeBranchFilterAction"/>
65       <action id="Git.Log.Branches.Navigate.Log.To.Branch.On.Selection"
66               class="git4idea.ui.branch.dashboard.BranchesDashboardActions$NavigateLogToBranchAction"/>
67     </group>
68     <group id="Git.Log.Branches.Grouping.Settings" icon="AllIcons.Actions.GroupBy"
69            class="git4idea.ui.branch.dashboard.BranchesDashboardActions$GroupingSettingsGroup">
70       <separator key="group.Git.Log.Branches.Grouping.Settings.text"/>
71       <action id="Git.Log.Branches.GroupBy.Directory"
72               icon="AllIcons.Actions.GroupByPackage"
73               class="git4idea.ui.branch.dashboard.BranchesDashboardActions$GroupBranchByDirectoryAction"/>
74       <action id="Git.Log.Branches.GroupBy.Repository"
75               class="git4idea.ui.branch.dashboard.BranchesDashboardActions$GroupBranchByRepositoryAction"/>
76     </group>
77     <action id="Git.Fixup.To.Commit" class="git4idea.rebase.GitCommitFixupBySubjectAction"/>
78     <action id="Git.Squash.Into.Commit" class="git4idea.rebase.GitCommitSquashBySubjectAction"/>
79     <action id="Git.Interactive.Rebase" class="git4idea.rebase.GitInteractiveRebaseAction"/>
80     <action id="Git.Commit.And.Push.Executor" class="git4idea.actions.GitCommitAndPushExecutorAction">
81       <add-to-group group-id="Vcs.Commit.PrimaryCommitActions"/>
82       <keyboard-shortcut first-keystroke="control alt K" keymap="$default"/>
83     </action>
84
85     <group id="Git.FileActions">
86       <reference ref="CheckinFiles"/>
87       <action id="Git.Add" class="com.intellij.openapi.vcs.changes.actions.ScheduleForAdditionWithIgnoredFilesConfirmationAction"
88               icon="AllIcons.General.Add" use-shortcut-of="ChangesView.AddUnversioned"/>
89       <separator/>
90       <reference ref="Annotate"/>
91       <reference ref="Compare.SameVersion"/>
92       <reference ref="Compare.Selected"/>
93       <action id="Git.CompareWithBranch" class="git4idea.actions.GitCompareWithBranchAction"/>
94       <reference ref="Vcs.ShowTabbedFileHistory"/>
95       <reference id="Vcs.ShowHistoryForBlock"/>
96     </group>
97
98     <group id="Git.MainMenu.FileActions" class="git4idea.actions.GitFileActionGroup" popup="true">
99       <reference ref="Git.FileActions"/>
100     </group>
101
102     <group id="Git.MainMenu.RebaseActions" class="git4idea.actions.GitRepositoryStateActionGroup$Rebase" popup="true">
103       <action id="Git.Rebase.Abort" class="git4idea.actions.GitRebaseAbort"/>
104       <action id="Git.Rebase.Continue" class="git4idea.actions.GitRebaseContinue"/>
105       <action id="Git.Rebase.Skip" class="git4idea.actions.GitRebaseSkip"/>
106     </group>
107
108     <group id="Git.MainMenu.MergeActions" class="git4idea.actions.GitRepositoryStateActionGroup$Merge" icon="AllIcons.Vcs.Merge">
109       <action id="Git.Merge.Abort" class="git4idea.actions.GitAbortOperationAction$Merge"/>
110     </group>
111
112     <group id="Git.MainMenu.LocalChanges" popup="true">
113       <reference ref="ChangesView.Shelve"/>
114       <reference ref="Vcs.Show.Shelf"/>
115       <action id="Git.Stash" class="git4idea.actions.GitStash"/>
116       <action id="Git.Unstash" class="git4idea.actions.GitUnstash"/>
117       <reference ref="ChangesView.Revert" />
118       <reference ref="Vcs.UmlDiff" />
119     </group>
120
121     <group id="Git.MainMenu" class="git4idea.actions.GitMainMenuActionGroup" searchable="false">
122
123       <reference ref="CheckinProject"/>
124       <reference ref="Vcs.Push"/>
125       <reference ref="Vcs.UpdateProject"/>
126       <action id="Git.Pull" class="git4idea.actions.GitPull"/>
127       <action id="Git.Fetch" class="git4idea.actions.GitFetch" icon="AllIcons.Vcs.Fetch"/>
128       <separator/>
129       <action id="Git.Merge" class="git4idea.actions.GitMerge" icon="AllIcons.Vcs.Merge"/>
130       <reference ref="Git.MainMenu.MergeActions"/>
131       <action id="Git.Rebase" class="git4idea.actions.GitRebase"/>
132       <reference ref="Git.MainMenu.RebaseActions"/>
133       <action id="Git.ResolveConflicts" class="git4idea.actions.GitResolveConflictsAction"/>
134       <separator/>
135       <action id="Git.Branches" class="git4idea.ui.branch.GitBranchesAction" icon="AllIcons.Vcs.Branch">
136         <keyboard-shortcut first-keystroke="control shift BACK_QUOTE" keymap="$default" />
137         <keyboard-shortcut first-keystroke="meta shift BACK_QUOTE" keymap="Mac OS X" remove="true" />
138         <keyboard-shortcut first-keystroke="meta shift BACK_QUOTE" keymap="Mac OS X 10.5+" remove="true" />
139       </action>
140       <reference ref="Git.CreateNewBranch"/>
141       <action id="Git.Tag" class="git4idea.actions.GitTag"/>
142       <action id="Git.Reset" class="git4idea.actions.GitResetHead" icon="AllIcons.Actions.Rollback"/>
143       <separator/>
144       <reference ref="Vcs.Show.Log"/>
145       <reference id="Patch.MainMenu"/>
146       <reference id="Git.MainMenu.LocalChanges"/>
147       <reference id="Git.MainMenu.FileActions"/>
148       <separator/>
149       <action id="Git.Configure.Remotes" class="git4idea.remote.GitConfigureRemotesAction"/>
150       <action id="Git.Clone" class="git4idea.actions.GitCloneAction"/>
151       <separator/>
152       <reference id="Vcs.QuickListPopupAction" />
153       <separator/>
154       <action id="Git.Revert.Abort" class="git4idea.actions.GitAbortOperationAction$Revert"/>
155       <action id="Git.CherryPick.Abort" class="git4idea.actions.GitAbortOperationAction$CherryPick"/>
156
157       <add-to-group group-id="VcsGroups" relative-to-action="Vcs.MainMenu" anchor="after"/>
158     </group>
159
160     <group id="GitRepositoryActions">
161       <reference ref="Vcs.Push"/>
162       <reference ref="Git.Pull"/>
163       <reference ref="Git.Fetch"/>
164       <separator/>
165       <reference ref="Git.Merge"/>
166       <reference ref="Git.MainMenu.MergeActions"/>
167       <reference ref="Git.Rebase"/>
168       <reference ref="Git.MainMenu.RebaseActions"/>
169       <separator/>
170       <reference ref="Git.Branches"/>
171       <reference ref="Git.CreateNewBranch"/>
172       <reference ref="Git.Tag"/>
173       <reference ref="Git.Reset"/>
174       <separator/>
175       <reference ref="Git.Stash"/>
176       <reference ref="Git.Unstash"/>
177       <separator/>
178       <reference ref="Git.Configure.Remotes"/>
179       <reference ref="Git.Clone"/>
180       <separator/>
181       <reference ref="Git.Revert.Abort"/>
182       <reference ref="Git.CherryPick.Abort"/>
183     </group>
184
185     <group id="Git.Ongoing.Rebase.Actions" popup="false">
186       <!-- See GitOngoingOperationAction -->
187       <reference id="Git.Rebase.Abort"/>
188       <reference id="Git.Merge.Abort"/>
189       <reference id="Git.CherryPick.Abort"/>
190       <reference id="Git.Revert.Abort"/>
191       <reference id="Git.Rebase.Continue"/>
192       <reference id="Git.Rebase.Skip"/>
193     </group>
194
195     <group id="Git.Menu" class="git4idea.actions.GitMenu" popup="true" searchable="false">
196       <reference ref="Git.FileActions"/>
197       <separator/>
198       <reference ref="ChangesView.Revert" />
199       <separator/>
200       <reference ref="GitRepositoryActions"/>
201       <add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Vcs.Specific"/>
202     </group>
203
204     <group id="Git.ContextMenu" class="git4idea.actions.GitMenu" popup="true" searchable="false">
205       <reference ref="Git.FileActions"/>
206       <reference ref="Show.Current.Revision"/>
207       <reference ref="ChangesView.Revert" />
208       <reference ref="ChangesView.RevertFiles" />
209       <separator/>
210       <reference ref="Git.ResolveConflicts" />
211       <separator/>
212       <reference ref="GitRepositoryActions"/>
213       <add-to-group group-id="VcsGroup" anchor="last"/>
214     </group>
215
216     <action id="Vcs.ShowBranches" class="git4idea.actions.GitBranchesComboBoxAction" icon="AllIcons.Vcs.Branch">
217       <add-to-group group-id="SegmentedVcsActionsBarGroup" anchor="first"/>
218     </action>
219
220     <action id="Vcs.ShowMoreActions" class="git4idea.actions.GitQuickActionsToolbarPopup" icon="AllIcons.Actions.More">
221       <add-to-group group-id="SegmentedVcsActionsBarGroup" anchor="last"/>
222     </action>
223
224     <!--This group is empty and unused, left for plugins compatibility.-->
225     <group id="Git.LogContextMenu"/>
226
227     <group id="Git.FileHistory.ContextMenu">
228       <reference id="Git.SelectInGitLog"/>
229       <separator/>
230       <reference id="Git.Revert.In.Log" />
231       <separator/>
232       <add-to-group group-id="Vcs.FileHistory.ContextMenu" relative-to-action="VcsHistoryActionsGroup" anchor="before"/>
233     </group>
234
235     <group id="Git.Log.ContextMenu.CheckoutBrowse">
236       <reference id="Git.CheckoutGroup"/>
237       <reference id="Git.BrowseRepoAtRevision"/>
238
239       <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.CompareRevisions" anchor="before"/>
240     </group>
241
242     <group id="Git.Log.ContextMenu">
243       <reference id="Git.Reset.In.Log"/>
244       <reference id="Git.Revert.In.Log"/>
245       <reference id="Git.Uncommit"/>
246       <separator/>
247       <reference id="Git.Reword.Commit"/>
248       <reference id="Git.Fixup.To.Commit" />
249       <reference id="Git.Squash.Into.Commit" />
250       <reference id="Git.Drop.Commits"/>
251       <reference id="Git.Squash.Commits" />
252       <reference id="Git.Interactive.Rebase"/>
253       <separator/>
254       <reference id="Git.BranchOperationGroup"/>
255       <reference id="Git.CreateNewBranch"/>
256       <reference id="Git.CreateNewTag"/>
257       <separator/>
258       <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.GoToChild" anchor="before"/>
259     </group>
260
261     <group id="Git.Log.Toolbar">
262       <action id="Git.Log.DeepCompare" class="git4idea.branch.DeepCompareAction"/>
263       <add-to-group group-id="Vcs.Log.PresentationSettings" relative-to-action="Vcs.Log.HighlightersActionGroup" anchor="after"/>
264     </group>
265
266     <action id="Git.OpenExcludeFile" class="git4idea.ignore.actions.OpenGitExcludeAction"/>
267     <group id="Git.Ignore.File" class="git4idea.ignore.actions.GitIgnoreFileActionGroup">
268       <add-to-group group-id="ChangesViewPopupMenu" anchor="after" relative-to-action="ChangesView.AddUnversioned"/>
269       <add-to-group group-id="Git.FileActions" anchor="after" relative-to-action="Git.Add"/>
270       <add-to-group group-id="Unversioned.Files.Dialog.Popup" anchor="after" relative-to-action="$Delete"/>
271     </group>
272
273     <action id="git4idea.commands.TestGitHttpLoginDialogAction" class="git4idea.commands.TestGitHttpLoginDialogAction" internal="true"/>
274     <action id="CopyPathFromRepositoryRootProvider" class="git4idea.actions.CopyPathFromRepositoryRootProvider">
275       <add-to-group group-id="CopyFileReference"/>
276     </action>
277
278     <action id="Git.Show.Stage" class="git4idea.index.actions.GitShowStagingAreaAction" use-shortcut-of="CheckinProject" icon="AllIcons.Actions.Commit">
279       <add-to-group group-id="Git.MainMenu" anchor="after" relative-to-action="CheckinProject"/>
280       <add-to-group group-id="VcsToolbarActions" anchor="after" relative-to-action="CheckinProject"/>
281       <add-to-group group-id="VcsNavBarToolbarActions" anchor="after" relative-to-action="CheckinProject"/>
282     </action>
283     <action id="Git.Stage.Add" class="git4idea.index.actions.GitAddAction" use-shortcut-of="ChangesView.AddUnversioned"/>
284     <action id="Git.Stage.Reset" class="git4idea.index.actions.GitResetAction" use-shortcut-of="ChangesView.Revert"/>
285     <action id="Git.Stage.Revert" class="git4idea.index.actions.GitRevertAction" use-shortcut-of="ChangesView.Revert"/>
286     <action id="Git.Stage.AcceptTheirs" class="git4idea.index.actions.GitStageAcceptTheirsAction"/>
287     <action id="Git.Stage.AcceptYours" class="git4idea.index.actions.GitStageAcceptYoursAction"/>
288     <action id="Git.Stage.Merge" class="git4idea.index.actions.GitStageMergeConflictAction"/>
289     <action id="Git.Stage.ThreeSideDiff" class="git4idea.index.actions.GitStageThreeSideDiffAction"/>
290     <action id="Git.Stage.ToggleIgnored" class="git4idea.index.actions.GitToggleIgnoredFilesAction"/>
291     <action id="Git.Stage.Add.All" class="git4idea.index.actions.GitStageAllAction"/>
292     <action id="Git.Stage.Add.Tracked" class="git4idea.index.actions.GitStageTrackedAction"/>
293     <action id="Git.Stage.Show.Staged" class="git4idea.index.actions.GitShowStagedVersionAction"/>
294     <action id="Git.Stage.Show.Local" class="git4idea.index.actions.GitShowLocalVersionAction"/>
295     <action id="Git.Stage.Compare.Local.Staged" class="git4idea.index.actions.GitStageCompareLocalWithStagedAction"/>
296     <action id="Git.Stage.Compare.Staged.Local" class="git4idea.index.actions.GitStageCompareStagedWithLocalAction"/>
297     <action id="Git.Stage.Compare.Staged.Head" class="git4idea.index.actions.GitStageCompareStagedWithHeadAction"/>
298     <action id="Git.Stage.Compare.Three.Versions" class="git4idea.index.actions.GitStageCompareThreeVersionsAction"/>
299
300     <group id="Git.ChangesView.Conflicts">
301       <action id="Git.ChangesView.Merge" class="git4idea.merge.GitMergeConflictAction"/>
302       <action id="Git.ChangesView.AcceptTheirs" class="git4idea.merge.GitAcceptTheirsAction"/>
303       <action id="Git.ChangesView.AcceptYours" class="git4idea.merge.GitAcceptYoursAction"/>
304       <separator/>
305
306       <add-to-group group-id="ChangesViewPopupMenu" anchor="first"/>
307     </group>
308
309     <action id="Git.Stash.Silently" class="git4idea.index.actions.GitStashSilentlyAction" icon="AllIcons.Vcs.ShelveSilent"/>
310
311     <group id="Git.Stage.Toolbar">
312       <reference id="Diff.ShowDiff"/>
313       <reference id="ChangesView.Refresh"/>
314       <reference id="Git.Stash.Silently"/>
315       <group id="Git.Stage.Ui.Settings" icon="AllIcons.Actions.Show" popup="true">
316         <reference id="Git.Stage.ToggleIgnored"/>
317       </group>
318     </group>
319     <group id="Git.Stage.Tree.Menu">
320       <reference id="Git.Stage.Merge"/>
321       <reference id="Git.Stage.AcceptTheirs"/>
322       <reference id="Git.Stage.AcceptYours"/>
323       <reference id="Git.Stage.Add"/>
324       <reference id="Git.Stage.Reset"/>
325       <reference id="Git.Stage.Revert"/>
326       <reference id="$Delete"/>
327       <reference id="Git.Ignore.File"/>
328       <separator/>
329       <reference id="Diff.ShowDiff"/>
330       <reference id="Git.Stage.ThreeSideDiff"/>
331       <reference ref="EditSource"/>
332       <reference ref="ChangesView.CreatePatchFromChanges"/>
333       <reference ref="ChangesView.CreatePatchToClipboard"/>
334       <separator/>
335       <reference id="Vcs.ShowTabbedFileHistory"/>
336       <reference id="LocalHistory"/>
337     </group>
338     <group id="Git.Stage.Local.File.Menu" popup="false">
339       <reference id="Git.Stage.Show.Staged"/>
340       <reference id="Git.Stage.Compare.Local.Staged"/>
341       <reference id="Git.Stage.Compare.Three.Versions"/>
342
343       <add-to-group group-id="Git.ContextMenu" relative-to-action="ChangesView.RevertFiles" anchor="after"/>
344     </group>
345     <group id="Git.Stage.Index.File.Menu" popup="true" class="git4idea.index.actions.GitStageIndexFileMenuGroup">
346       <reference id="Git.Stage.Show.Local"/>
347       <reference id="Git.Stage.Compare.Staged.Head"/>
348       <reference id="Git.Stage.Compare.Staged.Local"/>
349       <reference id="Git.Stage.Compare.Three.Versions"/>
350
351       <add-to-group group-id="EditorPopupMenu"/>
352     </group>
353
354     <action id="Git.Stash.Pop" class="git4idea.stash.ui.GitPopStashAction"/>
355     <action id="Git.Stash.Apply" class="git4idea.stash.ui.GitApplyStashAction"/>
356     <action id="Git.Stash.UnstashAs" class="git4idea.stash.ui.GitUnstashAsAction"/>
357     <action id="Git.Stash.Drop" class="git4idea.stash.ui.GitDropStashAction"/>
358     <action id="Git.Show.Stash" class="git4idea.stash.ui.GitShowStashToolWindowTabAction"/>
359     <action id="Git.Stash.Refresh" class="git4idea.stash.ui.GitRefreshStashesAction" icon="AllIcons.Actions.Refresh"/>
360
361     <group id="Git.Stash.Toolbar">
362       <reference id="Diff.ShowDiff"/>
363       <reference id="Git.Stash.Refresh"/>
364     </group>
365     <group id="Git.Stash.ContextMenu">
366       <reference id="Git.Stash.Pop"/>
367       <reference id="Git.Stash.Apply"/>
368       <reference id="Git.Stash.UnstashAs"/>
369       <reference id="Git.Stash.Drop"/>
370       <separator/>
371       <reference id="Diff.ShowDiff"/>
372       <reference id="Vcs.ShowDiffWithLocal"/>
373       <reference id="Vcs.ShowDiffWithLocal.Before"/>
374     </group>
375   </actions>
376
377   <extensions defaultExtensionNs="com.intellij">
378     <registryKey key="git.execute.with.mediator" defaultValue="true"
379                  description="Use wrapper executable on Windows to support soft Git process cancellation."/>
380     <registryKey key="git.blocking.read" defaultValue="true"
381                  description="Use blocking mode for git process output reader."/>
382     <registryKey key="git.allow.stderr.to.stdout.mixing" defaultValue="false"
383                  description="Enables legacy hack for git integration, when some messages from stderr are handled as if they came from stdout."/>
384     <registryKey key="git.execution.trace" defaultValue="0"
385                  description="Bitmask to control git logging of the commands executed by the IDE. Specified as int.\n
386                               (0)  00000 - logging disabled\n
387                               (31) 11111 - all categories enabled\n
388                               (29) 11101 - the one you might want\n
389                               (1)  00001 - GIT_TRACE\n
390                               (2)  00010 - GIT_TRACE_PACK_ACCESS\n
391                               (4)  00100 - GIT_TRACE_PACKET\n
392                               (8)  01000 - GIT_TRACE_PERFOMANCE\n
393                               (16) 10000 - GIT_TRACE_SETUP"/>
394     <registryKey key="git.file.history.full" defaultValue="true"
395                  description="Adds &quot;--full-history --simplify-merges&quot; to git log arguments when retrieving history for a file.
396                               This may sometimes result in empty merges being shown in the file history.
397                               However, skipping this arguments hides some side branches if the end result is the same."/>
398     <registryKey key="git.diff.renameLimit" defaultValue="1"
399                  description="Sets diff.renameLimit configuration variable value.\n
400                               Essentially this variable tells Git the maximal size of commit for which to perform rename detection.
401                               Zero value means detecting renames in all commits.
402                               Setting this value too high (or zero) may lead to increased memory consumption by a Git process and longer execution time.\n
403                               This variable only used when reading git commits for indexing.
404                               Value from git configuration (1000 by default) is used for other purposes (eg for displaying changes in changes view)."/>
405     <registryKey key="git.refresh.vfs.total" defaultValue="false"
406                  description="If set to true, the whole Git repository root will be refreshed after performing a Git operation.
407                               Otherwise only the affected files will be refreshed.
408                               Affects only a subset of Git operations.
409                               The option is needed to debug possible &quot;incomplete VFS refresh&quot; reports, if they appear."/>
410     <registryKey key="git.force.commit.using.staging.area" defaultValue="true"
411                  description="When enabled, perform all git commits by updating staging area. If disabled, use 'git commit --only' when possible."/>
412     <registryKey key="git.clone.recurse.submodules" defaultValue="true"
413                  description="When enabled, Checkout from Git calls 'git clone --recurse-submodules', i.e. clones the main repository with all submodules if there are any."/>
414     <registryKey key="git.read.content.with.textconv" defaultValue="false"
415                  description="Apply 'textconv' transformations when reading file content from git. (overrides &quot;git.read.content.with.filters&quot; option)"/>
416     <registryKey key="git.read.content.with.filters" defaultValue="true"
417                  description="Apply 'filters' transformations when reading file content from git."/>
418     <registryKey key="git.log.fix.merge.commits.parents.order" defaultValue="false" restartRequired="true"
419                  description="Find merge commits where a remote branch was merged into local before pushing
420                               and fix parents order for such commits in order to display them more naturally in the commits graph."/>
421     <registryKey key="git.log.use.index.for.picked.commits.highlighting" defaultValue="true"
422                  description="Find cherry-picked commits not only looking at patches using 'git cherry'
423                               but also by matching commit author, author time and &quot;cherry picked from commit &lt;hash&gt;&quot; suffix."/>
424     <registryKey key="git.log.fast.picked.commits.highlighting" defaultValue="true"
425                  description="Find cherry-picked commits not looking at patches using 'git cherry'
426                               but by matching commit author, author time and commit message. This allows to find commits that were cherry-picked with conflicts
427                               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."/>
428     <registryKey key="git.parallel.fetch.threads" defaultValue="-3"
429                  description="Number of threads to call git fetch in parallel.\n
430                               Set to 1 to execute sequentially.\n
431                               Set to -1 to use the number of CPU cores.\n
432                               Set to -2 to start as many threads, as there are repositories in the project.\n
433                               Set to -3 to start as many threads, as there are repositories, but not more than 2 * number of cores.\n
434                               By default, SSH supports up to 10 multiplexed connections, thus number of threads will be limited by 10 despite this value."/>
435     <registryKey key="git.use.schannel.on.windows" defaultValue="false"
436                  description="Force git to use Windows certificate store to very SSL connections. Git 2.14 and above is required"/>
437     <registryKey key="git.use.shell.script.on.windows" defaultValue="true"
438                  description="Use workaround for Native SSH support in Git. Batch file cannot properly handle arguments with newlines when used as SSH_ASKPASS."/>
439     <registryKey key="git.use.setsid.for.native.ssh" defaultValue="true"
440                  description="Wrap 'git' process with 'setsid' for remote operations.
441                               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."/>
442     <registryKey key="git.use.setsid.wait.for.wsl.ssh" defaultValue="true"
443                  description="Wrap 'git' process with 'setsid -w' for remote operations with WSL executable."/>
444     <registryKey key="git.wsl.exe.executable.no.shell" defaultValue="false"
445                  description="Run git process for WSL executables without wrapping into a shell command."/>
446     <registryKey key="git.use.push.force.with.lease" defaultValue="true"
447                  description="Use '--force-with-lease' to push from IDE instead of '--force'"/>
448     <registryKey key="git.use.no.optional.locks" defaultValue="true"
449                  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."/>
450     <registryKey key="git.process.ignored" defaultValue="true"
451                  description="Process and highlight Git ignored files."/>
452     <registryKey key="git.update.incoming.outgoing.info" defaultValue="true"
453                  description="Update branches info that have incoming/outgoing commits in the Branches popup."/>
454     <registryKey key="git.merge.conflicts.toolwindow" defaultValue="false"
455                  description="Show dedicated toolwindow for git merge conflicts"/>
456     <registryKey key="git.update.project.info.as.log" defaultValue="true"
457                  description="If enabled, Update Project for Git is followed by the list of commits, instead of the list of updated files."/>
458     <registryKey key="git.enable.stage" defaultValue="false"
459                  description="Obsolete property, replaced by Settings | Version Control | Git | Enable staging area"/>
460     <registryKey key="git.enable.stage.line.status.tracker" defaultValue="true"
461                  description="Show staged and unstaged changes in gutter markers." restartRequired="true"/>
462     <registryKey key="git.shelve.load.base.in.batches" defaultValue="1000"
463                  description="If set to a value &gt; 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."/>
464     <registryKey key="git.allow.wsl1.executables" defaultValue="false"
465                  description="If set to false, IDE will ignore configured WSL1 executables. See IDEA-242469"/>
466     <registryKey key="git.enable.stash.toolwindow" defaultValue="false"
467                  description="Show toolwindow tab with stashes"/>
468     <registryKey key="git.can.use.restore.command" defaultValue="true"
469                  description="Use 'git restore --staged --worktree --source=HEAD -- paths' instead of 'git reset --hard' to speedup worktree cleanup."/>
470     <registryKey key="git.stage.separate.undo.stack" defaultValue="true"
471                  description="Do not record stage operations in the undo stack of the document"/>
472     <registryKey key="git.show.full.branch.name.instead.current.selected"
473                  description="Show full branch names instead of Current/Selected"
474                  defaultValue="false"/>
475     <registryKey key="git.auto.commit.on.revert"
476                  description="If false, show modal commit dialog before producing revert commit"
477                  defaultValue="true"/>
478
479     <search.projectOptionsTopHitProvider implementation="git4idea.config.GitOptionsTopHitProvider"/>
480     <vcs name="Git" vcsClass="git4idea.GitVcs" displayName="Git" administrativeAreaName=".git"/>
481     <checkoutProvider implementation="git4idea.checkout.GitCheckoutProvider" order="first"/>
482     <vcs.checkoutProcessor implementation="git4idea.checkout.GitCheckoutProcessor"/>
483     <vcsRootChecker implementation="git4idea.roots.GitRootChecker"/>
484     <vcsIgnoreChecker implementation="git4idea.ignore.GitIgnoreChecker"/>
485     <vcsRepositoryCreator implementation="git4idea.repo.GitRepositoryCreator"/>
486     <vcsPopupProvider implementation="git4idea.actions.GitQuickListContentProvider"/>
487     <vcsCheckinHandlerFactory implementation="git4idea.checkin.GitCheckinHandlerFactory"/>
488     <vcsCheckinHandlerFactory implementation="git4idea.rebase.GitRebaseCheckinHandlerFactory"/>
489     <checkinHandlerFactory implementation="git4idea.checkin.GitSkipHooksCommitHandlerFactory" order="last"/>
490     <unresolvedMergeCheckProvider implementation="git4idea.checkin.GitUnresolvedMergeCheckProvider"/>
491     <logProvider implementation="git4idea.log.GitLogProvider"/>
492     <vcsChangesViewRefresher implementation="git4idea.changes.GitChangesViewRefresher" />
493     <vcs.branchStateProvider implementation="git4idea.branch.GitBranchStateProvider"/>
494     <pushSupport implementation="git4idea.push.GitPushSupport"/>
495     <cherryPicker implementation="git4idea.cherrypick.GitCherryPicker"/>
496     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitToggleAnnotationOptionsActionProvider" />
497     <vcsAnnotationGutterActionProvider implementation="git4idea.actions.GitShowCommitInLogAnnotationGutterActionProvider" />
498     <statistics.projectUsagesCollector implementation="git4idea.GitStatisticsCollector"/>
499     <statistics.notificationIdsHolder implementation="git4idea.GitNotificationIdsHolder"/>
500     <vcsRepositoryInitializer implementation="git4idea.repo.GitRepositoryInitializer"/>
501     <openapi.vcs.changes.actions.diff.ChangeDiffRequestProvider
502         implementation="git4idea.diff.GitSubmoduleDiffRequestProvider"/>
503     <vcs.ignoredFilesHolder implementation="git4idea.repo.GitIgnoredFilesHolder$Provider"/>
504     <vcs.unversionedFilesHolder implementation="git4idea.repo.GitUnversionedFilesHolder$Provider"/>
505     <projectConfigurable id="vcs.Git" key="settings.git.option.group" instance="git4idea.config.GitVcsPanel"
506                          parentId="project.propVCSSupport.Mappings" groupWeight="-500"/>
507
508     <projectService serviceImplementation="git4idea.config.GitVcsSettings" configurationSchemaKey="versionControl.git"/>
509     <projectService serviceImplementation="git4idea.config.GitRebaseSettings"/>
510     <projectService serviceImplementation="git4idea.config.GitMergeSettings"/>
511     <projectService serviceImplementation="git4idea.config.GitPullSettings"/>
512     <projectService serviceImplementation="git4idea.config.GitSharedSettings" />
513     <projectService serviceImplementation="git4idea.rebase.interactive.GitRewordedCommitMessageProvider"/>
514     <projectService serviceInterface="git4idea.branch.GitBrancher"
515                     serviceImplementation="git4idea.branch.GitBrancherImpl"/>
516     <projectService serviceInterface="git4idea.fetch.GitFetchSupport" serviceImplementation="git4idea.fetch.GitFetchSupportImpl" />
517
518     <applicationService serviceImplementation="git4idea.config.GitVcsApplicationSettings"/>
519     <applicationService serviceImplementation="git4idea.ssh.GitXmlRpcNativeSshService"/>
520     <applicationService serviceInterface="git4idea.commands.GitHttpAuthService"
521                         serviceImplementation="git4idea.commands.GitHttpAuthServiceImpl" />
522     <applicationService serviceImplementation="git4idea.config.SSHConnectionSettings"/>
523     <applicationService serviceImplementation="git4idea.remote.GitRememberedInputs"/>
524     <applicationService serviceInterface="git4idea.commands.Git"
525                         serviceImplementation="git4idea.commands.GitImpl"/>
526     <applicationService serviceImplementation="git4idea.config.GitExecutableManager"/>
527     <applicationService serviceImplementation="git4idea.DialogManager" />
528     <applicationService serviceImplementation="git4idea.log.GitExternalLogTabsProperties"/>
529
530     <applicationService serviceImplementation="git4idea.light.LightGitTracker"/>
531
532     <fileType name="PLAIN_TEXT" fileNames=".gitmodules"/>
533     <vcs.taskHandler implementation="git4idea.GitTaskHandler"/>
534
535     <logHighlighterFactory implementation="git4idea.branch.DeepComparator$Factory"/>
536
537     <ignoredFileContentProvider implementation="git4idea.ignore.GitIgnoredFileContentProvider"/>
538     <openapi.vcs.changes.vcsPreservingExecutor implementation="git4idea.util.GitPreservingExecutor"/>
539     <editorNotificationProvider implementation="git4idea.conflicts.MergeConflictResolveUtil$NotificationProvider"/>
540     <codeInsight.linkHandler prefix="#git_commit/" handlerClass="git4idea.log.GitCommitTooltipLinkHandler"/>
541
542     <!-- Git ignore lang -->
543     <fileType language="GitIgnore" extensions="gitignore" fieldName="INSTANCE" name="GitIgnore file" implementationClass="git4idea.ignore.lang.GitIgnoreFileType"/>
544     <lang.parserDefinition language="GitIgnore"
545                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
546     <codeInsight.lineMarkerProvider language="GitIgnore"
547                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
548     <lang.braceMatcher language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
549     <lang.commenter language="GitIgnore" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
550      <!--END Git ignore lang-->
551
552     <!-- Git exclude lang -->
553     <fileType language="GitExclude" fileNames="exclude" fieldName="INSTANCE" name="GitExclude file" implementationClass="git4idea.ignore.lang.GitExcludeFileType"/>
554     <lang.fileViewProviderFactory language="GitExclude"
555                                   implementationClass="git4idea.ignore.lang.GitExcludeViewProviderFactory"/>
556     <lang.parserDefinition language="GitExclude"
557                            implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreParserDefinition"/>
558     <codeInsight.lineMarkerProvider language="GitExclude"
559                                     implementationClass="com.intellij.openapi.vcs.changes.ignore.codeInsight.IgnoreDirectoryMarkerProvider"/>
560     <lang.braceMatcher language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreBraceMatcher"/>
561     <lang.commenter language="GitExclude" implementationClass="com.intellij.openapi.vcs.changes.ignore.lang.IgnoreCommenter"/>
562      <!--END Git exclude lang-->
563
564     <backgroundPostStartupActivity implementation="git4idea.ignore.GitIgnoreInStoreDirGeneratorActivity"/>
565     <backgroundPostStartupActivity implementation="git4idea.config.GitSetupProjectConfig" />
566
567     <registryKey key="git.update.incoming.info.time" defaultValue="20"
568                  description="Time period (in minutes) between incoming commits checks." restartRequired="true"/>
569
570     <registryKey key="git.commit.completion.fixup.squash" defaultValue="false"
571                  description="Provide completion for fixup and squash prefixes in commit message field" restartRequired="false"/>
572
573     <registryKey key="git.interactive.rebase.collect.entries.using.log" defaultValue="true"
574                  description="Use Log to collect Rebase Entries"/>
575
576     <registryKey key="git.search.everywhere.commit.by.message" defaultValue="true"
577                  description="Use Git log index to lookup commits by message in Search Everywhere" restartRequired="false"/>
578
579     <vcs.actions.ScheduleForAdditionActionExtension implementation="git4idea.actions.GitAdd"/>
580     <completion.contributor language="TEXT" implementationClass="git4idea.commit.GitCommitCompletionContributor"
581                             order="first, before commitCompletion"/>
582
583     <customVcsLogUiFactoryProvider implementation="git4idea.ui.branch.dashboard.BranchesInGitLogUiFactoryProvider"/>
584     <virtualFileSystem key="git-compare-branches" implementationClass="git4idea.branch.GitCompareBranchesVirtualFileSystem"/>
585
586     <statusBarWidgetFactory implementation="git4idea.light.LightGitStatusBarWidgetFactory"/>
587     <lightEditTabAttributesProvider implementation="git4idea.light.LightGitTabAttributesProvider"/>
588     <statusBarWidgetFactory id="gitWidget"
589                             implementation="git4idea.ui.branch.GitBranchWidget$Factory"
590                             order="after codeStyleWidget,before readOnlyWidget"/>
591
592     <vcsBulkMovesOnlyChangesFilter implementation="git4idea.GitBulkMovesOnlyChangesFilter"/>
593
594     <editorNotificationProvider implementation="git4idea.ui.GitEditorPromo" order="first"/>
595
596     <changesViewContent id="git.stage" tabName="Staging Area" className="git4idea.index.GitStageContentProvider"
597                         predicateClassName="git4idea.index.GitStageContentVisibilityPredicate"
598                         preloaderClassName="git4idea.index.GitStageContentPreloader"
599                         displayNameSupplierClassName="git4idea.index.GitStageDisplayNameSupplier"
600                         isInCommitToolWindow="true"/>
601     <projectService serviceImplementation="git4idea.index.ui.GitStageUiSettingsImpl"/>
602
603     <projectService serviceImplementation="git4idea.index.GitStageTracker"/>
604     <openapi.vcs.impl.LocalLineStatusTrackerProvider implementation="git4idea.index.GitStageLineStatusTrackerProvider"/>
605     <vcsChangesViewRefresher implementation="git4idea.index.actions.GitStageChangesViewRefresher"/>
606
607     <backgroundPostStartupActivity implementation="git4idea.index.GitStageStartupActivity"/>
608
609     <projectService serviceImplementation="git4idea.index.vfs.GitIndexFileSystemRefresher"/>
610     <virtualFileSystem implementationClass="git4idea.index.vfs.GitIndexFileSystem" key="gitIndexFs" physical="true"/>
611
612     <vcs.baseContentProvider implementation="git4idea.index.vfs.GitIndexVirtualFileBaseContentProvider"/>
613     <editorNotificationProvider implementation="git4idea.index.vfs.GitIndexVirtualFileEditorNotificationProvider"/>
614     <editorTabTitleProvider implementation="git4idea.index.vfs.GitIndexVirtualFileTabTitleProvider"/>
615     <vcs.fileStatusProvider implementation="git4idea.index.vfs.GitIndexVirtualFileStatusProvider"/>
616
617     <diff.actions.ShowDiffAction.ExtensionProvider implementation="git4idea.index.actions.GitStageDiffAction"/>
618     <openapi.vcs.changes.actions.CreatePatchFromChangesAction.Dialog.ExtensionProvider
619       implementation="git4idea.index.actions.GitStageCreatePatchActionProvider$Dialog"/>
620     <openapi.vcs.changes.actions.CreatePatchFromChangesAction.Clipboard.ExtensionProvider
621       implementation="git4idea.index.actions.GitStageCreatePatchActionProvider$Clipboard"/>
622
623     <actionPromoter implementation="git4idea.index.actions.GitIndexActionPromoter"/>
624
625     <changesViewContent id="git.stash" tabName="Stash" className="git4idea.stash.ui.GitStashContentProvider"
626                         predicateClassName="git4idea.stash.ui.GitStashContentVisibilityPredicate"
627                         preloaderClassName="git4idea.stash.ui.GitStashContentPreloader"
628                         displayNameSupplierClassName="git4idea.stash.ui.GitStashDisplayNameSupplier"
629                         isInCommitToolWindow="true"/>
630     <projectService serviceImplementation="git4idea.stash.GitStashTracker"/>
631     <projectService serviceImplementation="git4idea.stash.GitStashCache"/>
632     <postStartupActivity implementation="git4idea.stash.ui.GitStashStartupActivity"/>
633     <diff.actions.ShowDiffAction.ExtensionProvider implementation="git4idea.stash.ui.GitShowDiffFromStashAction"/>
634
635     <vcs.consoleFolding implementation="git4idea.console.GitConsoleFolding"/>
636     <console.folding implementation="git4idea.console.GitProgressOutputConsoleFolding"/>
637
638     <searchEverywhereContributor implementation="git4idea.search.GitSearchEverywhereContributor$Companion$Factory"/>
639     <projectOriginInfoProvider implementation="git4idea.repo.GitProjectOriginInfoProvider"/>
640
641     <vcsStartupActivity implementation="git4idea.repo.GitCommitTemplateTracker$GitCommitTemplateTrackerStartupActivity"/>
642
643     <vcs.delayedCommitMessageProvider implementation="git4idea.commit.GitDelayedCommitTemplateMessageProvider" order="first"/>
644     <vcs.commitMessageProvider implementation="git4idea.commit.GitCommitTemplateMessageProvider" order="first"/>
645     <jbProtocolRevisionResolver implementation="git4idea.GitNavigateRevisionResolver"/>
646   </extensions>
647
648   <extensionPoints>
649     <extensionPoint interface="git4idea.remote.GitHttpAuthDataProvider" name="GitHttpAuthDataProvider" dynamic="true"/>
650     <extensionPoint interface="git4idea.remote.GitRepositoryHostingService" name="gitRepositoryHostingService" dynamic="true"/>
651     <extensionPoint interface="git4idea.checkin.GitCheckinExplicitMovementProvider"
652                     name="GitCheckinExplicitMovementProvider"
653                     dynamic="true"/>
654     <extensionPoint interface="git4idea.fetch.GitFetchHandler" name="gitFetchHandler" dynamic="true"/>
655     <extensionPoint interface="git4idea.config.GitProtectedBranchProvider" name="gitProtectedBranchProvider" dynamic="true"/>
656   </extensionPoints>
657
658   <projectListeners>
659     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyStagingAreaListener"
660               topic="git4idea.status.GitStagingAreaHolder$StagingAreaListener"
661               activeInHeadlessMode="false"/>
662     <listener class="git4idea.conflicts.GitConflictsToolWindowManager$MyRepositoryListener"
663               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
664               activeInHeadlessMode="false"/>
665     <listener class="git4idea.ui.branch.GitBranchWidget$Listener"
666               topic="com.intellij.dvcs.repo.VcsRepositoryMappingListener"
667               activeInHeadlessMode="false" activeInTestMode="false"/>
668     <listener class="git4idea.index.CommitModeListener" topic="com.intellij.vcs.commit.CommitModeManager$CommitModeListener"
669               activeInHeadlessMode="false" activeInTestMode="false"/>
670   </projectListeners>
671 </idea-plugin>