comparison contrib/vim/hgcommand.vim @ 2604:d93c23b31797

HGcommand.vim : doc review.
author "Mathieu Clabaut <mathieu.clabaut@gmail.com>"
date Wed, 12 Jul 2006 23:52:08 +0200
parents f80057407c07
children 4ad79eeebf96
comparison
equal deleted inserted replaced
2603:f80057407c07 2604:d93c23b31797
4 " 4 "
5 " Last Change: 2006/02/22 5 " Last Change: 2006/02/22
6 " Version: 1.76 6 " Version: 1.76
7 " Maintainer: Mathieu Clabaut <mathieu.clabaut@gmail.com> 7 " Maintainer: Mathieu Clabaut <mathieu.clabaut@gmail.com>
8 " License: This file is placed in the public domain. 8 " License: This file is placed in the public domain.
9 " Credits: {{{1 9 " Credits:
10 " Bob Hiestand <bob.hiestand@gmail.com> for the fabulous 10 " Bob Hiestand <bob.hiestand@gmail.com> for the fabulous
11 " cvscommand.vim from which this script was directly created by 11 " cvscommand.vim from which this script was directly created by
12 " means of sed commands and minor tweaks. 12 " means of sed commands and minor tweaks.
13 13
14 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 14 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
20 " script has been copied in you .vim/plugin directory. 20 " script has been copied in you .vim/plugin directory.
21 " 21 "
22 " You still can read the documentation at the end of this file. Locate it by 22 " You still can read the documentation at the end of this file. Locate it by
23 " searching the "hgcommand-contents" string (and set ft=help to have 23 " searching the "hgcommand-contents" string (and set ft=help to have
24 " appropriate syntaxic coloration). 24 " appropriate syntaxic coloration).
25 " 25
26 " Section: Documentation : detail {{{1
27 "
28 " Provides functions to invoke various HG commands on the current file
29 " (either the current buffer, or, in the case of an directory buffer, the file
30 " on the current line). The output of the commands is captured in a new
31 " scratch window. For convenience, if the functions are invoked on a HG
32 " output window, the original file is used for the hg operation instead after
33 " the window is split. This is primarily useful when running HGCommit and
34 " you need to see the changes made, so that HGDiff is usable and shows up in
35 " another window.
36 "
37 " Command documentation {{{2
38 "
39 " HGAdd Performs "hg add" on the current file.
40 "
41 " HGAnnotate Performs "hg annotate" on the current file. If an
42 " argument is given, the argument is used as a revision
43 " number to display. If not given an argument, it uses the
44 " most recent version of the file on the current branch.
45 " Additionally, if the current buffer is a HGAnnotate buffer
46 " already, the version number on the current line is used.
47 "
48 " If the 'HGCommandAnnotateParent' variable is set to a
49 " non-zero value, the version previous to the one on the
50 " current line is used instead. This allows one to navigate
51 " back to examine the previous version of a line.
52 "
53 " HGCommit[!] If called with arguments, this performs "hg commit" using
54 " the arguments as the log message.
55 "
56 " If '!' is used, an empty log message is committed.
57 "
58 " If called with no arguments, this is a two-step command.
59 " The first step opens a buffer to accept a log message.
60 " When that buffer is written, it is automatically closed and
61 " the file is committed using the information from that log
62 " message. The commit can be abandoned if the log message
63 " buffer is deleted or wiped before being written.
64 "
65 " HGDiff With no arguments, this performs "hg diff" on the current
66 " file. With one argument, "hg diff" is performed on the
67 " current file against the specified revision. With two
68 " arguments, hg diff is performed between the specified
69 " revisions of the current file. This command uses the
70 " 'HGCommandDiffOpt' variable to specify diff options. If
71 " that variable does not exist, then 'wbBc' is assumed. If
72 " you wish to have no options, then set it to the empty
73 " string.
74 "
75 " HGGotoOriginal Returns the current window to the source buffer if the
76 " current buffer is a HG output buffer.
77 "
78 " HGLog Performs "hg log" on the current file.
79 "
80 " HGRevert Replaces the modified version of the current file with the
81 " most recent version from the repository.
82 "
83 " HGReview Retrieves a particular version of the current file. If no
84 " argument is given, the most recent version of the file on
85 " the current branch is retrieved. The specified revision is
86 " retrieved into a new buffer.
87 "
88 " HGStatus Performs "hg status" on the current file.
89 "
90 " HGUpdate Performs "hg update" on the current file.
91 "
92 " HGVimDiff With no arguments, this prompts the user for a revision and
93 " then uses vimdiff to display the differences between the
94 " current file and the specified revision. If no revision is
95 " specified, the most recent version of the file on the
96 " current branch is used. With one argument, that argument
97 " is used as the revision as above. With two arguments, the
98 " differences between the two revisions is displayed using
99 " vimdiff.
100 "
101 " With either zero or one argument, the original buffer is used
102 " to perform the vimdiff. When the other buffer is closed, the
103 " original buffer will be returned to normal mode.
104 "
105 " Once vimdiff mode is started using the above methods,
106 " additional vimdiff buffers may be added by passing a single
107 " version argument to the command. There may be up to 4
108 " vimdiff buffers total.
109 "
110 " Using the 2-argument form of the command resets the vimdiff
111 " to only those 2 versions. Additionally, invoking the
112 " command on a different file will close the previous vimdiff
113 " buffers.
114 "
115 "
116 " Mapping documentation: {{{2
117 "
118 " By default, a mapping is defined for each command. User-provided mappings
119 " can be used instead by mapping to <Plug>CommandName, for instance:
120 "
121 " nnoremap ,ca <Plug>HGAdd
122 "
123 " The default mappings are as follow:
124 "
125 " <Leader>hga HGAdd
126 " <Leader>hgn HGAnnotate
127 " <Leader>hgc HGCommit
128 " <Leader>hgd HGDiff
129 " <Leader>hgg HGGotoOriginal
130 " <Leader>hgG HGGotoOriginal!
131 " <Leader>hgl HGLog
132 " <Leader>hgr HGReview
133 " <Leader>hgs HGStatus
134 " <Leader>hgu HGUpdate
135 " <Leader>hgv HGVimDiff
136 "
137 " Options documentation: {{{2
138 "
139 " Several variables are checked by the script to determine behavior as follow:
140 "
141 " HGCommandAnnotateParent
142 " This variable, if set to a non-zero value, causes the zero-argument form
143 " of HGAnnotate when invoked on a HGAnnotate buffer to go to the version
144 " previous to that displayed on the current line. If not set, it defaults
145 " to 0.
146 "
147 " HGCommandCommitOnWrite
148 " This variable, if set to a non-zero value, causes the pending hg commit
149 " to take place immediately as soon as the log message buffer is written.
150 " If set to zero, only the HGCommit mapping will cause the pending commit
151 " to occur. If not set, it defaults to 1.
152 "
153 " HGCommandDeleteOnHide
154 " This variable, if set to a non-zero value, causes the temporary HG result
155 " buffers to automatically delete themselves when hidden.
156 "
157 " HGCommandDiffOpt
158 " This variable, if set, determines the options passed to the diff command
159 " of HG. If not set, it defaults to 'wbBc'.
160 "
161 " HGCommandDiffSplit
162 " This variable overrides the HGCommandSplit variable, but only for buffers
163 " created with HGVimDiff.
164 "
165 " HGCommandEdit
166 " This variable controls whether the original buffer is replaced ('edit') or
167 " split ('split'). If not set, it defaults to 'edit'.
168 "
169 " HGCommandEnableBufferSetup
170 " This variable, if set to a non-zero value, activates HG buffer management
171 " mode. This mode means that two buffer variables, 'HGRevision' and
172 " 'HGBranch', are set if the file is HG-controlled. This is useful for
173 " displaying version information in the status bar.
174 "
175 " HGCommandInteractive
176 " This variable, if set to a non-zero value, causes appropriate functions (for
177 " the moment, only HGReview) to query the user for a revision to use
178 " instead of the current revision if none is specified.
179 "
180 " HGCommandNameMarker
181 " This variable, if set, configures the special attention-getting characters
182 " that appear on either side of the hg buffer type in the buffer name.
183 " This has no effect unless 'HGCommandNameResultBuffers' is set to a true
184 " value. If not set, it defaults to '_'.
185 "
186 " HGCommandNameResultBuffers
187 " This variable, if set to a true value, causes the hg result buffers to be
188 " named in the old way ('<source file name> _<hg command>_'). If not set
189 " or set to a false value, the result buffer is nameless.
190 "
191 " HGCommandSplit
192 " This variable controls the orientation of the various window splits that
193 " may occur (such as with HGVimDiff, when using a HG command on a HG
194 " command buffer, or when the 'HGCommandEdit' variable is set to 'split'.
195 " If set to 'horizontal', the resulting windows will be on stacked on top of
196 " one another. If set to 'vertical', the resulting windows will be
197 " side-by-side. If not set, it defaults to 'horizontal' for all but
198 " HGVimDiff windows.
199 "
200 " Event documentation {{{2
201 " For additional customization, hgcommand.vim uses User event autocommand
202 " hooks. Each event is in the HGCommand group, and different patterns
203 " match the various hooks.
204 "
205 " For instance, the following could be added to the vimrc to provide a 'q'
206 " mapping to quit a HG buffer:
207 "
208 " augroup HGCommand
209 " au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q :bwipeout<cr>
210 " augroup END
211 "
212 " The following hooks are available:
213 "
214 " HGBufferCreated This event is fired just after a hg command
215 " result buffer is created and filled with the
216 " result of a hg command. It is executed within
217 " the context of the new buffer.
218 "
219 " HGBufferSetup This event is fired just after HG buffer setup
220 " occurs, if enabled.
221 "
222 " HGPluginInit This event is fired when the HGCommand plugin
223 " first loads.
224 "
225 " HGPluginFinish This event is fired just after the HGCommand
226 " plugin loads.
227 "
228 " HGVimDiffFinish This event is fired just after the HGVimDiff
229 " command executes to allow customization of,
230 " for instance, window placement and focus.
231 "
232 " Section: Plugin header {{{1 26 " Section: Plugin header {{{1
233 27
234 " loaded_hgcommand is set to 1 when the initialization begins, and 2 when it 28 " loaded_hgcommand is set to 1 when the initialization begins, and 2 when it
235 " completes. This allows various actions to only be taken by functions after 29 " completes. This allows various actions to only be taken by functions after
236 " system initialization. 30 " system initialization.
1420 Mercurial: http://www.selenic.com/mercurial 1214 Mercurial: http://www.selenic.com/mercurial
1421 Mercurial (noted Hg) is a fast, lightweight Source Control Management 1215 Mercurial (noted Hg) is a fast, lightweight Source Control Management
1422 system designed for efficient handling of very large distributed projects. 1216 system designed for efficient handling of very large distributed projects.
1423 1217
1424 ============================================================================== 1218 ==============================================================================
1425 1. Contents *hgcommand-contents* 1219 1. Contents *hgcommand-contents*
1426 1220
1427 Installation : |hgcommand-install| 1221 Installation : |hgcommand-install|
1428 HGCommand Intro : |hgcommand| 1222 HGCommand Intro : |hgcommand|
1429 HGCommand Manual : |hgcommand-manual| 1223 HGCommand Manual : |hgcommand-manual|
1430 Customization : |hgcommand-customize| 1224 Customization : |hgcommand-customize|
1431 SSH "integration" : |hgcommand-ssh|
1432 Bugs : |hgcommand-bugs| 1225 Bugs : |hgcommand-bugs|
1433 1226
1434 ============================================================================== 1227 ==============================================================================
1435 *hgcommand-install* 1228 2. HGCommand Installation *hgcommand-install*
1436 2. HGCommand Installation
1437 1229
1438 In order to install the plugin, place the hgcommand.vim file into a plugin' 1230 In order to install the plugin, place the hgcommand.vim file into a plugin'
1439 directory in your runtime path (please see |add-global-plugin| and 1231 directory in your runtime path (please see |add-global-plugin| and
1440 |'runtimepath'|. 1232 |'runtimepath'|.
1441 1233
1442 HGCommand may be customized by setting variables, creating maps, and 1234 HGCommand may be customized by setting variables, creating maps, and
1443 specifying event handlers. Please see |hgcommand-customize| for more 1235 specifying event handlers. Please see |hgcommand-customize| for more
1444 details. 1236 details.
1445 1237
1446 *hgcommand-auto-help* 1238 *hgcommand-auto-help*
1447 The help file is automagically generated when the |vimspell| script is 1239 The help file is automagically generated when the |hgcommand| script is
1448 loaded for the first time. 1240 loaded for the first time.
1449 1241
1450 ============================================================================== 1242 ==============================================================================
1451 1243
1452 3. HGCommand Intro *hgcommand* 1244 3. HGCommand Intro *hgcommand*
1453 *hgcommand-intro* 1245 *hgcommand-intro*
1454 1246
1455 The HGCommand plugin provides global ex commands for manipulating 1247 The HGCommand plugin provides global ex commands for manipulating
1456 HG-controlled source files. In general, each command operates on the current 1248 HG-controlled source files. In general, each command operates on the
1457 buffer and accomplishes a separate hg function, such as update, commit, log, 1249 current buffer and accomplishes a separate hg function, such as update,
1458 and others (please see |hgcommand-commands| for a list of all available 1250 commit, log, and others (please see |hgcommand-commands| for a list of all
1459 commands). The results of each operation are displayed in a scratch buffer. 1251 available commands). The results of each operation are displayed in a
1460 Several buffer variables are defined for those scratch buffers (please see 1252 scratch buffer. Several buffer variables are defined for those scratch
1461 |hgcommand-buffer-variables|). 1253 buffers (please see |hgcommand-buffer-variables|).
1462 1254
1463 The notion of "current file" means either the current buffer, or, in the case 1255 The notion of "current file" means either the current buffer, or, in the
1464 of a directory buffer, the file on the current line within the buffer. 1256 case of a directory buffer, the file on the current line within the buffer.
1465 1257
1466 For convenience, any HGCommand invoked on a HGCommand scratch buffer acts as 1258 For convenience, any HGCommand invoked on a HGCommand scratch buffer acts
1467 though it was invoked on the original file and splits the screen so that the 1259 as though it was invoked on the original file and splits the screen so that
1468 output appears in a new window. 1260 the output appears in a new window.
1469 1261
1470 Many of the commands accept revisions as arguments. By default, most operate 1262 Many of the commands accept revisions as arguments. By default, most
1471 on the most recent revision on the current branch if no revision is specified 1263 operate on the most recent revision on the current branch if no revision is
1472 (though see |HGCommandInteractive| to prompt instead). 1264 specified (though see |HGCommandInteractive| to prompt instead).
1473 1265
1474 Each HGCommand is mapped to a key sequence starting with the <Leader> 1266 Each HGCommand is mapped to a key sequence starting with the <Leader>
1475 keystroke. The default mappings may be overridden by supplying different 1267 keystroke. The default mappings may be overridden by supplying different
1476 mappings before the plugin is loaded, such as in the vimrc, in the standard 1268 mappings before the plugin is loaded, such as in the vimrc, in the standard
1477 fashion for plugin mappings. For examples, please see 1269 fashion for plugin mappings. For examples, please see
1478 |hgcommand-mappings-override|. 1270 |hgcommand-mappings-override|.
1479 1271
1480 The HGCommand plugin may be configured in several ways. For more details, 1272 The HGCommand plugin may be configured in several ways. For more details,
1481 please see |hgcommand-customize|. 1273 please see |hgcommand-customize|.
1482 1274
1483 ============================================================================== 1275 ==============================================================================
1484 1276 4. HGCommand Manual *hgcommand-manual*
1485 4. HGCommand Manual *hgcommand-manual* 1277
1486 1278 4.1 HGCommand commands *hgcommand-commands*
1487 4.1 HGCommand commands *hgcommand-commands* 1279
1488 1280 HGCommand defines the following commands:
1489 HGCommand defines the following commands: 1281
1490 1282 |:HGAdd|
1491 |:HGAdd| 1283 |:HGAnnotate|
1492 |:HGAnnotate| 1284 |:HGCommit|
1493 |:HGCommit| 1285 |:HGDiff|
1494 |:HGDiff| 1286 |:HGGotoOriginal|
1495 |:HGGotoOriginal| 1287 |:HGLog|
1496 |:HGLog| 1288 |:HGRevert|
1497 |:HGRevert| 1289 |:HGReview|
1498 |:HGReview| 1290 |:HGStatus|
1499 |:HGStatus| 1291 |:HGUpdate|
1500 |:HGUnedit| 1292 |:HGVimDiff|
1501 |:HGUpdate| 1293
1502 |:HGVimDiff| 1294 :HGAdd *:HGAdd*
1503 1295
1504 :HGAdd *:HGAdd* 1296 This command performs "hg add" on the current file. Please note, this does
1505 1297 not commit the newly-added file.
1506 This command performs "hg add" on the current file. Please note, this does 1298
1507 not commit the newly-added file. 1299 :HGAnnotate *:HGAnnotate*
1508 1300
1509 :HGAnnotate *:HGAnnotate* 1301 This command performs "hg annotate" on the current file. If an argument is
1510 1302 given, the argument is used as a revision number to display. If not given
1511 This command performs "hg annotate" on the current file. If an argument is 1303 an argument, it uses the most recent version of the file on the current
1512 given, the argument is used as a revision number to display. If not given an 1304 branch. Additionally, if the current buffer is a HGAnnotate buffer
1513 argument, it uses the most recent version of the file on the current branch. 1305 already, the version number on the current line is used.
1514 Additionally, if the current buffer is a HGAnnotate buffer already, the 1306
1515 version number on the current line is used. 1307 If the |HGCommandAnnotateParent| variable is set to a non-zero value, the
1516 1308 version previous to the one on the current line is used instead. This
1517 If the |HGCommandAnnotateParent| variable is set to a non-zero value, the 1309 allows one to navigate back to examine the previous version of a line.
1518 version previous to the one on the current line is used instead. This allows 1310
1519 one to navigate back to examine the previous version of a line. 1311 The filetype of the HGCommand scratch buffer is set to 'HGAnnotate', to
1520 1312 take advantage of the bundled syntax file.
1521 The filetype of the HGCommand scratch buffer is set to 'HGAnnotate', to take 1313
1522 advantage of the bundled syntax file. 1314
1523 1315 :HGCommit[!] *:HGCommit*
1524 1316
1525 :HGCommit[!] *:HGCommit* 1317 If called with arguments, this performs "hg commit" using the arguments as
1526 1318 the log message.
1527 If called with arguments, this performs "hg commit" using the arguments as 1319
1528 the log message. 1320 If '!' is used with no arguments, an empty log message is committed.
1529 1321
1530 If '!' is used with no arguments, an empty log message is committed. 1322 If called with no arguments, this is a two-step command. The first step
1531 1323 opens a buffer to accept a log message. When that buffer is written, it is
1532 If called with no arguments, this is a two-step command. The first step opens 1324 automatically closed and the file is committed using the information from
1533 a buffer to accept a log message. When that buffer is written, it is 1325 that log message. The commit can be abandoned if the log message buffer is
1534 automatically closed and the file is committed using the information from that 1326 deleted or wiped before being written.
1535 log message. The commit can be abandoned if the log message buffer is deleted 1327
1536 or wiped before being written. 1328 Alternatively, the mapping that is used to invoke :HGCommit (by default
1537 1329 <Leader>hgc) can be used in the log message buffer to immediately commit.
1538 Alternatively, the mapping that is used to invoke :HGCommit (by default 1330 This is useful if the |HGCommandCommitOnWrite| variable is set to 0 to
1539 <Leader>hgc) can be used in the log message buffer to immediately commit. 1331 disable the normal commit-on-write behavior.
1540 This 1332
1541 is useful if the |HGCommandCommitOnWrite| variable is set to 0 to disable the 1333 :HGDiff *:HGDiff*
1542 normal commit-on-write behavior. 1334
1543 1335 With no arguments, this performs "hg diff" on the current file against the
1544 :HGDiff *:HGDiff* 1336 current repository version.
1545 1337
1546 With no arguments, this performs "hg diff" on the current file against the 1338 With one argument, "hg diff" is performed on the current file against the
1547 current repository version. 1339 specified revision.
1548 1340
1549 With one argument, "hg diff" is performed on the current file against the 1341 With two arguments, hg diff is performed between the specified revisions of
1550 specified revision. 1342 the current file.
1551 1343
1552 With two arguments, hg diff is performed between the specified 1344 This command uses the 'HGCommandDiffOpt' variable to specify diff options.
1553 revisions of the current file. 1345 If that variable does not exist, then 'wbBc' is assumed. If you wish to
1554 1346 have no options, then set it to the empty string.
1555 This command uses the 'HGCommandDiffOpt' variable to specify diff options. 1347
1556 If that variable does not exist, then 'wbBc' is assumed. If you wish to have 1348
1557 no options, then set it to the empty string. 1349 :HGGotoOriginal *:HGGotoOriginal*
1558 1350
1559 1351 This command returns the current window to the source buffer, if the
1560 This command performs "hg edit" on the current file. 1352 current buffer is a HG command output buffer.
1561
1562 :HGGotoOriginal *:HGGotoOriginal*
1563
1564 This command returns the current window to the source buffer, if the current
1565 buffer is a HG command output buffer.
1566 1353
1567 :HGGotoOriginal! 1354 :HGGotoOriginal!
1568 1355
1569 Like ":HGGotoOriginal" but also executes :bufwipeout on all HG command 1356 Like ":HGGotoOriginal" but also executes :bufwipeout on all HG command
1570 output buffers for the source buffer. 1357 output buffers for the source buffer.
1571 1358
1572 :HGLog *:HGLog* 1359 :HGLog *:HGLog*
1573 1360
1574 Performs "hg log" on the current file. 1361 Performs "hg log" on the current file.
1575 1362
1576 If an argument is given, it is passed as an argument to the "-r" option of 1363 If an argument is given, it is passed as an argument to the "-r" option of
1577 "hg log". 1364 "hg log".
1578 1365
1579 :HGRevert *:HGRevert* 1366 :HGRevert *:HGRevert*
1580 1367
1581 Replaces the current file with the most recent version from the repository in 1368 Replaces the current file with the most recent version from the repository
1582 order to wipe out any undesired changes. 1369 in order to wipe out any undesired changes.
1583 1370
1584 :HGReview *:HGReview* 1371 :HGReview *:HGReview*
1585 1372
1586 Retrieves a particular version of the current file. If no argument is given, 1373 Retrieves a particular version of the current file. If no argument is
1587 the most recent version of the file on the current branch is retrieved. 1374 given, the most recent version of the file on the current branch is
1588 Otherwise, the specified version is retrieved. 1375 retrieved. Otherwise, the specified version is retrieved.
1589 1376
1590 :HGStatus *:HGStatus* 1377 :HGStatus *:HGStatus*
1591 1378
1592 Performs "hg status" on the current file. 1379 Performs "hg status" on the current file.
1593 1380
1594 :HGUnedit *:HGUnedit* 1381 :HGUpdate *:HGUpdate*
1595 1382
1596 Performs "hg unedit" on the current file. Again, yes, the output buffer here 1383 Performs "hg update" on the current file. This intentionally does not
1597 is basically useless. 1384 automatically reload the current buffer, though vim should prompt the user
1598 1385 to do so if the underlying file is altered by this command.
1599 :HGUpdate *:HGUpdate* 1386
1600 1387 :HGVimDiff *:HGVimDiff*
1601 Performs "hg update" on the current file. This intentionally does not 1388
1602 automatically reload the current buffer, though vim should prompt the user to 1389 With no arguments, this prompts the user for a revision and then uses
1603 do so if the underlying file is altered by this command. 1390 vimdiff to display the differences between the current file and the
1604 1391 specified revision. If no revision is specified, the most recent version
1605 :HGVimDiff *:HGVimDiff* 1392 of the file on the current branch is used.
1606 1393
1607 With no arguments, this prompts the user for a revision and then uses vimdiff 1394 With one argument, that argument is used as the revision as above. With
1608 to display the differences between the current file and the specified 1395 two arguments, the differences between the two revisions is displayed using
1609 revision. If no revision is specified, the most recent version of the file on 1396 vimdiff.
1610 the current branch is used. 1397
1611 1398 With either zero or one argument, the original buffer is used to perform
1612 With one argument, that argument is used as the revision as above. With two 1399 the vimdiff. When the other buffer is closed, the original buffer will be
1613 arguments, the differences between the two revisions is displayed using 1400 returned to normal mode.
1614 vimdiff. 1401
1615 1402 Once vimdiff mode is started using the above methods, additional vimdiff
1616 With either zero or one argument, the original buffer is used to perform the 1403 buffers may be added by passing a single version argument to the command.
1617 vimdiff. When the other buffer is closed, the original buffer will be 1404 There may be up to 4 vimdiff buffers total.
1618 returned to normal mode. 1405
1619 1406 Using the 2-argument form of the command resets the vimdiff to only those 2
1620 Once vimdiff mode is started using the above methods, additional vimdiff 1407 versions. Additionally, invoking the command on a different file will
1621 buffers may be added by passing a single version argument to the command. 1408 close the previous vimdiff buffers.
1622 There may be up to 4 vimdiff buffers total. 1409
1623 1410
1624 Using the 2-argument form of the command resets the vimdiff to only those 2 1411 4.2 Mappings *hgcommand-mappings*
1625 versions. Additionally, invoking the command on a different file will close 1412
1626 the previous vimdiff buffers. 1413 By default, a mapping is defined for each command. These mappings execute
1627 1414 the default (no-argument) form of each command.
1628 1415
1629 4.2 Mappings *hgcommand-mappings* 1416 <Leader>hga HGAdd
1630 1417 <Leader>hgn HGAnnotate
1631 By default, a mapping is defined for each command. These mappings execute the 1418 <Leader>hgc HGCommit
1632 default (no-argument) form of each command. 1419 <Leader>hgd HGDiff
1633 1420 <Leader>hgg HGGotoOriginal
1634 <Leader>hga HGAdd 1421 <Leader>hgG HGGotoOriginal!
1635 <Leader>hgn HGAnnotate 1422 <Leader>hgl HGLog
1636 <Leader>hgc HGCommit 1423 <Leader>hgr HGReview
1637 <Leader>hgd HGDiff 1424 <Leader>hgs HGStatus
1638 <Leader>hgg HGGotoOriginal 1425 <Leader>hgu HGUpdate
1639 <Leader>hgG HGGotoOriginal! 1426 <Leader>hgv HGVimDiff
1640 <Leader>hgl HGLog 1427
1641 <Leader>hgr HGReview 1428 *hgcommand-mappings-override*
1642 <Leader>hgs HGStatus 1429
1643 <Leader>hgt HGUnedit 1430 The default mappings can be overriden by user-provided instead by mapping
1644 <Leader>hgu HGUpdate 1431 to <Plug>CommandName. This is especially useful when these mappings
1645 <Leader>hgv HGVimDiff 1432 collide with other existing mappings (vim will warn of this during plugin
1646 1433 initialization, but will not clobber the existing mappings).
1647 *hgcommand-mappings-override* 1434
1648 1435 For instance, to override the default mapping for :HGAdd to set it to
1649 The default mappings can be overriden by user-provided instead by mapping to 1436 '\add', add the following to the vimrc: >
1650 <Plug>CommandName. This is especially useful when these mappings collide with 1437
1651 other existing mappings (vim will warn of this during plugin initialization, 1438 nmap \add <Plug>HGAdd
1652 but will not clobber the existing mappings). 1439 <
1653 1440 4.3 Automatic buffer variables *hgcommand-buffer-variables*
1654 For instance, to override the default mapping for :HGAdd to set it to '\add', 1441
1655 add the following to the vimrc: 1442 Several buffer variables are defined in each HGCommand result buffer.
1656 1443 These may be useful for additional customization in callbacks defined in
1657 nmap \add <Plug>HGAdd 1444 the event handlers (please see |hgcommand-events|).
1658 1445
1659 4.3 Automatic buffer variables *hgcommand-buffer-variables* 1446 The following variables are automatically defined:
1660 1447
1661 Several buffer variables are defined in each HGCommand result buffer. These 1448 b:hgOrigBuffNR *b:hgOrigBuffNR*
1662 may be useful for additional customization in callbacks defined in the event 1449
1663 handlers (please see |hgcommand-events|). 1450 This variable is set to the buffer number of the source file.
1664 1451
1665 The following variables are automatically defined: 1452 b:hgcmd *b:hgcmd*
1666 1453
1667 b:hgOrigBuffNR *b:hgOrigBuffNR* 1454 This variable is set to the name of the hg command that created the result
1668 1455 buffer.
1669 This variable is set to the buffer number of the source file.
1670
1671 b:hgcmd *b:hgcmd*
1672
1673 This variable is set to the name of the hg command that created the result
1674 buffer.
1675 ============================================================================== 1456 ==============================================================================
1676 1457
1677 5. Configuration and customization *hgcommand-customize* 1458 5. Configuration and customization *hgcommand-customize*
1678 *hgcommand-config* 1459 *hgcommand-config*
1679 1460
1680 The HGCommand plugin can be configured in two ways: by setting configuration 1461 The HGCommand plugin can be configured in two ways: by setting
1681 variables (see |hgcommand-options|) or by defining HGCommand event handlers 1462 configuration variables (see |hgcommand-options|) or by defining HGCommand
1682 (see |hgcommand-events|). Additionally, the HGCommand plugin provides 1463 event handlers (see |hgcommand-events|). Additionally, the HGCommand
1683 several option for naming the HG result buffers (see |hgcommand-naming|) and 1464 plugin provides several option for naming the HG result buffers (see
1684 supported a customized status line (see |hgcommand-statusline| and 1465 |hgcommand-naming|) and supported a customized status line (see
1685 |hgcommand-buffer-management|). 1466 |hgcommand-statusline| and |hgcommand-buffer-management|).
1686 1467
1687 5.1 HGCommand configuration variables *hgcommand-options* 1468 5.1 HGCommand configuration variables *hgcommand-options*
1688 1469
1689 Several variables affect the plugin's behavior. These variables are checked 1470 Several variables affect the plugin's behavior. These variables are
1690 at time of execution, and may be defined at the window, buffer, or global 1471 checked at time of execution, and may be defined at the window, buffer, or
1691 level and are checked in that order of precedence. 1472 global level and are checked in that order of precedence.
1692 1473
1693 1474
1694 The following variables are available: 1475 The following variables are available:
1695 1476
1696 |HGCommandAnnotateParent| 1477 |HGCommandAnnotateParent|
1697 |HGCommandCommitOnWrite| 1478 |HGCommandCommitOnWrite|
1698 |HGCommandHGExec| 1479 |HGCommandHGExec|
1699 |HGCommandDeleteOnHide| 1480 |HGCommandDeleteOnHide|
1700 |HGCommandDiffOpt| 1481 |HGCommandDiffOpt|
1701 |HGCommandDiffSplit| 1482 |HGCommandDiffSplit|
1702 |HGCommandEdit| 1483 |HGCommandEdit|
1703 |HGCommandEnableBufferSetup| 1484 |HGCommandEnableBufferSetup|
1704 |HGCommandInteractive| 1485 |HGCommandInteractive|
1705 |HGCommandNameMarker| 1486 |HGCommandNameMarker|
1706 |HGCommandNameResultBuffers| 1487 |HGCommandNameResultBuffers|
1707 |HGCommandSplit| 1488 |HGCommandSplit|
1708 1489
1709 HGCommandAnnotateParent *HGCommandAnnotateParent* 1490 HGCommandAnnotateParent *HGCommandAnnotateParent*
1710 1491
1711 This variable, if set to a non-zero value, causes the zero-argument form of 1492 This variable, if set to a non-zero value, causes the zero-argument form of
1712 HGAnnotate when invoked on a HGAnnotate buffer to go to the version previous 1493 HGAnnotate when invoked on a HGAnnotate buffer to go to the version
1713 to that displayed on the current line. If not set, it defaults to 0. 1494 previous to that displayed on the current line. If not set, it defaults to
1714 1495 0.
1715 HGCommandCommitOnWrite *HGCommandCommitOnWrite* 1496
1716 1497 HGCommandCommitOnWrite *HGCommandCommitOnWrite*
1717 This variable, if set to a non-zero value, causes the pending hg commit 1498
1718 to take place immediately as soon as the log message buffer is written. 1499 This variable, if set to a non-zero value, causes the pending hg commit to
1719 If set to zero, only the HGCommit mapping will cause the pending commit to 1500 take place immediately as soon as the log message buffer is written. If
1720 occur. If not set, it defaults to 1. 1501 set to zero, only the HGCommit mapping will cause the pending commit to
1721 1502 occur. If not set, it defaults to 1.
1722 HGCommandHGExec *HGCommandHGExec* 1503
1723 1504 HGCommandHGExec *HGCommandHGExec*
1724 This variable controls the executable used for all HG commands If not set, 1505
1725 it defaults to "hg". 1506 This variable controls the executable used for all HG commands. If not
1726 1507 set, it defaults to "hg".
1727 HGCommandDeleteOnHide *HGCommandDeleteOnHide* 1508
1728 1509 HGCommandDeleteOnHide *HGCommandDeleteOnHide*
1729 This variable, if set to a non-zero value, causes the temporary HG result 1510
1730 buffers to automatically delete themselves when hidden. 1511 This variable, if set to a non-zero value, causes the temporary HG result
1731 1512 buffers to automatically delete themselves when hidden.
1732 HGCommandDiffOpt *HGCommandDiffOpt* 1513
1733 1514 HGCommandDiffOpt *HGCommandDiffOpt*
1734 This variable, if set, determines the options passed to the diff command of 1515
1735 HG. If not set, it defaults to 'wbBc'. 1516 This variable, if set, determines the options passed to the diff command of
1736 1517 HG. If not set, it defaults to 'w'.
1737 HGCommandDiffSplit *HGCommandDiffSplit* 1518
1738 1519 HGCommandDiffSplit *HGCommandDiffSplit*
1739 This variable overrides the |HGCommandSplit| variable, but only for buffers 1520
1740 created with |:HGVimDiff|. 1521 This variable overrides the |HGCommandSplit| variable, but only for buffers
1741 1522 created with |:HGVimDiff|.
1742 HGCommandEdit *HGCommandEdit* 1523
1743 1524 HGCommandEdit *HGCommandEdit*
1744 This variable controls whether the original buffer is replaced ('edit') or 1525
1745 split ('split'). If not set, it defaults to 'edit'. 1526 This variable controls whether the original buffer is replaced ('edit') or
1746 1527 split ('split'). If not set, it defaults to 'edit'.
1747 HGCommandEnableBufferSetup *HGCommandEnableBufferSetup* 1528
1748 1529 HGCommandEnableBufferSetup *HGCommandEnableBufferSetup*
1749 This variable, if set to a non-zero value, activates HG buffer management 1530
1750 mode see (|hgcommand-buffer-management|). This mode means that two buffer 1531 This variable, if set to a non-zero value, activates HG buffer management
1751 variables, 'HGRevision' and 'HGBranch', are set if the file is 1532 mode see (|hgcommand-buffer-management|). This mode means that three
1752 HG-controlled. This is useful for displaying version information in the 1533 buffer variables, 'HGRepository', 'HGRevision' and 'HGBranch', are set if
1753 status bar. 1534 the file is HG-controlled. This is useful for displaying version
1754 1535 information in the status bar.
1755 HGCommandInteractive *HGCommandInteractive* 1536
1756 1537 HGCommandInteractive *HGCommandInteractive*
1757 This variable, if set to a non-zero value, causes appropriate commands (for 1538
1758 the moment, only |:HGReview|) to query the user for a revision to use instead 1539 This variable, if set to a non-zero value, causes appropriate commands (for
1759 of the current revision if none is specified. 1540 the moment, only |:HGReview|) to query the user for a revision to use
1760 1541 instead of the current revision if none is specified.
1761 HGCommandNameMarker *HGCommandNameMarker* 1542
1762 1543 HGCommandNameMarker *HGCommandNameMarker*
1763 This variable, if set, configures the special attention-getting characters 1544
1764 that appear on either side of the hg buffer type in the buffer name. This 1545 This variable, if set, configures the special attention-getting characters
1765 has no effect unless |HGCommandNameResultBuffers| is set to a true value. If 1546 that appear on either side of the hg buffer type in the buffer name. This
1766 not set, it defaults to '_'. 1547 has no effect unless |HGCommandNameResultBuffers| is set to a true value.
1767 1548 If not set, it defaults to '_'.
1768 HGCommandNameResultBuffers *HGCommandNameResultBuffers* 1549
1769 1550 HGCommandNameResultBuffers *HGCommandNameResultBuffers*
1770 This variable, if set to a true value, causes the hg result buffers to be 1551
1771 named in the old way ('<source file name> _<hg command>_'). If not set 1552 This variable, if set to a true value, causes the hg result buffers to be
1772 or set to a false value, the result buffer is nameless. 1553 named in the old way ('<source file name> _<hg command>_'). If not set or
1773 1554 set to a false value, the result buffer is nameless.
1774 HGCommandSplit *HGCommandSplit* 1555
1775 1556 HGCommandSplit *HGCommandSplit*
1776 This variable controls the orientation of the various window splits that 1557
1777 may occur (such as with HGVimDiff, when using a HG command on a HG 1558 This variable controls the orientation of the various window splits that
1778 command buffer, or when the |HGCommandEdit| variable is set to 'split'. 1559 may occur (such as with HGVimDiff, when using a HG command on a HG command
1779 If set to 'horizontal', the resulting windows will be on stacked on top of 1560 buffer, or when the |HGCommandEdit| variable is set to 'split'. If set to
1780 one another. If set to 'vertical', the resulting windows will be 1561 'horizontal', the resulting windows will be on stacked on top of one
1781 side-by-side. If not set, it defaults to 'horizontal' for all but 1562 another. If set to 'vertical', the resulting windows will be side-by-side.
1782 HGVimDiff windows. 1563 If not set, it defaults to 'horizontal' for all but HGVimDiff windows.
1783 1564
1784 5.2 HGCommand events *hgcommand-events* 1565 5.2 HGCommand events *hgcommand-events*
1785 1566
1786 For additional customization, HGCommand can trigger user-defined events. 1567 For additional customization, HGCommand can trigger user-defined events.
1787 Event handlers are provided by defining User event autocommands (see 1568 Event handlers are provided by defining User event autocommands (see
1788 |autocommand|, |User|) in the HGCommand group with patterns matching the 1569 |autocommand|, |User|) in the HGCommand group with patterns matching the
1789 event name. 1570 event name.
1790 1571
1791 For instance, the following could be added to the vimrc to provide a 'q' 1572 For instance, the following could be added to the vimrc to provide a 'q'
1792 mapping to quit a HGCommand scratch buffer: 1573 mapping to quit a HGCommand scratch buffer: >
1793 1574
1794 augroup HGCommand 1575 augroup HGCommand
1795 au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q: bwipeout<cr> 1576 au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q:
1796 augroup END 1577 bwipeout<cr>
1797 1578 augroup END
1798 The following hooks are available: 1579 <
1799 1580
1800 HGBufferCreated This event is fired just after a hg command 1581 The following hooks are available:
1801 result buffer is created and filled with the 1582
1802 result of a hg command. It is executed within 1583 HGBufferCreated This event is fired just after a hg command result
1803 the context of the HG command buffer. The 1584 buffer is created and filled with the result of a hg
1804 HGCommand buffer variables may be useful for 1585 command. It is executed within the context of the HG
1805 handlers of this event (please see 1586 command buffer. The HGCommand buffer variables may be
1806 |hgcommand-buffer-variables|). 1587 useful for handlers of this event (please see
1807 1588 |hgcommand-buffer-variables|).
1808 HGBufferSetup This event is fired just after HG buffer setup 1589
1809 occurs, if enabled. 1590 HGBufferSetup This event is fired just after HG buffer setup occurs,
1810 1591 if enabled.
1811 HGPluginInit This event is fired when the HGCommand plugin 1592
1812 first loads. 1593 HGPluginInit This event is fired when the HGCommand plugin first
1813 1594 loads.
1814 HGPluginFinish This event is fired just after the HGCommand 1595
1815 plugin loads. 1596 HGPluginFinish This event is fired just after the HGCommand plugin
1816 1597 loads.
1817 HGVimDiffFinish This event is fired just after the HGVimDiff 1598
1818 command executes to allow customization of, 1599 HGVimDiffFinish This event is fired just after the HGVimDiff command
1819 for instance, window placement and focus. 1600 executes to allow customization of, for instance,
1820 1601 window placement and focus.
1821 5.3 HGCommand buffer naming *hgcommand-naming* 1602
1822 1603 5.3 HGCommand buffer naming *hgcommand-naming*
1823 By default, the buffers containing the result of HG commands are nameless 1604
1824 scratch buffers. It is intended that buffer variables of those buffers be 1605 By default, the buffers containing the result of HG commands are nameless
1825 used to customize the statusline option so that the user may fully control the 1606 scratch buffers. It is intended that buffer variables of those buffers be
1826 display of result buffers. 1607 used to customize the statusline option so that the user may fully control
1827 1608 the display of result buffers.
1828 If the old-style naming is desired, please enable the 1609
1829 |HGCommandNameResultBuffers| variable. Then, each result buffer will receive 1610 If the old-style naming is desired, please enable the
1830 a unique name that includes the source file name, the HG command, and any 1611 |HGCommandNameResultBuffers| variable. Then, each result buffer will
1831 extra data (such as revision numbers) that were part of the command. 1612 receive a unique name that includes the source file name, the HG command,
1613 and any extra data (such as revision numbers) that were part of the
1614 command.
1832 1615
1833 5.4 HGCommand status line support *hgcommand-statusline* 1616 5.4 HGCommand status line support *hgcommand-statusline*
1834 1617
1835 It is intended that the user will customize the |'statusline'| option to 1618 It is intended that the user will customize the |'statusline'| option to
1836 include HG result buffer attributes. A sample function that may be used in 1619 include HG result buffer attributes. A sample function that may be used in
1837 the |'statusline'| option is provided by the plugin, HGGetStatusLine(). In 1620 the |'statusline'| option is provided by the plugin, HGGetStatusLine(). In
1838 order to use that function in the status line, do something like the 1621 order to use that function in the status line, do something like the
1839 following: 1622 following: >
1840 1623
1841 set statusline=%<%f\ %{HGGetStatusLine()}\ %h%m%r%=%l,%c%V\ %P 1624 set statusline=%<%f\ %{HGGetStatusLine()}\ %h%m%r%=%l,%c%V\ %P
1842 1625 <
1843 of which %{HGGetStatusLine()} is the relevant portion. 1626 of which %{HGGetStatusLine()} is the relevant portion.
1844 1627
1845 The sample HGGetStatusLine() function handles both HG result buffers and 1628 The sample HGGetStatusLine() function handles both HG result buffers and
1846 HG-managed files if HGCommand buffer management is enabled (please see 1629 HG-managed files if HGCommand buffer management is enabled (please see
1847 |hgcommand-buffer-management|). 1630 |hgcommand-buffer-management|).
1848 1631
1849 5.5 HGCommand buffer management *hgcommand-buffer-management* 1632 5.5 HGCommand buffer management *hgcommand-buffer-management*
1850 1633
1851 The HGCommand plugin can operate in buffer management mode, which means that 1634 The HGCommand plugin can operate in buffer management mode, which means
1852 it attempts to set two buffer variables ('HGRevision' and 'HGBranch') upon 1635 that it attempts to set two buffer variables ('HGRevision' and 'HGBranch')
1853 entry into a buffer. This is rather slow because it means that 'hg status' 1636 upon entry into a buffer. This is rather slow because it means that 'hg
1854 will be invoked at each entry into a buffer (during the |BufEnter| 1637 status' will be invoked at each entry into a buffer (during the |BufEnter|
1855 autocommand). 1638 autocommand).
1856 1639
1857 This mode is disabled by default. In order to enable it, set the 1640 This mode is disabled by default. In order to enable it, set the
1858 |HGCommandEnableBufferSetup| variable to a true (non-zero) value. Enabling 1641 |HGCommandEnableBufferSetup| variable to a true (non-zero) value. Enabling
1859 this mode simply provides the buffer variables mentioned above. The user must 1642 this mode simply provides the buffer variables mentioned above. The user
1860 explicitly include those in the |'statusline'| option if they are to appear in 1643 must explicitly include those in the |'statusline'| option if they are to
1861 the status line (but see |hgcommand-statusline| for a simple way to do that). 1644 appear in the status line (but see |hgcommand-statusline| for a simple way
1645 to do that).
1862 1646
1863 ============================================================================== 1647 ==============================================================================
1864 1648 9. Tips *hgcommand-tips*
1865 6. SSH "integration" *hgcommand-ssh* 1649
1866 1650 9.1 Split window annotation, by Michael Anderson >
1867 The following instructions are intended for use in integrating the 1651
1868 hgcommand.vim plugin with an SSH-based HG environment. 1652 :nmap <Leader>hgN :vs<CR><C-w>h<Leader>hgn:vertical res 40<CR>
1869
1870 Familiarity with SSH and HG are assumed.
1871
1872 These instructions assume that the intent is to have a message box pop up in
1873 order to allow the user to enter a passphrase. If, instead, the user is
1874 comfortable using certificate-based authentication, then only instructions
1875 6.1.1 and 6.1.2 (and optionally 6.1.4) need to be followed; ssh should then
1876 work transparently.
1877
1878 6.1 Environment settings *hgcommand-ssh-env*
1879
1880 6.1.1 HGROOT should be set to something like:
1881
1882 :ext:user@host:/path_to_repository
1883
1884 6.1.2 HG_RSH should be set to:
1885
1886 ssh
1887
1888 Together, those settings tell HG to use ssh as the transport when
1889 performing HG calls.
1890
1891 6.1.3 SSH_ASKPASS should be set to the password-dialog program. In my case,
1892 running gnome, it's set to:
1893
1894 /usr/libexec/openssh/gnome-ssh-askpass
1895
1896 This tells SSH how to get passwords if no input is available.
1897
1898 6.1.4 OPTIONAL. You may need to set SSH_SERVER to the location of the hg
1899 executable on the remote (server) machine.
1900
1901 6.2 HG wrapper program *hgcommand-ssh-wrapper*
1902
1903 Now you need to convince SSH to use the password-dialog program. This means
1904 you need to execute SSH (and therefore HG) without standard input. The
1905 following script is a simple perl wrapper that dissasociates the HG command
1906 from the current terminal. Specific steps to do this may vary from system to
1907 system; the following example works for me on linux.
1908
1909 #!/usr/bin/perl -w
1910 use strict;
1911 use POSIX qw(setsid);
1912 open STDIN, '/dev/null';
1913 fork and do {wait; exit;};
1914 setsid;
1915 exec('hg', @ARGV);
1916
1917 6.3 Configuring hgcommand.vim *hgcommand-ssh-config*
1918
1919 At this point, you should be able to use your wrapper script to invoke HG with
1920 various commands, and get the password dialog. All that's left is to make HG
1921 use your newly-created wrapper script.
1922
1923 6.3.1 Tell hgcommand.vim what HG executable to use. The easiest way to do this
1924 is globally, by putting the following in your .vimrc:
1925
1926 let HGCommandHGExec=/path/to/hg/wrapper/script
1927
1928 6.4 Where to go from here *hgcommand-ssh-other*
1929
1930 The script given above works even when non-SSH HG connections are used,
1931 except possibly when interactively entering the message for HG commit log
1932 (depending on the editor you use... VIM works fine). Since the hgcommand.vim
1933 plugin handles that message without a terminal, the wrapper script can be used
1934 all the time.
1935
1936 This allows mixed-mode operation, where some work is done with SSH-based HG
1937 repositories, and others with pserver or local access.
1938
1939 It is possible, though beyond the scope of the plugin, to dynamically set the
1940 HG executable based on the HGROOT for the file being edited. The user
1941 events provided (such as HGBufferCreated and HGBufferSetup) can be used to
1942 set a buffer-local value (b:HGCommandHGExec) to override the HG executable
1943 on a file-by-file basis. Alternatively, much the same can be done (less
1944 automatically) by the various project-oriented plugins out there.
1945
1946 It is highly recommended for ease-of-use that certificates with no passphrase
1947 or ssh-agent are employed so that the user is not given the password prompt
1948 too often.
1949
1950 ==============================================================================
1951 9. Tips *hgcommand-tips*
1952
1953 9.1 Split window annotation, by Michael Anderson
1954
1955 :nmap <Leader>hgN :vs<CR><C-w>h<Leader>hgn:vertical res 40<CR>
1956 \ggdddd:set scb<CR>:set nowrap<CR><C-w>lgg:set scb<CR> 1653 \ggdddd:set scb<CR>:set nowrap<CR><C-w>lgg:set scb<CR>
1957 \:set nowrap<CR> 1654 \:set nowrap<CR>
1958 1655 <
1959 This splits the buffer vertically, puts an annotation on the left (minus the 1656
1960 header) with the width set to 40. An editable/normal copy is placed on the 1657 This splits the buffer vertically, puts an annotation on the left (minus
1961 right. The two versions are scroll locked so they move as one. and wrapping 1658 the header) with the width set to 40. An editable/normal copy is placed on
1962 is turned off so that the lines line up correctly. The advantages are... 1659 the right. The two versions are scroll locked so they move as one. and
1963 1660 wrapping is turned off so that the lines line up correctly. The advantages
1964 1) You get a versioning on the right. 1661 are...
1965 2) You can still edit your own code. 1662
1966 3) Your own code still has syntax highlighting. 1663 1) You get a versioning on the right.
1664 2) You can still edit your own code.
1665 3) Your own code still has syntax highlighting.
1967 1666
1968 ============================================================================== 1667 ==============================================================================
1969 1668
1970 8. Known bugs *hgcommand-bugs* 1669 8. Known bugs *hgcommand-bugs*
1971 1670
1972 Please let me know if you run across any. 1671 Please let me know if you run across any.
1973 1672
1974 HGVimDiff, when using the original (real) source buffer as one of the diff 1673 HGVimDiff, when using the original (real) source buffer as one of the diff
1975 buffers, uses some hacks to try to restore the state of the original buffer 1674 buffers, uses some hacks to try to restore the state of the original buffer
1976 when the scratch buffer containing the other version is destroyed. There may 1675 when the scratch buffer containing the other version is destroyed. There
1977 still be bugs in here, depending on many configuration details. 1676 may still be bugs in here, depending on many configuration details.
1978 1677
1979 ============================================================================== 1678 ==============================================================================
1980 === END_DOC 1679 === END_DOC
1981 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 1680 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
1982 " v im:tw=78:ts=8:ft=help:norl: 1681 " v im:tw=78:ts=8:ft=help:norl: