Fossil SCM

Extended the sync doc with info about PATH implications of finding the fossil binary on the remote system over ssh: URLs, including formal documentation (for the first time?) of the ?fossil= query parameter.

wyoung 2024-02-28 18:10 trunk
Commit a975ccb75b713a3db42a0bf50f7adc4b0b92e23e9df1216c908ca453e6f839b8
1 file changed +21 -1
+21 -1
--- www/sync.wiki
+++ www/sync.wiki
@@ -96,18 +96,38 @@
9696
Fossil includes built-in
9797
[./ssl-server.md|support for HTTPS encryption] in both client and server.
9898
9999
<h4 id="ssh">2.0.2 SSH Transport</h4>
100100
101
-When doing a sync using an "ssh:..." URL, the same HTTP transport protocol
101
+When doing a sync using an "<code>ssh:…</code>" URL, the same HTTP transport protocol
102102
is used. Fossil simply uses [https://en.wikipedia.org/wiki/Secure_Shell|ssh]
103103
to start an instance of the [/help?cmd=test-http|fossil test-http] command
104104
running on the remote machine. It then sends HTTP requests and gets back HTTP
105105
replies over the SSH connection, rather than sending and receiving over an
106106
internet socket. To see the specific "ssh" command that the Fossil client
107107
runs in order to set up a connection, add either of the the "--httptrace" or
108108
"--sshtrace" options to the "fossil sync" command line.
109
+
110
+This method is dependent on the remote <var>PATH</var> set by the SSH
111
+daemon, which may not be the same as your interactive shell's
112
+<var>PATH</var> on that same server. It is common to find
113
+<var>$HOME/bin</var> in the latter but not the former, for instance,
114
+leading to failures to sync over <code>ssh:…</code> URLs when you
115
+install the <code>fossil</code> binary in a nonstandard location, as
116
+with
117
+
118
+<verbatim>./configure --prefix=$HOME && make install</verbatim>
119
+
120
+The simpler of the two solutions to this problem is to install Fossil
121
+where sshd expects to find it, but when that isn't an option, you can
122
+instead give a URL like this:
123
+
124
+<verbatim>fossil clone ssh://myserver.example.com?fossil=/home/me/bin/fossil /path/to/repo.fossil</verbatim>
125
+
126
+That gives the local Fossil instance the absolute path to the binary on
127
+the remote machine for use when calling that Fossil instance through the
128
+SSH tunnel.
109129
110130
<h4 id="file">2.0.3 FILE Transport</h4>
111131
112132
When doing a sync using a "file:..." URL, the same HTTP protocol is
113133
still used. But instead of sending each HTTP request over a socket or
114134
--- www/sync.wiki
+++ www/sync.wiki
@@ -96,18 +96,38 @@
96 Fossil includes built-in
97 [./ssl-server.md|support for HTTPS encryption] in both client and server.
98
99 <h4 id="ssh">2.0.2 SSH Transport</h4>
100
101 When doing a sync using an "ssh:..." URL, the same HTTP transport protocol
102 is used. Fossil simply uses [https://en.wikipedia.org/wiki/Secure_Shell|ssh]
103 to start an instance of the [/help?cmd=test-http|fossil test-http] command
104 running on the remote machine. It then sends HTTP requests and gets back HTTP
105 replies over the SSH connection, rather than sending and receiving over an
106 internet socket. To see the specific "ssh" command that the Fossil client
107 runs in order to set up a connection, add either of the the "--httptrace" or
108 "--sshtrace" options to the "fossil sync" command line.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
110 <h4 id="file">2.0.3 FILE Transport</h4>
111
112 When doing a sync using a "file:..." URL, the same HTTP protocol is
113 still used. But instead of sending each HTTP request over a socket or
114
--- www/sync.wiki
+++ www/sync.wiki
@@ -96,18 +96,38 @@
96 Fossil includes built-in
97 [./ssl-server.md|support for HTTPS encryption] in both client and server.
98
99 <h4 id="ssh">2.0.2 SSH Transport</h4>
100
101 When doing a sync using an "<code>ssh:…</code>" URL, the same HTTP transport protocol
102 is used. Fossil simply uses [https://en.wikipedia.org/wiki/Secure_Shell|ssh]
103 to start an instance of the [/help?cmd=test-http|fossil test-http] command
104 running on the remote machine. It then sends HTTP requests and gets back HTTP
105 replies over the SSH connection, rather than sending and receiving over an
106 internet socket. To see the specific "ssh" command that the Fossil client
107 runs in order to set up a connection, add either of the the "--httptrace" or
108 "--sshtrace" options to the "fossil sync" command line.
109
110 This method is dependent on the remote <var>PATH</var> set by the SSH
111 daemon, which may not be the same as your interactive shell's
112 <var>PATH</var> on that same server. It is common to find
113 <var>$HOME/bin</var> in the latter but not the former, for instance,
114 leading to failures to sync over <code>ssh:…</code> URLs when you
115 install the <code>fossil</code> binary in a nonstandard location, as
116 with
117
118 <verbatim>./configure --prefix=$HOME && make install</verbatim>
119
120 The simpler of the two solutions to this problem is to install Fossil
121 where sshd expects to find it, but when that isn't an option, you can
122 instead give a URL like this:
123
124 <verbatim>fossil clone ssh://myserver.example.com?fossil=/home/me/bin/fossil /path/to/repo.fossil</verbatim>
125
126 That gives the local Fossil instance the absolute path to the binary on
127 the remote machine for use when calling that Fossil instance through the
128 SSH tunnel.
129
130 <h4 id="file">2.0.3 FILE Transport</h4>
131
132 When doing a sync using a "file:..." URL, the same HTTP protocol is
133 still used. But instead of sending each HTTP request over a socket or
134

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button