プロジェクト単位: Git リポジトリレイアウトの移行要望

Git リポジトリレイアウトの移行要望ページです。Subversion と Git ではリポジトリレイアウトの標準構成・特性が異なるため、変換作業が必要になります。

この内容に関して質問や足りない内容があれば、Seasar Committer ML までメールをお送りください。(ふたがわ (jfut))

移行作業要望

要望期限: 2013-09-30(月)

移行作業を要望をされた場合、2013-10-07 (予定) 以降の移行期間に要望に応じてリポジトリを移行します。

移行期間中に記入していただいた内容は、随時テストリポジトリを作成し、Seasar Committer ML へ作成した旨のメールを送ります。テストリポジトリの結果が気に入らない場合は再度、要望の内容を修正してください。

フォーマット

下記のフォーマットで記載してください。 このフォーマットで表現しきれない、こういう風にしたいけどどうしたら良い判らない場合は、Seasar Committer ML に相談してください。

3, 4 のフォーマットを指定していただいた場合は、変換スクリプトで処理します。

1. プロジェクトコミッタ本人が自分で移行するフォーマット

自分で移行する場合のフォーマットは次のとおりです。

committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/)
自分で移行します。

この場合、現在のコミッタ情報に応じてプロジェクトのチームメンバーを作成し、仮にリポジトリを 1 つ作成してチームに管理権限を付与します。このリポジトリに対して現在の Subversion リポジトリの内容を移行してください。複数リポジトリを利用したい場合は別途リポジトリを作成できますので、作成して移行してください。

他のプロジェクトのリポジトリと混同しないよう、「プロジェクト名-用途名」といった命名規則でリポジトリ名を作成するようにご協力ください。

2. 移行作業者に任せる要望フォーマット

移行作業者にすべてを任せる場合のフォーマットは次のとおりです。 どのような移行結果でも良い、もしくは、どのように移行するのが適切か判らない場合はこの指定で構いません。

committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/)
おまかせ

テストリポジトリを作成しますので必ずその内容で良いか確認してください。

おまかせにした場合、シンプルな例をベースにリポジトリに合った構成で移行します。おまかせしつつ、例えば、ファイルを除外したいなどの要望があれば、その旨を文章で書いていただいて構いません。

3. 典型的な要望フォーマット

典型的な要望フォーマットは次のとおりです。'^trunk/www' は、'^trunk/www/' と指定すると、空の trunk/www ディレクトリが残り、そこへ .gitkeep ファイルが作成されてしまいますので注意してください。

committer-name: yourname
name: projectname
svnroot: https://www.seasar.org/svn/projectname/
trunk: trunk
tags: tags
branches: branches
ignore-paths: '^trunk/www'

この指定は次の内容になります。

4. すべてのオプションを指定したフォーマット

すべてのオプションを指定したフォーマットです。移行準備期間中の要望に応じて項目が増える場合があります。

committer-name: yourname
name: projectname
svnroot: https://www.seasar.org/svn/projectname/
trunk: trunk
tags: tags
branches: branches
ignore-paths: '^trunk/www'
option.remove-git-svn-id: 1
option.replace-empty-commit-messages: 1
option.replace-empty-commit-messages.string: '<empty commit message>'
option.migrate-branches: name-1.x,name-2.x
option.no-convert-ignore-file: 1
option.no-convert-empty-directory: 1
option.no-convert-git-style-tag: 1
option.no-prune-empty: 1
option.no-migrate-branches: 1
option.no-migrate-tags: 1

各項目の意味は次のとおりです。

項目名意味必須項目デフォルト値
committer-nameあなたの Seasar.org のアカウント名を指定してください。どなたが要望を書いたかを把握するためだけで、移行作業には影響しません。Y
nameGitHub に作成する希望リポジトリ名Y
svnrootGit に移行する SVN のルートディレクトリY
trunkGit の master ブランチ(SVN における trunk)にする svnroot からみたパスを指定します。trunk
tagsGit の tag にする svnroot からみた tags があるパスを指定。指定された tag は Git 風のタグに変換します。tags
branchesGit の branches にする svnroot からみた branches があるパスを指定します。branches
ignore-paths移行時に除外したいファイルの正規表現を指定します。
option.remove-git-svn-id移行時にコミットログに付与される SVN のコミット ID を削除したい場合に指定します。0
option.replace-empty-commit-messages空のコミットメッセージがあった場合、特定の文字列に置換したい場合に指定します。Git では空コミットメッセージは許容されません。option.remove-git-svn-id に 1 を指定しないと空のコミットメッセージはできません。0: 置換しない、1: 置換する。0
option.replace-empty-commit-messages.string空のコミットメッセージがあった場合に置換する文字列を指定します。'<empty commit message>'
option.migrate-branches指定した branch のみを移行したい場合に指定します。指定がない場合は、branches で指定されたディレクトリ以下のすべての branch を移行します。
option.no-convert-ignore-filesvn:ignore から .gitignore ファイルを作成して欲しくない場合に指定します。0: 作成する 1: 作成しない。0
option.no-convert-empty-directory空のディレクトリに .gitkeep ファイルを作成して欲しくない場合に指定します。0: 作成する 1: 作成しない。0
option.no-convert-git-style-tagSVN 特有の tags のスタイルを Git に適した tags のスタイルに変換したくない場合に指定します。1 を指定した場合、tag 用のブランチが切られた先に tag が付与されます。0
option.no-prune-empty変更点がない空のコミットを取り除きたくない場合に指定します。ignore-paths の指定により空のコミットが出来ることがあります。0
option.no-migrate-branchesbranches を移行しない(push しない)場合に指定します。0: 移行する 1: 移行しない。0
option.no-migrate-tagstags を移行しない(push しない)場合に指定します。0: 移行する 1: 移行しない。0

