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