Update outdated docs
[TortoiseGit.git] / doc / source / en / TortoiseGit / tgit_app_admins.xml
blobec2e78ae8eae748eae9314e056d28772b00d88ed
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE appendix SYSTEM "../../dtd/dblite.dtd">\r
3 <appendix id="tgit-admins" xmlns:xi="http://www.w3.org/2001/XInclude">\r
4         <title>Useful Tips For Administrators</title>\r
5         <simplesect>\r
6                 <para>\r
7                         This appendix contains solutions to problems/questions you might\r
8                         have when you are responsible for deploying TortoiseGit to multiple\r
9                         client computers.\r
10                 </para>\r
11         </simplesect>\r
12         <sect1 id="tgit-admins-grouppolicies">\r
13                 <title>Deploy TortoiseGit via group policies</title>\r
14                 <indexterm>\r
15                         <primary>group policies</primary>\r
16                 </indexterm>\r
17                 <indexterm>\r
18                         <primary>GPO</primary>\r
19                 </indexterm>\r
20                 <indexterm>\r
21                         <primary>msi</primary>\r
22                 </indexterm>\r
23                 <indexterm>\r
24                         <primary>domain controller</primary>\r
25                 </indexterm>\r
26                 <indexterm>\r
27                         <primary>deploy</primary>\r
28                 </indexterm>\r
29                 <para>\r
30                         The TortoiseGit installer comes as an MSI file, which means you\r
31                         should have no problems adding that MSI file to the group policies\r
32                         of your domain controller.\r
33                 </para>\r
34                 <para>\r
35                         A good walk-through on how to do that can be found in the knowledge\r
36                         base article 314934 from Microsoft:\r
37                         <ulink url="http://support.microsoft.com/?kbid=314934">\r
38                                 <citetitle>http://support.microsoft.com/?kbid=314934</citetitle>\r
39                         </ulink>.\r
40                 </para>\r
41                 <para>\r
42                         Versions 0.3.0 and later of TortoiseGit must be installed under\r
43                         <emphasis>Computer Configuration</emphasis> and not under\r
44                         <emphasis>User Configuration</emphasis>. This is because those versions\r
45                         need the new CRT and MFC DLLs, which can only be deployed <emphasis>per\r
46                         computer</emphasis> and not <emphasis>per user</emphasis>.\r
47                         If you really must install TortoiseGit on a per user basis, then you must\r
48                         first install the MFC and CRT package version 11 from Microsoft on each\r
49                         computer you want to install TortoiseGit as per user.\r
50                 </para>\r
51                 <para>\r
52                         You can provide a default setting for the ssh client in \r
53                         <filename>HKLM\TortoiseGit\SSH</filename>.\r
54                 </para>\r
55                 <para>\r
56                         TortoiseGit automatically finds <filename>git.exe</filename> if a normal msysGit/Git for Windows installation is on the computer\r
57                         or git.exe is on the <emphasis>PATH</emphasis> (and is runnable in a normal cmd.exe session - you might need to also put the <filename>[MSYSGIT INSTALLDIR]\mingw\bin</filename> on the <emphasis>PATH</emphasis> if you use the msysgit development package).\r
58                 </para>\r
59                 <para>\r
60                         For completely disabling automatic update checking see <emphasis>VersionCheck</emphasis> in <xref linkend="tgit-dug-settings-registry"/>.\r
61                 </para>\r
62         </sect1>\r
63         <sect1 id="tgit-admins-upgradecheck">\r
64                 <title>Redirect the upgrade check</title>\r
65                 <indexterm>\r
66                         <primary>upgrade check</primary>\r
67                 </indexterm>\r
68                 <indexterm>\r
69                         <primary>check new version</primary>\r
70                 </indexterm>\r
71                 <indexterm>\r
72                         <primary>version</primary>\r
73                 </indexterm>\r
74                 <para>\r
75                         TortoiseGit checks if there's a new version available every week (or daily in a preview release).\r
76                         If there is a newer version available, a dialog shows up informing\r
77                         the user about that and allows to download/install a new version.\r
78                 </para>\r
79                 <figure id="tgit-admins-dia1">\r
80                         <title>The upgrade dialog</title>\r
81                         <graphic fileref="images/upgradecheck.png"/>\r
82                 </figure>\r
83                 <para>\r
84                         If you're responsible for a lot of users in your domain, you might want\r
85                         your users to use only versions you have approved and not have them install\r
86                         always the latest version (or to save bandwidth or want to add some further notes for installation). You probably don't want that upgrade dialog\r
87                         to show up so your users don't go and upgrade immediately (to disable update checking at all (e.g. because you use group policies to deploy TortoiseGit, see <xref linkend="tgit-admins-grouppolicies"/> and/or <emphasis>VersionCheck</emphasis> in <xref linkend="tgit-dug-settings-registry"/>).\r
88                 </para>\r
89                 <para>\r
90                         TortoiseGit allow you to redirect that upgrade\r
91                         check to your intranet server. You can set the registry key\r
92                         <filename>HKCU\Software\TortoiseGit\UpdateCheckURL</filename> OR <filename>HKLM\Software\TortoiseGit\UpdateCheckURL</filename> (string value, HKCU overrides HKLM)\r
93                         to an URL pointing to a text file in your intranet (default is <ulink url="https://versioncheck.tortoisegit.org/version.txt">https://versioncheck.tortoisegit.org/version.txt</ulink>).\r
94                         When the default version.txt file is used, it is checked by verifying a digital signature (<ulink url="https://versioncheck.tortoisegit.org/version.txt.rsa.asc">https://versioncheck.tortoisegit.org/version.txt.rsa.asc</ulink>) that it has not been altered (since TortoiseGit 1.8.5).\r
95                         The check for the digital signature of the version.txt file is omitted if the location is overridden in registry.\r
96                         That text file must have the following format:\r
97 <screen>\r
98 [TortoiseGit]\r
99 version=X.X.X.X\r
100 infotext=A new version of TortoiseGit is available for you to download!\r
101 infotexturl=http://192.168.2.1/downloads/TortoiseGit/info.htm\r
102 changelogurl=http://192.168.2.1/downloads/TortoiseGit/TortoiseGit-1.4.1.6000-changelog.txt\r
103 baseurl=http://192.168.2.1/downloads/TortoiseGit/\r
104 langs="1029;cs"\r
105 langs="1031;de"\r
106 </screen>\r
107                         The <emphasis>version</emphasis> line in that file is the version string. You must make sure that\r
108                         it matches the exact version string of the TortoiseGit installation package.\r
109                         The <emphasis>infotext</emphasis> line is a custom text, shown in the upgrade dialog. You can write\r
110                         there whatever you want (can also be left empty). Just note that the space in the upgrade dialog is\r
111                         limited. Too long messages will get truncated!\r
112                         The <emphasis>infotexturl</emphasis> line is the URL which is opened when\r
113                         when the user clicks on the (custom) message label in the upgrade dialog.\r
114                         The URL is opened with the default web browser, so if you specify a web page,\r
115                         that page is opened and shown to the user.\r
116                         The <emphasis>changelogurl</emphasis> line contains the URL to the Changelog or release notes which are displayed in the upgrade dialog (if empty it defaults to <ulink url="https://versioncheck.tortoisegit.org/changelog.txt">https://versioncheck.tortoisegit.org/changelog.txt</ulink>, you can use %1!u!, %2!u! and %3!u! for MAJOR, MINOR and MICRO version numbers of the running TortoiseGit version; %4!s! for Windows platform, %5!s! for Windows version, and %6!s! for servicepack version),\r
117                         The <emphasis>baseurl</emphasis> line is used to override the base path to the installation packages (if empty it defaults to http://updater.download.tortoisegit.org/tgit/X.X.X.X/).\r
118                         The filenames are generated as follows: TortoiseGit-(version)-(32|64)bit.msi for the main installer (if not overridden by <emphasis>mainfilename=TortoiseGit-%1!s!-%2!s!bit.msi</emphasis>)\r
119                         and TortoiseGit-LanguagePack-(version)-(32|64)bit-(cs|de|...).msi for the language packs (if not overridden by <emphasis>languagepackfilename=TortoiseGit-LanguagePack-%1!s!-%2!s!bit-%3!s!.msi</emphasis>; %4!d! is the four digit country code).\r
120                         Using <emphasis>langs</emphasis> lines, one can advertise language packs (Syntax of one line: Four digit country code;ISO Country code).\r
121                         Using a <emphasis>issuesurl</emphasis> line, it is possible to control the URL to which the issues are linked to (default is https://tortoisegit.org/issue/%BUGID%; can also be empty to disable linking),\r
122                 </para>\r
123                 <para>\r
124                         Clicking on <guibutton>Download</guibutton> downloads the selected files as well as their digital signature files (filename.asc) to <filename><ulink url="http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457%28v=vs.85%29.aspx">FOLDERID_Downloads</ulink></filename>.\r
125                         After downloading the digital signature is verified - the file is only kept if the file is digitally signed and could be verified correctly.\r
126                 </para>\r
127                 <para>\r
128                         If you want to distribute your own modified TortoiseGit packages in your network, you have to put your own GPG key into TortoiseGit and sign the .msi-files with this key or deactivate the signature verification completely.\r
129                 </para>\r
130         </sect1>\r
131         <sect1 id="tgit-admins-disablemenus">\r
132                 <title>Disable context menu entries</title>\r
133                 <indexterm>\r
134                         <primary>context menu entries</primary>\r
135                 </indexterm>\r
136                 <indexterm>\r
137                         <primary>disable functions</primary>\r
138                 </indexterm>\r
139                 <indexterm>\r
140                         <primary>group policies</primary>\r
141                 </indexterm>\r
142                 <para>\r
143                         TortoiseGit allows you to disable (actually, hide)\r
144                         context menu entries. Since this is a feature which should not be used lightly\r
145                         but only if there is a compelling reason, there is no GUI for this and it has\r
146                         to be done directly in the registry.\r
147                         This can be used to disable certain commands for users who should not use them.\r
148                         But please note that only the context menu entries in the <emphasis>explorer</emphasis>\r
149                         are hidden, and the commands are still available through other means, e.g. the\r
150                         command line or even other dialogs in TortoiseGit itself!\r
151                 </para>\r
152                 <para>\r
153                         The registry keys which hold the information on which context menus to show are\r
154                         <filename>HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskLow</filename>\r
155                         and <filename>HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskHigh</filename>.\r
156                 </para>\r
157                 <para>\r
158                         Each of these registry entries is a <literal>DWORD</literal> value, with each\r
159                         bit corresponding to a specific menu entry. A set bit means the corresponding\r
160                         menu entry is deactivated.\r
161                 </para>\r
162                 <para>\r
163                         <table id="tgit-admins-disablemenus-1-table">\r
164                                 <title>Menu entries and their values</title>\r
165                                 <tgroup cols="2">\r
166                                         <colspec colnum="1" colwidth="2*"/>\r
167                                         <colspec colnum="2" colwidth="6*"/>\r
168                                         <thead>\r
169                                                 <row>\r
170                                                         <entry>Value</entry>\r
171                                                         <entry>Menu entry</entry>\r
172                                                 </row>\r
173                                         </thead>\r
174                                         <tbody>\r
175                                                 <row>\r
176                                                         <entry condition="pot">0x0000000000000002</entry>\r
177                                                         <entry>Sync</entry>\r
178                                                 </row>\r
179                                                 <row>\r
180                                                         <entry condition="pot">0x0000000000000004</entry>\r
181                                                         <entry>Commit</entry>\r
182                                                 </row>\r
183                                                 <row>\r
184                                                         <entry condition="pot">0x0000000000000008</entry>\r
185                                                         <entry>Add</entry>\r
186                                                 </row>\r
187                                                 <row>\r
188                                                         <entry condition="pot">0x0000000000000010</entry>\r
189                                                         <entry>Revert</entry>\r
190                                                 </row>\r
191                                                 <row>\r
192                                                         <entry condition="pot">0x0000000000000020</entry>\r
193                                                         <entry>Cleanup</entry>\r
194                                                 </row>\r
195                                                 <row>\r
196                                                         <entry condition="pot">0x0000000000000040</entry>\r
197                                                         <entry>Resolve</entry>\r
198                                                 </row>\r
199                                                 <row>\r
200                                                         <entry condition="pot">0x0000000000000080</entry>\r
201                                                         <entry>Switch/Checkout</entry>\r
202                                                 </row>\r
203                                                 <row>\r
204                                                         <entry condition="pot">0x0000000000000100</entry>\r
205                                                         <entry>Sendmail</entry>\r
206                                                 </row>\r
207                                                 <row>\r
208                                                         <entry condition="pot">0x0000000000000200</entry>\r
209                                                         <entry>Export</entry>\r
210                                                 </row>\r
211                                                 <row>\r
212                                                         <entry condition="pot">0x0000000000000400</entry>\r
213                                                         <entry>Create Repository here</entry>\r
214                                                 </row>\r
215                                                 <row>\r
216                                                         <entry condition="pot">0x0000000000000800</entry>\r
217                                                         <entry>Branch/Tag</entry>\r
218                                                 </row>\r
219                                                 <row>\r
220                                                         <entry condition="pot">0x0000000000001000</entry>\r
221                                                         <entry>Merge</entry>\r
222                                                 </row>\r
223                                                 <row>\r
224                                                         <entry condition="pot">0x0000000000002000</entry>\r
225                                                         <entry>Delete</entry>\r
226                                                 </row>\r
227                                                 <row>\r
228                                                         <entry condition="pot">0x0000000000004000</entry>\r
229                                                         <entry>Rename</entry>\r
230                                                 </row>\r
231                                                 <row>\r
232                                                         <entry condition="pot">0x0000000000008000</entry>\r
233                                                         <entry>Submodule Update</entry>\r
234                                                 </row>\r
235                                                 <row>\r
236                                                         <entry condition="pot">0x0000000000010000</entry>\r
237                                                         <entry>Diff</entry>\r
238                                                 </row>\r
239                                                 <row>\r
240                                                         <entry condition="pot">0x0000000000020000</entry>\r
241                                                         <entry>Show Log</entry>\r
242                                                 </row>\r
243                                                 <row>\r
244                                                         <entry condition="pot">0x0000000000040000</entry>\r
245                                                         <entry>Edit Conflicts</entry>\r
246                                                 </row>\r
247                                                 <row>\r
248                                                         <entry condition="pot">0x0000000000080000</entry>\r
249                                                         <entry>Refence Browse</entry>\r
250                                                 </row>\r
251                                                 \r
252                                                 <row>\r
253                                                         <entry condition="pot">0x0000000000100000</entry>\r
254                                                         <entry>Check for modifications</entry>\r
255                                                 </row>\r
256                                                 <row>\r
257                                                         <entry condition="pot">0x0000000000200000</entry>\r
258                                                         <entry>Ignore</entry>\r
259                                                 </row>\r
260                                                 <row>\r
261                                                         <entry condition="pot">0x0000000000400000</entry>\r
262                                                         <entry>RefLog</entry>\r
263                                                 </row>\r
264                                                 <row>\r
265                                                         <entry condition="pot">0x0000000000800000</entry>\r
266                                                         <entry>Blame</entry>\r
267                                                 </row>\r
268                                                 <row>\r
269                                                         <entry condition="pot">0x0000000001000000</entry>\r
270                                                         <entry>Repository Browser</entry>\r
271                                                 </row>\r
272                                                 <row>\r
273                                                         <entry condition="pot">0x0000000002000000</entry>\r
274                                                         <entry>Apply Patch</entry>\r
275                                                 </row>\r
276                                                 <row>\r
277                                                         <entry condition="pot">0x0000000004000000</entry>\r
278                                                         <entry>Delete (keep local)</entry>\r
279                                                 </row>\r
280                                                 <row>\r
281                                                         <entry condition="pot">0x0000000008000000</entry>\r
282                                                         <entry>SVN Rebase</entry>\r
283                                                 </row>\r
284                                                 <row>\r
285                                                         <entry condition="pot">0x0000000010000000</entry>\r
286                                                         <entry>SVN DCommit</entry>\r
287                                                 </row>\r
288                                                 <row>\r
289                                                         <entry condition="pot">0x0000000040000000</entry>\r
290                                                         <entry>SVN Ignore</entry>\r
291                                                 </row>\r
292                                                 <row>\r
293                                                         <entry condition="pot">0x0000000100000000</entry>\r
294                                                         <entry>Log of Submodule folder</entry>\r
295                                                 </row>\r
296                                                 <row>\r
297                                                         <entry condition="pot">0x0000000200000000</entry>\r
298                                                         <entry>Rev Diff</entry>\r
299                                                 </row>\r
300                                                 <row>\r
301                                                         <entry condition="pot">0x0000000800000000</entry>\r
302                                                         <entry>Pull</entry>\r
303                                                 </row>\r
304                                                 <row>\r
305                                                         <entry condition="pot">0x0000001000000000</entry>\r
306                                                         <entry>Push</entry>\r
307                                                 </row>\r
308                                                 <row>\r
309                                                         <entry condition="pot">0x0000002000000000</entry>\r
310                                                         <entry>Clone</entry>\r
311                                                 </row>\r
312                                                 <row>\r
313                                                         <entry condition="pot">0x0000004000000000</entry>\r
314                                                         <entry>Tag</entry>\r
315                                                 </row>\r
316                                                 <row>\r
317                                                         <entry condition="pot">0x0000008000000000</entry>\r
318                                                         <entry>Format Patch</entry>\r
319                                                 </row>\r
320                                                 <row>\r
321                                                         <entry condition="pot">0x0000010000000000</entry>\r
322                                                         <entry>Import Patch</entry>\r
323                                                 </row>\r
324                                                 <row>\r
325                                                         <entry condition="pot">0x0000040000000000</entry>\r
326                                                         <entry>Fetch</entry>\r
327                                                 </row>\r
328                                                 <row>\r
329                                                         <entry condition="pot">0x0000080000000000</entry>\r
330                                                         <entry>Rebase</entry>\r
331                                                 </row>\r
332                                                 <row>\r
333                                                         <entry condition="pot">0x0000100000000000</entry>\r
334                                                         <entry>Stash Save</entry>\r
335                                                 </row>\r
336                                                 <row>\r
337                                                         <entry condition="pot">0x0000200000000000</entry>\r
338                                                         <entry>Stash Apply</entry>\r
339                                                 </row>\r
340                                                 <row>\r
341                                                         <entry condition="pot">0x0000400000000000</entry>\r
342                                                         <entry>Stash List</entry>\r
343                                                 </row>\r
344                                                 <row>\r
345                                                         <entry condition="pot">0x0000800000000000</entry>\r
346                                                         <entry>Submodule Add</entry>\r
347                                                 </row>\r
348                                                 <row>\r
349                                                         <entry condition="pot">0x0001000000000000</entry>\r
350                                                         <entry>Submodule Sync</entry>\r
351                                                 </row>\r
352                                                 <row>\r
353                                                         <entry condition="pot">0x0002000000000000</entry>\r
354                                                         <entry>Stash Pop</entry>\r
355                                                 </row>\r
356                                                 <row>\r
357                                                         <entry condition="pot">0x0004000000000000</entry>\r
358                                                         <entry>Diff two files</entry>\r
359                                                 </row>\r
360                                                 <row>\r
361                                                         <entry condition="pot">0x0008000000000000</entry>\r
362                                                         <entry>Bisect</entry>\r
363                                                 </row>\r
364                                                 <row>\r
365                                                         <entry condition="pot">0x0080000000000000</entry>\r
366                                                         <entry>SVN Fetch</entry>\r
367                                                 </row>\r
368                                                 <row>\r
369                                                         <entry condition="pot">0x0100000000000000</entry>\r
370                                                         <entry>Revision graph</entry>\r
371                                                 </row>\r
372                                                 <row>\r
373                                                         <entry condition="pot">0x0200000000000000</entry>\r
374                                                         <entry>Daemon</entry>\r
375                                                 </row>\r
376                                                 <row>\r
377                                                         <entry condition="pot">0x2000000000000000</entry>\r
378                                                         <entry>Settings</entry>\r
379                                                 </row>\r
380                                                 <row>\r
381                                                         <entry condition="pot">0x4000000000000000</entry>\r
382                                                         <entry>Help</entry>\r
383                                                 </row>\r
384                                                 <row>\r
385                                                         <entry condition="pot">0x8000000000000000</entry>\r
386                                                         <entry>About</entry>\r
387                                                 </row>\r
388                                         </tbody>\r
389                                 </tgroup>\r
390                         </table>\r
391                 </para>\r
392                 <para>\r
393                         Example: to disable the <quote>Sendmail</quote> the \r
394                         <quote>Rebase</quote>\r
395                         and the <quote>Settings</quote> menu entries, add the values assigned\r
396                         to the entries like this:\r
397 <screen>\r
398   0x0000000000000100\r
399 + 0x0000080000000000\r
400 + 0x2000000000000000\r
401 = 0x2000080000000100\r
402 </screen>\r
403                         The lower <literal>DWORD</literal> value (<literal>0x00000100</literal>)\r
404                         must then be stored in\r
405                         <filename>HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskLow</filename>,\r
406                         the higher <literal>DWORD</literal> value (<literal>0x20000800</literal>) in\r
407                         <filename>HKEY_CURRENT_USER\Software\TortoiseGit\ContextMenuEntriesMaskHigh</filename>.\r
408                 </para>\r
409                 <para>\r
410                         To enable the menu entries again, simply delete the two registry keys.\r
411                 </para>\r
412         </sect1>\r
413 </appendix>\r