要望記入例と実行例

要望記入例と実行例です。

シンプルな例

この例は最もシンプルな例です。

ソース用リポジトリから使用していないサイトコンテンツを除外するために、ignore-paths を指定しています。

committer-name: jfut
name: doma
svnroot: https://www.seasar.org/svn/doma/
trunk: trunk
tags: tags
branches: branches
ignore-paths: '^trunk/www'

例にした Doma プロジェクトでは、プロジェクトサイトを trunk/www にコミットせず、Maven を利用してデプロイしているため、SVN リポジトリ内に zip や jar ファイルのリリースファイルがありません。Git では git clone すると過去のリリースファイルもすべてダウンロードするため、trunk/www でサイトコンテンツを管理していた場合、別リポジトリに分けた方が良いケースもあります。これは好みの問題でもあるため、自由に選択してください。

tags の扱いが特殊な例

この例は、tags の扱いが特殊な例です。 また、ソース用リポジトリとサイト用リポジトリを分けています。

SVN での tags の付与の仕方が s2directory, s2directory-tiger といったディレクトリの下にバージョンのディレクトリを作成してしまっていたため、そのままでは Git のタグに移行できません。そこで、s2directory 配下のバージョンのみを tag として扱うように指定しています。なお、s2directory-tiger 以下にあったタグ情報は使わずに無視しています。

また、ignore-paths に trunk/www に加えて、拡張子 .jar .war. .zip のファイルを除外するように指定しています。 この指定は、例えば過去に lib フォルダに依存ライブラリを置いていたものの、現在では Maven を利用するようになりそれらのファイルを使っていない場合に、過去のコミットからも依存ファイルを削除することで移行後のリポジトリサイズを小さくすることができます。

committer-name: jfut
name: s2directory
svnroot: https://www.seasar.org/svn/sandbox/s2directory/
trunk: trunk
tags: tags/s2directory \
branches: branches
ignore-paths: '^trunk/www|\.jar$|\.war$|\.zip$'

trunk/www に対する SVN の tags は存在しないため、単純に trunk/www の中身が入ったリポジトリが作成されます。

committer-name: jfut
name: s2directory-www
svnroot: https://www.seasar.org/svn/sandbox/s2directory/
trunk: trunk/www

特定の branch を master にする例

この例は、SVN の trunk ではなく、特定の branch を Git の master にして移行する例です。 また、ソース用リポジトリとサイト用リポジトリを分けています。

この例は、branches/teeda-1.0.13 を git の master にする例です。 過去に trunk/www でサイトコンテンツを管理していましたが、現在では Maven で管理しているためサイト用リポジトリは作成せず、また、過去のサイトコンテンツも移行しない指定をしています。

committer-name: jfut
name: teeda
svnroot: https://www.seasar.org/svn/teeda/
trunk: branches/teeda-1.0.13
tags: tags
branches: branches
ignore-paths: '^(?!branches/.*|trunk/.*)|^trunk/www|^tags/.*' \
option.migrate-branches: teeda-1.0.11,teeda-1.0.12
option.no-migrate-tags: 1

[記入欄] プロジェクト単位: Git リポジトリレイアウト要望 (要望期限: 2013-09-30(月))

このページを直接「編集」して、ここにプロジェクトごとの移行作業要望を書いてください。記入後、順次、テストリポジトリを作成しますので確認してください。

S2Directory

committer-name: jfut
name: s2directory
svnroot: https://www.seasar.org/svn/sandbox/s2directory/
trunk: trunk
tags: tags/s2directory \
branches: branches
ignore-paths: '^trunk/www'
committer-name: jfut
name: s2directory-www
svnroot: https://www.seasar.org/svn/sandbox/s2directory/
trunk: trunk/www

Doma

