This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

git svn success report (was: [PATCH, Hurd] Make libgcc_s usable on GNU/Hurd)


Hello!

On Wed, Apr 14, 2010 at 04:15:29PM +0200, Richard Guenther wrote:
> I'm not sure if I can approve the patch, but I guess it might fall
> under your Hurd maintainers area.  Anyway, the 4.5 branch is open
> again for such changes, so from a RM perspective just go ahead.

Thanks; committed.


Here's how I used git svn for doing so:

Preparation:

    $ git init
    $ git remote add upstream git+ssh://gcc.gnu.org/git/gcc.git
    $ git remote update
    # Only add a small number of branches manually, as otherwise git svn would have to do a lot of synchronization work.
    $ git svn init --trunk=trunk --prefix=upstream/ svn+ssh://gcc.gnu.org/svn/gcc
    # We may be more recent than the mirror, so forbit non-fast-forward ref updates.
    $ git config remote.origin.fetch 'refs/heads/*:refs/remotes/upstream/*'
    # We're interested in the 4.5 release branch, too.
    $ git config --add svn-remote.svn.fetch branches/gcc-4_5-branch:refs/remotes/upstream/gcc-4_5-branch
    $ git svn fetch
    [Takes a long time .]

Now you can do ``whatever you want'' with the repository.

Eventually, to commit a patch:

    # Create / switch to the local trunk branch.
    $ git checkout -b trunk upstream/trunk
    # Make the commit appear on this branch.
    # Push it into the svn repository.
    $ git svn fetch
    $ git svn rebase
    $ git svn dcommit
    Committing to svn+ssh://gcc.gnu.org/svn/gcc/trunk ...
            M       gcc/ChangeLog
            M       gcc/config.gcc
            M       libgcc/ChangeLog
            M       libgcc/config.host
    Committed r158375
            M       libgcc/config.host
            M       libgcc/ChangeLog
            M       gcc/ChangeLog
            M       gcc/config.gcc
    r158375 = 8a84c748fb5e8af580e9411e056a58451f301de2 (refs/remotes/upstream/trunk)
    No changes between current HEAD and refs/remotes/upstream/trunk
    Resetting to the latest refs/remotes/upstream/trunk

..., and backport to the 4.5 release branch:

    # Create / switch to the local 4.5 release branch.
    $ git checkout -b gcc-4_5-branch upstream/gcc-4_5-branch
    # Cherry-pick the commit (from the top of trunk).
    $ git cherry-pick trunk
    # Resolve conflicts.
    # Remove traces of trunk's git svn from the commit message:
    $ git commit --amend --reset-author
    $ git svn fetch
    $ git svn rebase
    $ git svn dcommit
    Committing to svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch ...
            M       gcc/ChangeLog
            M       gcc/config.gcc
            M       libgcc/ChangeLog
            M       libgcc/config.host
    Committed r158383
            M       libgcc/config.host
            M       libgcc/ChangeLog
            M       gcc/ChangeLog
            M       gcc/config.gcc
    r158383 = 5273d3fd0c3c6870f1cdf9e0029404d5f86a5e12 (refs/remotes/upstream/gcc-4_5-branch)
    No changes between current HEAD and refs/remotes/upstream/gcc-4_5-branch
    Resetting to the latest refs/remotes/upstream/gcc-4_5-branch


Regards,
 Thomas

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]