{"thread":{"id":"23352","subject":"[PATCH v4] Documentation/urls: Rewrite to accomodate <transport>::<address>","startedAt":"2010-04-06T08:38:19Z","lastAt":"2010-04-06T08:38:19Z","messageCount":1,"participants":["Ramkumar Ramachandra"],"isPatch":true,"patchVersion":4,"patchTotal":null},"messages":[{"id":"138723","messageId":"z2lf3271551004060138u49c15784x968966cf779e37f@mail.gmail.com","threadId":"23352","inReplyTo":null,"subject":"[PATCH v4] Documentation/urls: Rewrite to accomodate <transport>::<address>","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2010-04-06T08:38:19Z","receivedAt":"2010-04-06T08:38:19Z","isPatch":true,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Rewrite the first part of the document to explicitly show differences\nbetween the URLs that can be used with different transport\nprotocols. Mention <transport>::<address> format to explicitly invoke\na remote helper.\n\nSigned-off-by: Ramkumar Ramachandra <artagnon@gmail.com>\n---\n Added trailing slashes and removed ssh protocol's special status\n after Junio's review of v3.\n\n Documentation/urls.txt |   58 +++++++++++++++++++++++++++--------------------\n 1 files changed, 33 insertions(+), 25 deletions(-)\n\ndiff --git a/Documentation/urls.txt b/Documentation/urls.txt\nindex 459a394..a473da6 100644\n--- a/Documentation/urls.txt\n+++ b/Documentation/urls.txt\n@@ -1,44 +1,52 @@\n GIT URLS[[URLS]]\n ----------------\n\n-One of the following notations can be used\n-to name the remote repository:\n+In general, URLs contain information about the transport protocol, the\n+address of the remote server, and the path to the repository.\n+Depending on the transport protocol, some of this information may be\n+absent.\n+\n+Git natively supports ssh, git, rsync, http, https, ftp, and ftps\n+protocols. The following syntaxes may be used with them:\n\n-- rsync://host.xz/path/to/repo.git/\n-- http://host.xz{startsb}:port{endsb}/path/to/repo.git/\n-- https://host.xz{startsb}:port{endsb}/path/to/repo.git/\n-- git://host.xz{startsb}:port{endsb}/path/to/repo.git/\n-- git://host.xz{startsb}:port{endsb}/~user/path/to/repo.git/\n - ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/\n-- ssh://{startsb}user@{endsb}host.xz/path/to/repo.git/\n-- ssh://{startsb}user@{endsb}host.xz/~user/path/to/repo.git/\n-- ssh://{startsb}user@{endsb}host.xz/~/path/to/repo.git\n+- git://host.xz{startsb}:port{endsb}/path/to/repo.git/\n+- rsync://host.xz/path/to/repo.git/\n+- http{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/\n+- ftp{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/\n\n-SSH is the default transport protocol over the network.  You can\n-optionally specify which user to log-in as, and an alternate,\n-scp-like syntax is also supported.  Both syntaxes support\n-username expansion, as does the native git protocol, but\n-only the former supports port specification. The following\n-three are identical to the last three above, respectively:\n+An alternative scp-like syntax may also be used with the ssh protocol:\n\n-- {startsb}user@{endsb}host.xz:/path/to/repo.git/\n-- {startsb}user@{endsb}host.xz:~user/path/to/repo.git/\n-- {startsb}user@{endsb}host.xz:path/to/repo.git\n+- {startsb}user@{endsb}host.xz:path/to/repo.git/\n\n-To sync with a local directory, you can use:\n+The ssh and git protocols additionally support ~username expansion:\n+\n+- ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/\n+- git://host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/\n+- {startsb}user@{endsb}host.xz:/~{startsb}user{endsb}/path/to/repo.git/\n+\n+For local respositories, also supported by git natively, the following\n+syntaxes may be used:\n\n - /path/to/repo.git/\n - file:///path/to/repo.git/\n\n ifndef::git-clone[]\n-They are mostly equivalent, except when cloning.  See\n-linkgit:git-clone[1] for details.\n+These two syntaxes are mostly equivalent, except when cloning, when\n+the former implies --local option. See linkgit:git-clone[1] for\n+details.\n endif::git-clone[]\n\n-ifdef::git-clone[]\n-They are equivalent, except the former implies --local option.\n-endif::git-clone[]\n+When git doesn't know how to handle a certain transport protocol, it\n+attempts to use the 'remote-<transport>' remote helper, if one\n+exists. To explicitly request a remote helper, the following syntax\n+may be used:\n+\n+- <transport>::<address>\n\n+where <address> may be a path, a server and path, or an arbitrary\n+URL-like string recognized by the specific remote helper being\n+invoked. See linkgit:git-remote-helpers[1] for details.\n\n If there are a large number of similarly-named remote repositories and\n you want to use a different format for them (such that the URLs you\n-- \n1.7.0.3\n"}]}