1 <idea-plugin package="git4idea">
6 Provides integration with <a href="http://git-scm.com/">Git</a>.
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>
12 <p>To configure, open <b>Settings / Preferences</b> and go to <b>Version Control | Git</b>.</p>
15 <category>Version Controls</category>
16 <vendor>JetBrains</vendor>
18 <resource-bundle>messages.GitBundle</resource-bundle>
20 <depends>com.intellij.modules.vcs</depends>
21 <depends optional="true" config-file="git-terminal.xml">org.jetbrains.plugins.terminal</depends>
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"/>
29 <action id="Git.Log" class="git4idea.log.GitShowExternalLogAction">
30 <add-to-group group-id="Vcs.Browse"/>
33 <action class="git4idea.log.GitShowCommitInLogAction" id="Git.SelectInGitLog">
34 <add-to-group group-id="VcsSelectionHistoryDialog.Popup" anchor="after" relative-to-action="Vcs.CopyRevisionNumberAction"/>
36 <action class="git4idea.log.GitBrowseRepoAtRevisionAction" id="Git.BrowseRepoAtRevision"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
98 <group id="Git.MainMenu.FileActions" class="git4idea.actions.GitFileActionGroup" popup="true">
99 <reference ref="Git.FileActions"/>
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"/>
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"/>
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" />
121 <group id="Git.MainMenu" class="git4idea.actions.GitMainMenuActionGroup" searchable="false">
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"/>
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"/>
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" />
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"/>
144 <reference ref="Vcs.Show.Log"/>
145 <reference id="Patch.MainMenu"/>
146 <reference id="Git.MainMenu.LocalChanges"/>
147 <reference id="Git.MainMenu.FileActions"/>
149 <action id="Git.Configure.Remotes" class="git4idea.remote.GitConfigureRemotesAction"/>
150 <action id="Git.Clone" class="git4idea.actions.GitCloneAction"/>
152 <reference id="Vcs.QuickListPopupAction" />
154 <action id="Git.Revert.Abort" class="git4idea.actions.GitAbortOperationAction$Revert"/>
155 <action id="Git.CherryPick.Abort" class="git4idea.actions.GitAbortOperationAction$CherryPick"/>
157 <add-to-group group-id="VcsGroups" relative-to-action="Vcs.MainMenu" anchor="after"/>
160 <group id="GitRepositoryActions">
161 <reference ref="Vcs.Push"/>
162 <reference ref="Git.Pull"/>
163 <reference ref="Git.Fetch"/>
165 <reference ref="Git.Merge"/>
166 <reference ref="Git.MainMenu.MergeActions"/>
167 <reference ref="Git.Rebase"/>
168 <reference ref="Git.MainMenu.RebaseActions"/>
170 <reference ref="Git.Branches"/>
171 <reference ref="Git.CreateNewBranch"/>
172 <reference ref="Git.Tag"/>
173 <reference ref="Git.Reset"/>
175 <reference ref="Git.Stash"/>
176 <reference ref="Git.Unstash"/>
178 <reference ref="Git.Configure.Remotes"/>
179 <reference ref="Git.Clone"/>
181 <reference ref="Git.Revert.Abort"/>
182 <reference ref="Git.CherryPick.Abort"/>
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"/>
195 <group id="Git.Menu" class="git4idea.actions.GitMenu" popup="true" searchable="false">
196 <reference ref="Git.FileActions"/>
198 <reference ref="ChangesView.Revert" />
200 <reference ref="GitRepositoryActions"/>
201 <add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Vcs.Specific"/>
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" />
210 <reference ref="Git.ResolveConflicts" />
212 <reference ref="GitRepositoryActions"/>
213 <add-to-group group-id="VcsGroup" anchor="last"/>
216 <action id="Vcs.ShowBranches" class="git4idea.actions.GitBranchesComboBoxAction" icon="AllIcons.Vcs.Branch">
217 <add-to-group group-id="SegmentedVcsActionsBarGroup" anchor="first"/>
220 <action id="Vcs.ShowMoreActions" class="git4idea.actions.GitQuickActionsToolbarPopup" icon="AllIcons.Actions.More">
221 <add-to-group group-id="SegmentedVcsActionsBarGroup" anchor="last"/>
224 <!--This group is empty and unused, left for plugins compatibility.-->
225 <group id="Git.LogContextMenu"/>
227 <group id="Git.FileHistory.ContextMenu">
228 <reference id="Git.SelectInGitLog"/>
230 <reference id="Git.Revert.In.Log" />
232 <add-to-group group-id="Vcs.FileHistory.ContextMenu" relative-to-action="VcsHistoryActionsGroup" anchor="before"/>
235 <group id="Git.Log.ContextMenu.CheckoutBrowse">
236 <reference id="Git.CheckoutGroup"/>
237 <reference id="Git.BrowseRepoAtRevision"/>
239 <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.CompareRevisions" anchor="before"/>
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"/>
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"/>
254 <reference id="Git.BranchOperationGroup"/>
255 <reference id="Git.CreateNewBranch"/>
256 <reference id="Git.CreateNewTag"/>
258 <add-to-group group-id="Vcs.Log.ContextMenu" relative-to-action="Vcs.Log.GoToChild" anchor="before"/>
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"/>
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"/>
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"/>
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"/>
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"/>
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"/>
306 <add-to-group group-id="ChangesViewPopupMenu" anchor="first"/>
309 <action id="Git.Stash.Silently" class="git4idea.index.actions.GitStashSilentlyAction" icon="AllIcons.Vcs.ShelveSilent"/>
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"/>
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"/>
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"/>
335 <reference id="Vcs.ShowTabbedFileHistory"/>
336 <reference id="LocalHistory"/>
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"/>
343 <add-to-group group-id="Git.ContextMenu" relative-to-action="ChangesView.RevertFiles" anchor="after"/>
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"/>
351 <add-to-group group-id="EditorPopupMenu"/>
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"/>
361 <group id="Git.Stash.Toolbar">
362 <reference id="Diff.ShowDiff"/>
363 <reference id="Git.Stash.Refresh"/>
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"/>
371 <reference id="Diff.ShowDiff"/>
372 <reference id="Vcs.ShowDiffWithLocal"/>
373 <reference id="Vcs.ShowDiffWithLocal.Before"/>
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 "--full-history --simplify-merges" 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 "incomplete VFS refresh" 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 "git.read.content.with.filters" 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 "cherry picked from commit <hash>" 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 "cherry picked from commit <hash>" suffix. Requires "git.log.use.index.for.picked.commits.highlighting" 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 > 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"/>
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"/>
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" />
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"/>
530 <applicationService serviceImplementation="git4idea.light.LightGitTracker"/>
532 <fileType name="PLAIN_TEXT" fileNames=".gitmodules"/>
533 <vcs.taskHandler implementation="git4idea.GitTaskHandler"/>
535 <logHighlighterFactory implementation="git4idea.branch.DeepComparator$Factory"/>
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"/>
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-->
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-->
564 <backgroundPostStartupActivity implementation="git4idea.ignore.GitIgnoreInStoreDirGeneratorActivity"/>
565 <backgroundPostStartupActivity implementation="git4idea.config.GitSetupProjectConfig" />
567 <registryKey key="git.update.incoming.info.time" defaultValue="20"
568 description="Time period (in minutes) between incoming commits checks." restartRequired="true"/>
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"/>
573 <registryKey key="git.interactive.rebase.collect.entries.using.log" defaultValue="true"
574 description="Use Log to collect Rebase Entries"/>
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"/>
579 <vcs.actions.ScheduleForAdditionActionExtension implementation="git4idea.actions.GitAdd"/>
580 <completion.contributor language="TEXT" implementationClass="git4idea.commit.GitCommitCompletionContributor"
581 order="first, before commitCompletion"/>
583 <customVcsLogUiFactoryProvider implementation="git4idea.ui.branch.dashboard.BranchesInGitLogUiFactoryProvider"/>
584 <virtualFileSystem key="git-compare-branches" implementationClass="git4idea.branch.GitCompareBranchesVirtualFileSystem"/>
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"/>
592 <vcsBulkMovesOnlyChangesFilter implementation="git4idea.GitBulkMovesOnlyChangesFilter"/>
594 <editorNotificationProvider implementation="git4idea.ui.GitEditorPromo" order="first"/>
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"/>
603 <projectService serviceImplementation="git4idea.index.GitStageTracker"/>
604 <openapi.vcs.impl.LocalLineStatusTrackerProvider implementation="git4idea.index.GitStageLineStatusTrackerProvider"/>
605 <vcsChangesViewRefresher implementation="git4idea.index.actions.GitStageChangesViewRefresher"/>
607 <backgroundPostStartupActivity implementation="git4idea.index.GitStageStartupActivity"/>
609 <projectService serviceImplementation="git4idea.index.vfs.GitIndexFileSystemRefresher"/>
610 <virtualFileSystem implementationClass="git4idea.index.vfs.GitIndexFileSystem" key="gitIndexFs" physical="true"/>
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"/>
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"/>
623 <actionPromoter implementation="git4idea.index.actions.GitIndexActionPromoter"/>
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"/>
635 <vcs.consoleFolding implementation="git4idea.console.GitConsoleFolding"/>
636 <console.folding implementation="git4idea.console.GitProgressOutputConsoleFolding"/>
638 <searchEverywhereContributor implementation="git4idea.search.GitSearchEverywhereContributor$Companion$Factory"/>
639 <projectOriginInfoProvider implementation="git4idea.repo.GitProjectOriginInfoProvider"/>
641 <vcsStartupActivity implementation="git4idea.repo.GitCommitTemplateTracker$GitCommitTemplateTrackerStartupActivity"/>
643 <vcs.delayedCommitMessageProvider implementation="git4idea.commit.GitDelayedCommitTemplateMessageProvider" order="first"/>
644 <vcs.commitMessageProvider implementation="git4idea.commit.GitCommitTemplateMessageProvider" order="first"/>
645 <jbProtocolRevisionResolver implementation="git4idea.GitNavigateRevisionResolver"/>
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"
654 <extensionPoint interface="git4idea.fetch.GitFetchHandler" name="gitFetchHandler" dynamic="true"/>
655 <extensionPoint interface="git4idea.config.GitProtectedBranchProvider" name="gitProtectedBranchProvider" dynamic="true"/>
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"/>