diff --git a/htdocs/svnwrite.html b/htdocs/svnwrite.html index a1346be1..4873991a 100644 --- a/htdocs/svnwrite.html +++ b/htdocs/svnwrite.html @@ -25,6 +25,7 @@ maintainers and significant developers.

  • Checking in a change
  • Example check-in session
  • Creating and using branches
  • +
  • Private user and Vendor branches
  • Tips&Tricks around your account
  • @@ -407,6 +408,72 @@ svn cp svn+ssh://username@gcc.gnu.org/svn/gcc/trunk \ do not copy the entire set of ChangeLog entries. Just use something like "Merge from mainline" or similar.

    +
    +

    Private user and vendor branches"

    + +The GCC git repository is used by many people and the branch and tag +namespace would become very polluted if all branches lived at the +top-level naming space. To help minimise the amount of data that +needs to be fetched the git repository on gcc.gnu.org contains a +number of private user and vendor branches that developers use to +share their work. These are not pulled by default, but simple +configuration steps can give access to them. + + + +To fetch any of these you will need to add a fetch refspec to your +configuration. For example, to fetch all the IBM vendor branches add to +your default upstream pull + +
    +git config --add remote.origin.fetch "+refs/vendors/IBM/heads/*:refs/remotes/origin/IBM/*"
    +git config --add remote.origin.fetch "+refs/vendors/IBM/tags/*:refs/tags/IBM/*"
    +
    + +this will cause git pull to fetch all the additional +branches and make them available locally +under remotes/origin/IBM and will also add any tags under +the sub-namespace IBM. + +Setting up a tracking branch for one of the upstream vendor branches +is slightly more complicated as git branch +--set-upstream-to does not work properly. However, it is +possible to configure the branch information directly. First, check +out the branch you want to track, for example, to check out the +arm-9-branch use something like: + +
    +git checkout -b ARM/arm-9-branch origin/ARM/arm-9-branch
    +
    + +then change the merge property for the branch to corectly identify the +upstream source + +
    +git config branch.ARM/arm-9-branch.merge refs/vendors/ARM/heads/arm-9-branch
    +
    + +Pull operations will now correctly track the upstream branch. + +It is also possible to set up push operations so that local changes will be pushed to the private namespace. For example, if you mirror your own private git information with + +
    +git config --add remote.origin.fetch "+refs/users/my-userid/heads/*:refs/remotes/origin/me/*"
    +
    + +then you can also add +
    +git config --add remote.origin.push "+refs/heads/me/*:refs/users/my-userid/heads/*"
    +
    +and then any push from a branch that begins with me/ will be pushed to the private area. +

    Tips&Tricks around your account