diff options
| author | Michael Albinus | 2009-01-21 18:54:45 +0000 |
|---|---|---|
| committer | Michael Albinus | 2009-01-21 18:54:45 +0000 |
| commit | 193e68284e7ba177fdfe991cf22aceb23a6ebe91 (patch) | |
| tree | c63eb3d5d83a04277261497d3b1b940a27d8df48 | |
| parent | 6049d3a0bb10b1439f6d02198aebaa5215403a65 (diff) | |
| download | emacs-193e68284e7ba177fdfe991cf22aceb23a6ebe91.tar.gz emacs-193e68284e7ba177fdfe991cf22aceb23a6ebe91.zip | |
* tramp.texi (all): Harmonize usage of "external method",
"external transfer method" and "out-of-band method".
(Connection types): Precise the differences of inline and external
methods. Written by Adrian Phillips <a.phillips@met.no>.
| -rw-r--r-- | doc/misc/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 107 |
2 files changed, 55 insertions, 59 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 5533d73b176..4ae8ec88213 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2009-01-21 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * tramp.texi (all): Harmonize usage of "external method", | ||
| 4 | "external transfer method" and "out-of-band method". | ||
| 5 | (Connection types): Precise the differences of inline and external | ||
| 6 | methods. Written by Adrian Phillips <a.phillips@met.no>. | ||
| 7 | |||
| 1 | 2009-01-19 Reiner Steib <Reiner.Steib@gmx.de> | 8 | 2009-01-19 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 9 | ||
| 3 | * gnus.texi (Limiting): `/ N' and `/ o' are not really limiting | 10 | * gnus.texi (Limiting): `/ N' and `/ o' are not really limiting |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 894760d562b..23a974906dc 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -187,7 +187,7 @@ Configuring @value{tramp} for use | |||
| 187 | 187 | ||
| 188 | * Connection types:: Types of connections made to remote machines. | 188 | * Connection types:: Types of connections made to remote machines. |
| 189 | * Inline methods:: Inline methods. | 189 | * Inline methods:: Inline methods. |
| 190 | * External transfer methods:: External transfer methods. | 190 | * External methods:: External methods. |
| 191 | @ifset emacsgw | 191 | @ifset emacsgw |
| 192 | * Gateway methods:: Gateway methods. | 192 | * Gateway methods:: Gateway methods. |
| 193 | @end ifset | 193 | @end ifset |
| @@ -365,7 +365,8 @@ For inline transfers, @value{tramp} issues a command like @samp{mimencode -b | |||
| 365 | buffer that's used for communication, then decodes that output to | 365 | buffer that's used for communication, then decodes that output to |
| 366 | produce the file contents. | 366 | produce the file contents. |
| 367 | 367 | ||
| 368 | For out-of-band transfers, @value{tramp} issues a command like the following: | 368 | For external transfers, @value{tramp} issues a command like the |
| 369 | following: | ||
| 369 | @example | 370 | @example |
| 370 | rcp user@@host:/path/to/remote/file /tmp/tramp.4711 | 371 | rcp user@@host:/path/to/remote/file /tmp/tramp.4711 |
| 371 | @end example | 372 | @end example |
| @@ -378,9 +379,9 @@ behind the scenes. (Unless you have read this section, that is.) When | |||
| 378 | you are finished, you type @kbd{C-x C-s} to save the buffer. | 379 | you are finished, you type @kbd{C-x C-s} to save the buffer. |
| 379 | 380 | ||
| 380 | @item | 381 | @item |
| 381 | Again, @value{tramp} transfers the file contents to the remote host either | 382 | Again, @value{tramp} transfers the file contents to the remote host |
| 382 | inline or out-of-band. This is the reverse of what happens when reading | 383 | either inline or external. This is the reverse of what happens when |
| 383 | the file. | 384 | reading the file. |
| 384 | @end itemize | 385 | @end itemize |
| 385 | 386 | ||
| 386 | I hope this has provided you with a basic overview of what happens | 387 | I hope this has provided you with a basic overview of what happens |
| @@ -512,7 +513,7 @@ Method}. | |||
| 512 | @menu | 513 | @menu |
| 513 | * Connection types:: Types of connections made to remote machines. | 514 | * Connection types:: Types of connections made to remote machines. |
| 514 | * Inline methods:: Inline methods. | 515 | * Inline methods:: Inline methods. |
| 515 | * External transfer methods:: External transfer methods. | 516 | * External methods:: External methods. |
| 516 | @ifset emacsgw | 517 | @ifset emacsgw |
| 517 | * Gateway methods:: Gateway methods. | 518 | * Gateway methods:: Gateway methods. |
| 518 | @end ifset | 519 | @end ifset |
| @@ -549,34 +550,28 @@ the local machine. It is only when visiting files that the methods | |||
| 549 | differ. | 550 | differ. |
| 550 | 551 | ||
| 551 | @cindex inline methods | 552 | @cindex inline methods |
| 552 | @cindex external transfer methods | ||
| 553 | @cindex external methods | 553 | @cindex external methods |
| 554 | @cindex out-of-band methods | ||
| 555 | @cindex methods, inline | 554 | @cindex methods, inline |
| 556 | @cindex methods, external transfer | 555 | @cindex methods, external |
| 557 | @cindex methods, out-of-band | ||
| 558 | Loading or saving a remote file requires that the content of the file | 556 | Loading or saving a remote file requires that the content of the file |
| 559 | be transfered between the two machines. The content of the file can be | 557 | be transfered between the two machines. The content of the file can |
| 560 | transfered over the same connection used to log in to the remote | 558 | be transfered using one of two methods: the @dfn{inline method} over |
| 561 | machine or the file can be transfered through another connection using | 559 | the same connection used to log in to the remote machine, or the |
| 562 | a remote copy program such as @command{rcp}, @command{scp} or | 560 | @dfn{external method} through another connection using a remote copy |
| 563 | @command{rsync}. The former are called @dfn{inline methods}, the | 561 | program such as @command{rcp}, @command{scp} or @command{rsync}. |
| 564 | latter are called @dfn{out-of-band methods} or @dfn{external transfer | 562 | |
| 565 | methods} (@dfn{external methods} for short). | 563 | The performance of the external methods is generally better than that |
| 566 | 564 | of the inline methods, at least for large files. This is caused by | |
| 567 | The performance of the external transfer methods is generally better | 565 | the need to encode and decode the data when transferring inline. |
| 568 | than that of the inline methods, at least for large files. This is | ||
| 569 | caused by the need to encode and decode the data when transferring | ||
| 570 | inline. | ||
| 571 | 566 | ||
| 572 | The one exception to this rule are the @command{scp} based transfer | 567 | The one exception to this rule are the @command{scp} based transfer |
| 573 | methods. While these methods do see better performance when actually | 568 | methods. While these methods do see better performance when actually |
| 574 | transferring files, the overhead of the cryptographic negotiation at | 569 | transferring files, the overhead of the cryptographic negotiation at |
| 575 | startup may drown out the improvement in file transfer times. | 570 | startup may drown out the improvement in file transfer times. |
| 576 | 571 | ||
| 577 | External transfer methods should be configured such a way that they | 572 | External methods should be configured such a way that they don't |
| 578 | don't require a password (with @command{ssh-agent}, or such alike). | 573 | require a password (with @command{ssh-agent}, or such alike). Modern |
| 579 | Modern @command{scp} implementations offer options to reuse existing | 574 | @command{scp} implementations offer options to reuse existing |
| 580 | @command{ssh} connections, see method @command{scpc}. If it isn't | 575 | @command{ssh} connections, see method @command{scpc}. If it isn't |
| 581 | possible, you should consider @ref{Password handling}, otherwise you | 576 | possible, you should consider @ref{Password handling}, otherwise you |
| 582 | will be prompted for a password every copy action. | 577 | will be prompted for a password every copy action. |
| @@ -771,24 +766,22 @@ maybe somebody can improve the performance. | |||
| 771 | @end table | 766 | @end table |
| 772 | 767 | ||
| 773 | 768 | ||
| 774 | @node External transfer methods | 769 | @node External methods |
| 775 | @section External transfer methods | 770 | @section External methods |
| 776 | @cindex methods, external transfer | 771 | @cindex methods, external |
| 777 | @cindex methods, out-of-band | 772 | @cindex external methods |
| 778 | @cindex external transfer methods | ||
| 779 | @cindex out-of-band methods | ||
| 780 | 773 | ||
| 781 | The external transfer methods operate through multiple channels, using | 774 | The external methods operate through multiple channels, using the |
| 782 | the remote shell connection for many actions while delegating file | 775 | remote shell connection for many actions while delegating file |
| 783 | transfers to an external transfer utility. | 776 | transfers to an external transfer utility. |
| 784 | 777 | ||
| 785 | This saves the overhead of encoding and decoding that multiplexing the | 778 | This saves the overhead of encoding and decoding that multiplexing the |
| 786 | transfer through the one connection has with the inline methods. | 779 | transfer through the one connection has with the inline methods. |
| 787 | 780 | ||
| 788 | Since external transfer methods need their own overhead opening a new | 781 | Since external methods need their own overhead opening a new channel, |
| 789 | channel, all files which are smaller than @var{tramp-copy-size-limit} | 782 | all files which are smaller than @var{tramp-copy-size-limit} are still |
| 790 | are still transferred with the corresponding inline method. It should | 783 | transferred with the corresponding inline method. It should provide a |
| 791 | provide a fair trade-off between both approaches. | 784 | fair trade-off between both approaches. |
| 792 | 785 | ||
| 793 | @table @asis | 786 | @table @asis |
| 794 | @item @option{rcp} --- @command{rsh} and @command{rcp} | 787 | @item @option{rcp} --- @command{rsh} and @command{rcp} |
| @@ -1127,11 +1120,11 @@ the machine @samp{localhost}. | |||
| 1127 | See the documentation for the variable | 1120 | See the documentation for the variable |
| 1128 | @code{tramp-default-method-alist} for more details. | 1121 | @code{tramp-default-method-alist} for more details. |
| 1129 | 1122 | ||
| 1130 | External transfer methods are normally preferable to inline transfer | 1123 | External methods are normally preferable to inline methods, giving |
| 1131 | methods, giving better performance. | 1124 | better performance. |
| 1132 | 1125 | ||
| 1133 | @xref{Inline methods}. | 1126 | @xref{Inline methods}. |
| 1134 | @xref{External transfer methods}. | 1127 | @xref{External methods}. |
| 1135 | 1128 | ||
| 1136 | Another consideration with the selection of transfer methods is the | 1129 | Another consideration with the selection of transfer methods is the |
| 1137 | environment you will use them in and, especially when used over the | 1130 | environment you will use them in and, especially when used over the |
| @@ -1159,9 +1152,9 @@ maximum freedom instead. However, the reality is that some users would | |||
| 1159 | like to have some guidance, so here I'll try to give you this guidance | 1152 | like to have some guidance, so here I'll try to give you this guidance |
| 1160 | without bossing you around. You tell me whether it works @dots{} | 1153 | without bossing you around. You tell me whether it works @dots{} |
| 1161 | 1154 | ||
| 1162 | My suggestion is to use an inline method. For large files, out-of-band | 1155 | My suggestion is to use an inline method. For large files, external |
| 1163 | methods might be more efficient, but I guess that most people will want | 1156 | methods might be more efficient, but I guess that most people will |
| 1164 | to edit mostly small files. | 1157 | want to edit mostly small files. |
| 1165 | 1158 | ||
| 1166 | I guess that these days, most people can access a remote machine by | 1159 | I guess that these days, most people can access a remote machine by |
| 1167 | using @command{ssh}. So I suggest that you use the @option{ssh} | 1160 | using @command{ssh}. So I suggest that you use the @option{ssh} |
| @@ -1182,10 +1175,10 @@ shortened syntax for the @samp{root} account, like | |||
| 1182 | 1175 | ||
| 1183 | People who edit large files may want to consider @option{scpc} instead | 1176 | People who edit large files may want to consider @option{scpc} instead |
| 1184 | of @option{ssh}, or @option{pscp} instead of @option{plink}. These | 1177 | of @option{ssh}, or @option{pscp} instead of @option{plink}. These |
| 1185 | out-of-band methods are faster than inline methods for large files. | 1178 | external methods are faster than inline methods for large files. |
| 1186 | Note, however, that out-of-band methods suffer from some limitations. | 1179 | Note, however, that external methods suffer from some limitations. |
| 1187 | Please try first whether you really get a noticeable speed advantage | 1180 | Please try first whether you really get a noticeable speed advantage |
| 1188 | from using an out-of-band method! Maybe even for large files, inline | 1181 | from using an external method! Maybe even for large files, inline |
| 1189 | methods are fast enough. | 1182 | methods are fast enough. |
| 1190 | 1183 | ||
| 1191 | 1184 | ||
| @@ -1556,8 +1549,8 @@ machine melancholia port scp login daniel password geheim | |||
| 1556 | @end example | 1549 | @end example |
| 1557 | 1550 | ||
| 1558 | The port can be any @value{tramp} method (@pxref{Inline methods}, | 1551 | The port can be any @value{tramp} method (@pxref{Inline methods}, |
| 1559 | @pxref{External transfer methods}), to match only this method. When | 1552 | @pxref{External methods}), to match only this method. When you omit |
| 1560 | you omit the port, you match all @value{tramp} methods. | 1553 | the port, you match all @value{tramp} methods. |
| 1561 | 1554 | ||
| 1562 | 1555 | ||
| 1563 | @anchor{password-cache} | 1556 | @anchor{password-cache} |
| @@ -1646,7 +1639,7 @@ function, including @command{ls}, @command{test}, @command{find} and | |||
| 1646 | 1639 | ||
| 1647 | In addition to these required tools, there are various tools that may be | 1640 | In addition to these required tools, there are various tools that may be |
| 1648 | required based on the connection method. See @ref{Inline methods} and | 1641 | required based on the connection method. See @ref{Inline methods} and |
| 1649 | @ref{External transfer methods} for details on these. | 1642 | @ref{External methods} for details on these. |
| 1650 | 1643 | ||
| 1651 | Certain other tools, such as @command{perl} (or @command{perl5}) and | 1644 | Certain other tools, such as @command{perl} (or @command{perl5}) and |
| 1652 | @command{grep} will be used if they can be found. When they are | 1645 | @command{grep} will be used if they can be found. When they are |
| @@ -2162,8 +2155,8 @@ connecting to @code{melancholia} as @code{daniel} and editing | |||
| 2162 | @file{@trampfn{, daniel, melancholia, .emacs}}. | 2155 | @file{@trampfn{, daniel, melancholia, .emacs}}. |
| 2163 | 2156 | ||
| 2164 | It is also possible to specify other file transfer methods | 2157 | It is also possible to specify other file transfer methods |
| 2165 | (@pxref{Inline methods}, @pxref{External transfer methods}) as part of | 2158 | (@pxref{Inline methods}, @pxref{External methods}) as part of the |
| 2166 | the filename. | 2159 | filename. |
| 2167 | @ifset emacs | 2160 | @ifset emacs |
| 2168 | This is done by putting the method before the user and host name, as | 2161 | This is done by putting the method before the user and host name, as |
| 2169 | in @file{@value{prefix}@var{method}@value{postfixhop}} (Note the | 2162 | in @file{@value{prefix}@var{method}@value{postfixhop}} (Note the |
| @@ -2600,7 +2593,7 @@ host as well as the time needed to perform the operations there count. | |||
| 2600 | In order to speed up @value{tramp}, one could either try to avoid some | 2593 | In order to speed up @value{tramp}, one could either try to avoid some |
| 2601 | of the operations, or one could try to improve their performance. | 2594 | of the operations, or one could try to improve their performance. |
| 2602 | 2595 | ||
| 2603 | Use an external transfer method, like @option{scpc}. | 2596 | Use an external method, like @option{scpc}. |
| 2604 | 2597 | ||
| 2605 | Use caching. This is already enabled by default. Information about | 2598 | Use caching. This is already enabled by default. Information about |
| 2606 | the remote host as well as the remote files are cached for reuse. The | 2599 | the remote host as well as the remote files are cached for reuse. The |
| @@ -3507,13 +3500,9 @@ for @value{emacsothername}. | |||
| 3507 | @c shells. | 3500 | @c shells. |
| 3508 | @c * Explain how tramp.el works in principle: open a shell on a remote | 3501 | @c * Explain how tramp.el works in principle: open a shell on a remote |
| 3509 | @c host and then send commands to it. | 3502 | @c host and then send commands to it. |
| 3510 | @c * Make terminology "inline" vs "out-of-band" consistent. | 3503 | @c * Use `filename' resp. `file name' consistently. |
| 3511 | @c It seems that "external" is also used instead of "out-of-band". | 3504 | @c * Use `host' resp. `machine' consistently. |
| 3512 | 3505 | @c * Consistent small or capitalized words especially in menues. | |
| 3513 | @c * M. Albinus | ||
| 3514 | @c ** Use `filename' resp. `file name' consistently. | ||
| 3515 | @c ** Use `host' resp. `machine' consistently. | ||
| 3516 | @c ** Consistent small or capitalized words especially in menues. | ||
| 3517 | 3506 | ||
| 3518 | @ignore | 3507 | @ignore |
| 3519 | arch-tag: f96dd66e-6dd3-4c92-8d77-9c56205ba808 | 3508 | arch-tag: f96dd66e-6dd3-4c92-8d77-9c56205ba808 |