git-svn: how do I create a new svn branch via git?

前端 未结 3 1846
时光说笑
时光说笑 2020-11-29 14:39

I have a git repository which tracks an svn repository. I cloned it using --stdlayout.

I created a new local branch via git checkout -b foobar

相关标签:
3条回答
  • 2020-11-29 14:54

    @kch I just (7 December 2008) compiled the v1.6.1-rc1 tag of git and it does contain the git svn branch command and the documentation for it. So the v1.6.1 release of git should (hopefully) contain this command.

    0 讨论(0)
  • 2020-11-29 14:56

    I know this question has been answered a while ago, but after reading it, I it might help adding examples of the specific git svn branch command and relate it to a typical workflow.

    Like kch answered, use git svn branch. Here is a full example, (note the -n for dry-run to test):

    git svn branch -n  -m "Branch for authentication bug" auth_bug
    

    If this goes well, server replies with answer like this:

    Copying https://scm-server.com/svn/portal/trunk at r8914 to https://scm-server.com/svn/portal/branches/auth_bug...

    And without the -n switch the server probably adds something like:

    Found possible branch point: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug, 8914

    Found branch parent: (refs/remotes/auth_bug)

    d731b1fa028d30d685fe260f5bb912cbf59e1971

    Following parent with do_switch

    Successfully followed parent r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

    (refs/remotes/auth_bug)

    The best part of it, now you can create a local branch based on your remote branch like so:

    git checkout -b local/auth_bug auth_bug
    

    Which means "check out and create local branch named auth_bug and make it follow the remote branch (last parameter) auth_bug

    Test that your local branch works on that remote branch by using dcommit with --dry-run (-n):

    git svn dcommit -n
    

    And SVN server should reply with the new branch name:

    Committing to https://scm-server.com/svn/portal/branches/auth_bug ...

    0 讨论(0)
  • 2020-11-29 15:06

    as of git v1.6.1, git svn branch is available.

    From the git docs:

        branch
            Create a branch in the SVN repository.
    
            -m, --message
                Allows to specify the commit message.
    
            -t, --tag
                Create a tag by using the tags_subdir instead of the branches_subdir
                specified during git svn init.
    

    Previous versions of git do not provide a way to create an svn branch.

    0 讨论(0)
提交回复
热议问题