Merge branch 'jt/pushinsteadof'
authorJunio C Hamano <gitster@pobox.com>
Sun, 13 Sep 2009 08:33:20 +0000 (01:33 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 13 Sep 2009 08:33:20 +0000 (01:33 -0700)
* jt/pushinsteadof:
Add url.<base>.pushInsteadOf: URL rewriting for push only
Wrap rewrite globals in a struct in preparation for adding another set

1  2 
Documentation/config.txt
diff --combined Documentation/config.txt
index 8cbabe8012bbd8519592bcdfdc32d9dbb7e1ad03,38c708642d5fc426dc226cdd0ef0a57e9fe2b89c..be0b8cacaa17234a2f2d3da50b63df7ff272d468
@@@ -113,21 -113,6 +113,21 @@@ For command-specific variables, you wil
  in the appropriate manual page. You will find a description of non-core
  porcelain configuration variables in the respective porcelain documentation.
  
 +advice.*::
 +      When set to 'true', display the given optional help message.
 +      When set to 'false', do not display. The configuration variables
 +      are:
 ++
 +--
 +      pushNonFastForward::
 +              Advice shown when linkgit:git-push[1] refuses
 +              non-fast-forward refs. Default: true.
 +      statusHints::
 +              Directions on how to stage/unstage/add shown in the
 +              output of linkgit:git-status[1] and the template shown
 +              when writing commit messages. Default: true.
 +--
 +
  core.fileMode::
        If false, the executable bit differences between the index and
        the working copy are ignored; useful on broken filesystems like FAT.
@@@ -1515,6 -1500,19 +1515,19 @@@ url.<base>.insteadOf:
        never-before-seen repository on the site.  When more than one
        insteadOf strings match a given URL, the longest match is used.
  
+ url.<base>.pushInsteadOf::
+       Any URL that starts with this value will not be pushed to;
+       instead, it will be rewritten to start with <base>, and the
+       resulting URL will be pushed to. In cases where some site serves
+       a large number of repositories, and serves them with multiple
+       access methods, some of which do not allow push, this feature
+       allows people to specify a pull-only URL and have git
+       automatically use an appropriate URL to push, even for a
+       never-before-seen repository on the site.  When more than one
+       pushInsteadOf strings match a given URL, the longest match is
+       used.  If a remote has an explicit pushurl, git will ignore this
+       setting for that remote.
  user.email::
        Your email address to be recorded in any newly created commits.
        Can be overridden by the 'GIT_AUTHOR_EMAIL', 'GIT_COMMITTER_EMAIL', and