Merge branch 'so/log-diff-merges-opt'
[git] / Documentation / config / url.txt
1 url.<base>.insteadOf::
2         Any URL that starts with this value will be rewritten to
3         start, instead, with <base>. In cases where some site serves a
4         large number of repositories, and serves them with multiple
5         access methods, and some users need to use different access
6         methods, this feature allows people to specify any of the
7         equivalent URLs and have Git automatically rewrite the URL to
8         the best alternative for the particular user, even for a
9         never-before-seen repository on the site.  When more than one
10         insteadOf strings match a given URL, the longest match is used.
11 +
12 Note that any protocol restrictions will be applied to the rewritten
13 URL. If the rewrite changes the URL to use a custom protocol or remote
14 helper, you may need to adjust the `protocol.*.allow` config to permit
15 the request.  In particular, protocols you expect to use for submodules
16 must be set to `always` rather than the default of `user`. See the
17 description of `protocol.allow` above.
18
19 url.<base>.pushInsteadOf::
20         Any URL that starts with this value will not be pushed to;
21         instead, it will be rewritten to start with <base>, and the
22         resulting URL will be pushed to. In cases where some site serves
23         a large number of repositories, and serves them with multiple
24         access methods, some of which do not allow push, this feature
25         allows people to specify a pull-only URL and have Git
26         automatically use an appropriate URL to push, even for a
27         never-before-seen repository on the site.  When more than one
28         pushInsteadOf strings match a given URL, the longest match is
29         used.  If a remote has an explicit pushurl, Git will ignore this
30         setting for that remote.