committer-name: taedium
name: doma
svnroot: https://www.seasar.org/svn/doma/
ignore-paths: '(^(?!branches/.*|trunk/doma/.*|trunk/doma-it/.*)|(\.jar|\.war|\.zip)$)'

2013-09-16 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-doma3

committer-name: taedium
name: doma-gen
svnroot: https://www.seasar.org/svn/doma/
ignore-paths: '(^(?!branches/.*|trunk/doma-gen/.*|trunk/doma-gen-it/.*)|(\.jar|\.war|\.zip)$)'

2013-09-16 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-doma-gen3

committer-name: taedium
name: doma-samples
svnroot: https://www.seasar.org/svn/doma/
ignore-paths: '(^(?!branches/.*|trunk/doma-tutorial/.*|trunk/doma-jpetstore/.*)|(\.jar|\.war|\.zip)$)'

2013-09-16 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-doma-samples3

committer-name: taedium
name: doma-tools
svnroot: https://www.seasar.org/svn/doma/
ignore-paths: '(^(?!branches/.*|trunk/org.seasar.doma.extension.domax/.*|trunk/org.seasar.doma.extension.feature/.*|trunk/org.seasar.doma.extension.updatesite/.*)|(\.jar|\.war|\.zip)$)'

2013-09-16 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-doma-tools3

Mayaa

committer-name: suga
name: mayaa
svnroot: https://www.seasar.org/svn/mayaa
trunk: trunk/mayaa
tags: tags/mayaa
option.no-migrate-branches: 1

2013-09-18 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-mayaa2

committer-name: suga
name: mayaa-www
svnroot: https://www.seasar.org/svn/mayaa
trunk: trunk/www
option.no-migrate-tags: 1
option.no-migrate-branches: 1
ignore-paths: '(\.war|\.zip|\.jar)$'

2013-09-20 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-mayaa-www4

committer-name: suga
name: mayaa-matatabi
svnroot: https://www.seasar.org/svn/mayaa
trunk: trunk/matatabi
option.no-migrate-tags: 1
option.no-migrate-branches: 1

2013-09-18 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-mayaa-matatabi3

committer-name: suga
name: mayaa-webwork2
svnroot: https://www.seasar.org/svn/mayaa
trunk: trunk/mayaa-webwork2
option.no-migrate-tags: 1
option.no-migrate-branches: 1

2013-09-18 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-mayaa-webwork22

committer-name: suga
name: mayaa-struts2
svnroot: https://www.seasar.org/svn/mayaa
trunk: trunk/struts2-mayaa-plugin
option.no-migrate-tags: 1
option.no-migrate-branches: 1

2013-09-18 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-mayaa-struts22

※テスト、サンプルは移行後にmayaaにコミットする想定

Server

committer-name: jfut
name: server-www
svnroot: https://www.seasar.org/svn/server/
trunk: trunk/www

2013-09-19 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-server-www1

www

committer-name: jfut
name: www
svnroot: https://www.seasar.org/svn/www/
trunk: www

2013-09-19 jfut: テストリポジトリ作成: https://github.com/seasarorg/test-www1

S2Container

committer-name: koichik
name: seasar2
svnroot: https://www.seasar.org/svn/s2container/
trunk: trunk
ignore-paths: '^trunk/(!?s2-tiger|s2jdbc-gen|s2jdbc-it|s2jdbc-tutorial|seasar2)'
option.no-migrate-branches: 1
option.no-migrate-tags: 1
committer-name: koichik
name: s2-backport175
svnroot: https://www.seasar.org/svn/s2container/
trunk: trunk
ignore-paths: '^trunk/(!?s2-backport175)'
option.no-migrate-branches: 1
option.no-migrate-tags: 1
committer-name: koichik
name: diigu
svnroot: https://www.seasar.org/svn/s2container/
trunk: trunk
ignore-paths: '^trunk/(!?diigu)'
option.no-migrate-branches: 1
option.no-migrate-tags: 1
committer-name: koichik
name: ognl
svnroot: https://www.seasar.org/svn/s2container/
trunk: trunk
ignore-paths: '^trunk/(!?ognl)'
option.no-migrate-branches: 1
option.no-migrate-tags: 1

Teeda

committer-name: koichik
name: teeda
svnroot: https://www.seasar.org/svn/teeda/
trunk: branches/teeda-1.0.13
branches: branches
ignore-paths: '^branches/(jsf-1.2|nest-prop)|^branches/teeda-1.0.1[123]/(issues|spike|teeda-dev-doc|todo-manage)'
option.no-migrate-tags: 1

Kuina

committer-name: koichik
name: kuina-dao
svnroot: https://www.seasar.org/svn/kuina/
trunk: trunk
ignore-paths: '^trunk/(kuina(?!-)|www)'
option.no-migrate-tags: 1

S2Hibernate

