TortoiseGit allows you to disable (actually, hide) context menu entries. Since this is a feature which should not be used lightly but only if there is a compelling reason, there is no GUI for this and it has to be done directly in the registry. This can be used to disable certain commands for users who should not use them. But please note that only the context menu entries in the explorer are hidden, and the commands are still available through other means, e.g. the command line or even other dialogs in TortoiseGit itself!
The registry keys which hold the information on which context menus to show are HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskLow
and HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskHigh
.
Each of these registry entries is a DWORD
value, with each bit corresponding to a specific menu entry. A set bit means the corresponding menu entry is deactivated.
Table C.1. Menu entries and their values
Value | Menu entry |
---|---|
0x0000000000000002 | Sync |
0x0000000000000004 | Commit |
0x0000000000000008 | Add |
0x0000000000000010 | Revert |
0x0000000000000020 | Cleanup |
0x0000000000000040 | Resolve |
0x0000000000000080 | Switch/Checkout |
0x0000000000000100 | Sendmail |
0x0000000000000200 | Export |
0x0000000000000400 | Create Repository here |
0x0000000000000800 | Branch/Tag |
0x0000000000001000 | Merge |
0x0000000000002000 | Delete |
0x0000000000004000 | Rename |
0x0000000000008000 | Submodule Update |
0x0000000000010000 | Diff |
0x0000000000020000 | Show Log |
0x0000000000040000 | Edit Conflicts |
0x0000000000080000 | Reference Browser |
0x0000000000100000 | Check for modifications |
0x0000000000200000 | Ignore |
0x0000000000400000 | RefLog |
0x0000000000800000 | Blame |
0x0000000001000000 | Repository Browser |
0x0000000002000000 | Apply Patch |
0x0000000004000000 | Delete (keep local) |
0x0000000008000000 | SVN Rebase |
0x0000000010000000 | SVN DCommit |
0x0000000040000000 | SVN Ignore |
0x0000000100000000 | Log of Submodule folder |
0x0000000200000000 | Rev Diff |
0x0000000800000000 | Pull |
0x0000001000000000 | Push |
0x0000002000000000 | Clone |
0x0000004000000000 | Tag |
0x0000008000000000 | Format Patch |
0x0000010000000000 | Import Patch |
0x0000040000000000 | Fetch |
0x0000080000000000 | Rebase |
0x0000100000000000 | Stash Save |
0x0000200000000000 | Stash Apply |
0x0000400000000000 | Stash List |
0x0000800000000000 | Submodule Add |
0x0001000000000000 | Submodule Sync |
0x0002000000000000 | Stash Pop |
0x0004000000000000 | Diff two files |
0x0008000000000000 | Bisect |
0x0080000000000000 | SVN Fetch |
0x0100000000000000 | Revision graph |
0x0200000000000000 | Daemon |
0x2000000000000000 | Settings |
0x4000000000000000 | Help |
0x8000000000000000 | About |
Example: to disable the Sendmail
, the Rebase
and the Settings
menu entries, add the values assigned to the entries like this:
0x0000000000000100 + 0x0000080000000000 + 0x2000000000000000 = 0x2000080000000100
The lower DWORD
value (0x00000100
) must then be stored in HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskLow
, the higher DWORD
value (0x20000800
) in HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskHigh
.
To enable the menu entries again, simply delete the two registry keys.