LoginSignup
6
6

More than 5 years have passed since last update.

git-svnで指定可能なbranchesに関して

Last updated at Posted at 2013-07-31

git svn -s で簡単に構築出来ないブランチ構成の場合、git-svn initで構築した後.git/configを修正するか、--branchesgit svn clone時に明示的に指定する必要があります。その際にbranchesに設定可能な文字列の書き方がちょっと特殊で注意が必要でしたのでメモしておきます。

詳しくは git-svn help してください。

基本的な設定方法

git-svn -sなどで構築した場合は、以下のようになっていると思います。

branches = xxx/yyy/*:refs/remomtes/*

大事な事は、 : の左辺と右辺に対して、* などで動的指定を行う必要がある点です。
*自体はどこでも構いません。左辺で指定した * が右辺で指定した * に設定されると考えると分かりやすいかと思います。

以下例です。
なお、branches[svn-remote "svn"]urlに指定されたパスから相対パスで指定を行います。

# fizz/直下のディレクトリがブランチとして認識され、
# svn/ブランチ名という形でgit上にブランチが切られます。
# ex) fizz/project1, fizz/project2
#  => svn/project1, svn/project2
branches = fizz/*:refs/remomtes/svn/*

# fizz/直下のディレクトリでその子として`project`ディレクトリを持つディレクトリがブランチとして認識され、
# svn/ブランチ名という形でgit上にブランチが切られます。
# ディレクトリ内には、projectの中身が配置されます。
# ex) fizz/branchA/project, fizz/branchB/project, fizz/branchC/hoge
#  => svn/branchA, svn/branchB
branches = fizz/*/project:refs/remomtes/svn/*

# `*`以外でも{}を利用してディレクトリを直接指定することも可能です。
# fizz/直下のディレクトリで`hoge`か`piyo`のフォルダがブランチとして認識され、svn/ブランチという形でgit上にブランチが切られます。
# ex) fizz/hoge, fizz/piyo, fizz/buzz
#  => svn/hoge, svn/piyo
branches = fizz/{hoge,piyo}:refs/remomtes/*

参考サイト

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6