committer-name: koichik
name: s2hibernate
svnroot: https://www.seasar.org/svn/s2hibernate/
trunk: trunk
ignore-paths: '^trunk/(s2hibernate(?!-)|www)'
option.no-migrate-tags: 1
committer-name: koichik
name: s2hibernate-jpa
svnroot: https://www.seasar.org/svn/s2hibernate/
trunk: trunk
ignore-paths: '^trunk/(s2hibernate(?!/)|www)'
option.no-migrate-tags: 1
committer-name: koichik
name: s2hibernate-www
svnroot: https://www.seasar.org/svn/s2hibernate/
trunk: trunk
ignore-paths: '^trunk/s2hibernate'
option.no-migrate-tags: 1

S2OpenJPA

committer-name: koichik

name: s2openjpa
svnroot: https://www.seasar.org/svn/s2openjpa/
trunk: trunk
option.no-migrate-tags: 1

S2TopLink

committer-name: koichik
name: s2toplink-jpa
svnroot: https://www.seasar.org/svn/s2toplink/
trunk: trunk
ignore-paths: '^trunk/www'
option.no-migrate-tags: 1

S2EclipseLink

committer-name: koichik
name: s2eclipselink-jpa
svnroot: https://www.seasar.org/svn/sandbox/s2eclipselink/
trunk: trunk
option.no-migrate-tags: 1

S2Cayenne

committer-name: koichik
name: s2cayenne-jpa
svnroot: https://www.seasar.org/svn/sandbox/s2cayenne/
trunk: trunk
ignore-paths: '^trunk/www'
option.no-migrate-tags: 1

S2Axis

committer-name: koichik
name: s2axis
svnroot: https://www.seasar.org/svn/s2axis/
trunk: trunk
ignore-paths: '^trunk/(s2axis2|www)'
option.no-migrate-tags: 1
committer-name: koichik
name: s2axis2
svnroot: https://www.seasar.org/svn/s2axis/
trunk: trunk
ignore-paths: '^trunk/(s2axis(?!2)|www)'
option.no-migrate-tags: 1
committer-name: koichik
name: s2axis-www
svnroot: https://www.seasar.org/svn/s2axis/
trunk: trunk
ignore-paths: '^trunk/s2axis'
option.no-migrate-tags: 1

S2JCA

committer-name: koichik
name: s2jca
svnroot: https://www.seasar.org/svn/s2jca/
trunk: trunk
option.no-migrate-tags: 1

S2JMS

committer-name: koichik
name: s2jms
svnroot: https://www.seasar.org/svn/s2jms/
trunk: trunk
option.no-migrate-tags: 1

S2Remoting

committer-name: koichik
name: s2remoting
svnroot: https://www.seasar.org/svn/s2remoting/
trunk: trunk
option.no-migrate-tags: 1

S2Rmi

committer-name: koichik
name: s2rmi
svnroot: https://www.seasar.org/svn/s2rmi/
trunk: trunk
option.no-migrate-tags: 1

Aptina

committer-name: koichik
name: aptina
svnroot: https://www.seasar.org/svn/aptina/
trunk: trunk
ignore-paths: '^trunk/www'
option.no-migrate-tags: 1

JunitCDI

committer-name: koichik
name: junitcdi
svnroot: https://www.seasar.org/svn/sandbox/junitcdi/
trunk: trunk
tags: tags
ignore-paths: '^trunk/www'

S2Util

committer-name: koichik
name: s2util
svnroot: https://www.seasar.org/svn/sandbox/s2util/
trunk: trunk
ignore-paths: '^trunk/www'
option.no-migrate-tags: 1

Tramina

committer-name: koichik
name: tramina
svnroot: https://www.seasar.org/svn/sandbox/tramina/
trunk: trunk
ignore-paths: '^trunk/www'

Dolteng

committer-name: koichik
name: dolteng
svnroot: https://www.seasar.org/svn/sandbox/dolteng/
trunk: trunk
option.no-migrate-tags: 1

Resource-Synchronizer

committer-name: koichik
name: resource-synchronizer
svnroot: https://www.seasar.org/svn/sandbox/resourcesynchronizer/
trunk: trunk

Eclipse

committer-name: koichik
name: eclipse-3.0
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.0
committer-name: koichik
name: eclipse-3.1
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.1
committer-name: koichik
name: eclipse-3.1-beta
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.1beta
committer-name: koichik
name: eclipse-3.2
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.2
committer-name: koichik
name: eclipse-3.3
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.3
committer-name: koichik
name: eclipse-3.3-dev
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.3-dev
committer-name: koichik
name: eclipse-3.5
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.5
committer-name: koichik
name: eclipse-3.5-dev
svnroot: https://www.seasar.org/svn/eclipse/
trunk: www/updates/3.5-dev

Maven

committer-name: koichik
name: maven
svnroot: https://www.seasar.org/svn/maven/
trunk: trunk

関連ページ


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS