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