tlbuild: Transfer from Subversion to Github

 
 9.1 Transfer from Subversion to Github
 ======================================
 
 The git-svn program (<https://git-scm.com/docs/git-svn>) is used to
 check out the subtree 'Build/source' of the canonical Subversion
 repository.  The author index file used is not maintained in either Git
 or Subversion but can be provided on request.
 
    The initial checkout was done by invoking
      git svn --authors-file usermap clone \
        svn://USER@tug.org/texlive/trunk/Build/source
 
 where the 'usermap' file maps Subversion user names to name and emails
 of the authors.  Anonymous checkout is also possible:
      git svn --authors-file usermap clone \
        svn://tug.org/texlive/trunk/Build/source
 
    In the following, we will use _admin_ to refer to a user who has
 read/write access to the TeX Live subversion repository, and is also an
 administrator of the ''TeX-Live'' team at Github.  The above initial
 checkout has been carried out by _admin_ on the server 'texlive.info'.
 
    On Github, a new git repository named 'texlive-source' was created by
 _admin_ within the 'TeX-Live' "organization"
 (<https://github.com/TeX-Live>).  The remote was added to the checkout
 with 'git remote add origin git@github.com:TeX-Live/texlive-source.git'.
 
    To automate the update on Github, a new ssh key was generated and
 added to the 'texlive-source' repository on Github as deployment key.
 Thus, pushes using this key can only go to the 'texlive-source'
 repository and not anywhere else.
 
    The usage of 'git-svn' requires a strict discipline to keep a linear
 history in the master branch.  Since we are aiming at a pure mirror
 facility on Github, we have decided to further restrict the 'master'
 branch of the 'texlive-source' repository on Github to changes by
 _admin_.
 
    This setup allows other developers to branch off 'master' and push
 their branches to the Github repository, but all updates need to come
 from the local 'master' (not the one on Github) to Subversion, back to
 'master' on 'texlive.info', and from there to Github.