Version 1 (modified by janderson, 4 years ago)

--

Mirroring github.com to common-lisp.net

There are two aspects * git and/or subversion support for perl * a staging repository

git/svn perl support

On OS X, port was sufficient to bring git and subversion up to date. If necessary deactivate, clean, and install (cf. port install pv-svn-simple). Also watch for incomplete perl search paths, which don't locate SVN/core. It was sufficient to specify the actual location (cf. locate Core.pm) in the shell enviromnent as PERL5LIB.

a staging repository

    $  mkdir  de-setf-amqp.git
    $  cd de-setf-amqp.git/
    $  git svn clone  svn+ssh://common-lisp.net/project/de-setf-amqp/svn .
    Initialized empty Git repository in /Development/Source/production/Library/net/common-lisp/de-setf-amqp.git/.git/
            A       README-common-lisp-net
    r1 = 4c8310774d66e1744ec372ecf611f3576e70a8e0 (git-svn)
    Checked out HEAD:
      svn+ssh://common-lisp.net/project/de-setf-amqp/svn r1
    $  ls
    README-common-lisp-net
    $  ls .git/
    HEAD            config          hooks           info            objects         svn
    branches        description     index           logs            refs
    $  git remote add github git://github.com/lisp/de.setf.amqp.git
    $  git pull github
    warning: no common commits
    remote: Counting objects: 378, done.
    remote: Compressing objects: 100% (368/368), done.
    remote: Total 378 (delta 219), reused 0 (delta 0)
    Receiving objects: 100% (378/378), 373.35 KiB | 472 KiB/s, done.
    Resolving deltas: 100% (219/219), done.
    From git://github.com/lisp/de.setf.amqp
     * [new branch]      master     -> github/master
    You asked me to pull without telling me which branch you
    want to merge with, and 'branch.master.merge' in
    your configuration file does not tell me either.        Please
    specify which branch you want to merge on the command line and
    try again (e.g. 'git pull <repository> <refspec>').
    See git-pull(1) for details.

    If you often merge with the same branch, you may want to
    configure the following variables in your configuration
    file:

        branch.master.remote = <nickname>
        branch.master.merge = <remote-ref>
        remote.<nickname>.url = <url>
        remote.<nickname>.fetch = <refspec>

    See git-config(1) for details.
    $  git status
    # On branch master
    nothing to commit (working directory clean)
    $  emacs README-common-lisp-net
    $  git status
    # On branch master
    # Changed but not updated:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       modified:   README-common-lisp-net
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       README-common-lisp-net~
    no changes added to commit (use "git add" and/or "git commit -a")
    $  emacs .git/info/exclude # entries for *~ and .DS_Store
    #  an immediate commit now notices just the edited readme
    $  git commit -a -m "readme update"
    [master 416d02a] readme update
     1 files changed, 2 insertions(+), 0 deletions(-)
    $ git svn dcommit
    Committing to svn+ssh://common-lisp.net/project/de-setf-amqp/svn ...
            M       README-common-lisp-net
    Committed r2
            M       README-common-lisp-net
    r2 = c904410e3970ed272761766a6997a5c00ac88913 (git-svn)
    No changes between current HEAD and refs/remotes/git-svn
    Resetting to the latest refs/remotes/git-svn
    $  git svn rebase # does nothing special
    Current branch master is up to date.
    $  git status
    # On branch master
    nothing to commit (working directory clean)
    $  git branch -a
    * master
      remotes/git-svn
      remotes/github/master
    # so, what about working with the branches as present
    $  git checkout -b remotes/git-svn
    Switched to a new branch 'remotes/git-svn'
    $  git svn rebase
    warning: refname 'remotes/git-svn' is ambiguous.
    Current branch remotes/git-svn is up to date.
    $  git merge remotes/github/master
    Merge made by recursive.
     AMQP-1-1-0-8-0/AMQP-1-1-0-8-0.asd     |   37 +
     AMQP-1-1-0-8-0/abstract-classes.lisp  |   41 +
     AMQP-1-1-0-8-0/classes.lisp           | 3593 ++++++++++++++++++
     ...
    $  ls
    AMQP-1-1-0-8-0                  classes.lisp                    parameters.lisp
    AMQP-1-1-0-9-0                  commands.lisp                   processing.lisp
    ...
    # which is nice
    $  git commit -a -m "merge remotes/github/master -> remotes/git-svn"
    # On branch remotes/git-svn
    nothing to commit (working directory clean)
    # ok, so now svn
    $  git svn dcommit
    Committing to svn+ssh://common-lisp.net/project/de-setf-amqp/svn ...
            A       AMQP-1-1-0-8-0/AMQP-1-1-0-8-0.asd
            A       AMQP-1-1-0-8-0/abstract-classes.lisp
            A       AMQP-1-1-0-8-0/classes.lisp
    # ok, so, that worked