Git リポジトリレイアウトの移行要望ページです。Subversion と Git ではリポジトリレイアウトの標準構成・特性が異なるため、変換作業が必要になります。
この内容に関して質問や足りない内容があれば、Seasar Committer ML までメールをお送りください。(ふたがわ (jfut))
要望期限: 2013-09-30(月)
移行作業を要望をされた場合、2013-10-07 (予定) 以降の移行期間に要望に応じてリポジトリを移行します。
移行期間中に記入していただいた内容は、随時テストリポジトリを作成し、Seasar Committer ML へ作成した旨のメールを送ります。テストリポジトリの結果が気に入らない場合は再度、要望の内容を修正してください。
下記のフォーマットで記載してください。 このフォーマットで表現しきれない、こういう風にしたいけどどうしたら良い判らない場合は、Seasar Committer ML に相談してください。
3, 4 のフォーマットを指定していただいた場合は、変換スクリプトで処理します。
自分で移行する場合のフォーマットは次のとおりです。
committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/) 自分で移行します。
この場合、現在のコミッタ情報に応じてプロジェクトのチームメンバーを作成し、仮にリポジトリを 1 つ作成してチームに管理権限を付与します。このリポジトリに対して現在の Subversion リポジトリの内容を移行してください。複数リポジトリを利用したい場合は別途リポジトリを作成できますので、作成して移行してください。
他のプロジェクトのリポジトリと混同しないよう、「プロジェクト名-用途名」といった命名規則でリポジトリ名を作成するようにご協力ください。
移行作業者にすべてを任せる場合のフォーマットは次のとおりです。 どのような移行結果でも良い、もしくは、どのように移行するのが適切か判らない場合はこの指定で構いません。
committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/) おまかせ
テストリポジトリを作成しますので必ずその内容で良いか確認してください。
おまかせにした場合、シンプルな例をベースにリポジトリに合った構成で移行します。おまかせしつつ、例えば、ファイルを除外したいなどの要望があれば、その旨を文章で書いていただいて構いません。
典型的な要望フォーマットは次のとおりです。'^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'
この指定は次の内容になります。
すべてのオプションを指定したフォーマットです。移行準備期間中の要望に応じて項目が増える場合があります。
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.migrate-tags: 1.0,1.1,2.0 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 | |
name | GitHub に作成する希望リポジトリ名 | Y | |
svnroot | Git に移行する SVN のルートディレクトリ | Y | |
trunk | Git の master ブランチ(SVN における trunk)にする svnroot からみたパスを指定します。 | trunk | |
tags | Git の tag にする svnroot からみた tags があるパスを指定。指定された tag は Git 風のタグに変換します。 | tags | |
branches | Git の 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.migrate-tags | 指定した tags のみを移行したい場合に指定します。指定がない場合は、tags で指定されたディレクトリ以下のすべての tag を移行します。 | ||
option.no-convert-ignore-file | svn:ignore から .gitignore ファイルを作成して欲しくない場合に指定します。0: 作成する 1: 作成しない。 | 0 | |
option.no-convert-empty-directory | 空のディレクトリに .gitkeep ファイルを作成して欲しくない場合に指定します。0: 作成する 1: 作成しない。 | 0 | |
option.no-convert-git-style-tag | SVN 特有の tags のスタイルを Git に適した tags のスタイルに変換したくない場合に指定します。1 を指定した場合、tag 用のブランチが切られた先に tag が付与されます。 | 0 | |
option.no-prune-empty | 変更点がない空のコミットを取り除きたくない場合に指定します。ignore-paths の指定により空のコミットが出来ることがあります。 | 0 | |
option.no-migrate-branches | branches を移行しない(push しない)場合に指定します。0: 移行する 1: 移行しない。 | 0 | |
option.no-migrate-tags | tags を移行しない(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 の扱いが特殊な例です。 また、ソース用リポジトリとサイト用リポジトリを分けています。
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
この例は、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
このページを直接「編集」して、ここにプロジェクトごとの移行作業要望を書いてください。記入後、順次、テストリポジトリを作成しますので確認してください。
使用した設定フォーマットは随時下記へコミットしてあります。
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
committer-name: taedium name: doma svnroot: https://www.seasar.org/svn/doma/ ignore-paths: '(^(?!branches/.*|trunk/doma/.*|trunk/doma-it/.*)|(\.jar|\.war|\.zip)$)'
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)$)'
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)$)'
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)$)'
committer-name: suga name: mayaa svnroot: https://www.seasar.org/svn/mayaa trunk: trunk/mayaa tags: tags/mayaa option.no-migrate-branches: 1
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)$'
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
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
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
※テスト、サンプルは移行後にmayaaにコミットする想定
committer-name: jfut name: server-www svnroot: https://www.seasar.org/svn/server/ trunk: trunk/www
committer-name: jfut name: www svnroot: https://www.seasar.org/svn/www/ trunk: www
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)|^branches' 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)|^branches' option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: koichik name: diigu svnroot: https://www.seasar.org/svn/s2container/ trunk: trunk/diigu ignore-paths: '^trunk/(?!diigu)|^branches' 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)|^branches' option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: koichik name: teeda svnroot: https://www.seasar.org/svn/teeda/ trunk: branches/teeda-1.0.13 branches: branches ignore-paths: '^branches/teeda-1.0.1[123]/(issues|spike|teeda-dev-doc|todo-manage|www)' option.migrate-branches: teeda-1.0.11,teeda-1.0.12 option.no-migrate-tags: 1
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
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/www option.no-migrate-tags: 1
committer-name: koichik name: s2openjpa svnroot: https://www.seasar.org/svn/s2openjpa/ trunk: trunk option.no-migrate-tags: 1
committer-name: koichik name: s2toplink-jpa svnroot: https://www.seasar.org/svn/s2toplink/ trunk: trunk ignore-paths: '^trunk/www' option.no-migrate-tags: 1
committer-name: koichik name: s2eclipselink-jpa svnroot: https://www.seasar.org/svn/sandbox/s2eclipselink/ trunk: trunk option.no-migrate-tags: 1
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
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/www option.no-migrate-tags: 1
committer-name: koichik name: s2jca svnroot: https://www.seasar.org/svn/s2jca/ trunk: trunk option.no-migrate-tags: 1
committer-name: koichik name: s2jms svnroot: https://www.seasar.org/svn/s2jms/ trunk: trunk option.no-migrate-tags: 1
committer-name: koichik name: s2remoting svnroot: https://www.seasar.org/svn/s2remoting/ trunk: trunk ignore-paths: '^trunk/www' option.no-migrate-tags: 1
committer-name: koichik name: s2remoting-www svnroot: https://www.seasar.org/svn/s2remoting/ trunk: trunk/www option.no-migrate-tags: 1
committer-name: koichik name: s2rmi svnroot: https://www.seasar.org/svn/s2rmi/ trunk: trunk ignore-paths: '^trunk/www' option.no-migrate-tags: 1
committer-name: koichik name: s2rmi-www svnroot: https://www.seasar.org/svn/s2rmi/ trunk: trunk/www option.no-migrate-tags: 1
committer-name: koichik name: aptina svnroot: https://www.seasar.org/svn/aptina/ trunk: trunk ignore-paths: '^trunk/www' option.no-migrate-tags: 1
committer-name: koichik name: junitcdi svnroot: https://www.seasar.org/svn/sandbox/junitcdi/ trunk: trunk tags: tags ignore-paths: '^trunk/www'
committer-name: koichik name: s2util svnroot: https://www.seasar.org/svn/sandbox/s2util/ trunk: trunk ignore-paths: '^trunk/www' option.no-migrate-tags: 1
committer-name: koichik name: tramina svnroot: https://www.seasar.org/svn/sandbox/tramina/ trunk: trunk ignore-paths: '^trunk/www'
committer-name: koichik name: dolteng svnroot: https://www.seasar.org/svn/sandbox/dolteng/ trunk: trunk ignore-paths: '^trunk/www'
committer-name: koichik name: dolteng-www svnroot: https://www.seasar.org/svn/sandbox/dolteng/ trunk: trunk/www
committer-name: koichik name: resource-synchronizer svnroot: https://www.seasar.org/svn/sandbox/resourcesynchronizer/ trunk: trunk ignore-paths: '^trunk/www'
committer-name: koichik name: resource-synchronizer-www svnroot: https://www.seasar.org/svn/sandbox/resourcesynchronizer/ trunk: trunk/www
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
committer-name: koichik name: maven svnroot: https://www.seasar.org/svn/maven/ trunk: trunk ignore-paths: '^trunk/www'
committer-name: koichik name: maven-www svnroot: https://www.seasar.org/svn/maven/ trunk: trunk/www
committer-name: shinsuke おまかせ
下記で作成しました。追加の要望があればお知らせください。
committer-name: shinsuke name: s2jcr svnroot: https://www.seasar.org/svn/sandbox/s2jcr/ trunk: trunk/s2jcr tags: tags branches: branches ignore-paths: '^trunk/www'
committer-name: shinsuke name: s2jcr-www svnroot: https://www.seasar.org/svn/sandbox/s2jcr/ trunk: trunk/www option.no-migrate-branches: 1
committer-name: shinsuke おまかせ
下記で作成しました。追加の要望があればお知らせください。
committer-name: shinsuke name: trunk/s2portlet svnroot: https://www.seasar.org/svn/s2portlet/ trunk: trunk tags: tags branches: branches ignore-paths: '^trunk/www'
committer-name: shinsuke name: s2portlet-www svnroot: https://www.seasar.org/svn/s2portlet/ trunk: trunk/www option.no-migrate-branches: 1
committer-name: shinsuke name: s2robot svnroot: https://www.seasar.org/svn/sandbox/s2robot/ trunk: trunk tags: tags branches: branches ignore-paths: '^trunk/www|^trunk/s2robot-example|^trunk/s2robot-seo'
committer-name: shinsuke name: s2robot-example svnroot: https://www.seasar.org/svn/sandbox/s2robot/ trunk: trunk tags: tags branches: branches ignore-paths: '^trunk/(?!s2robot-example|s2robot-seo)|^branches|^tags/(?!s2robot-example)' option.no-migrate-branches: 1 option.migrate-tags: s2robot-example-0.1.0
committer-name: shinsuke name: s2robot-www svnroot: https://www.seasar.org/svn/sandbox/s2robot/ trunk: trunk/www option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: shinsuke name: sa-struts-archetype svnroot: https://www.seasar.org/svn/sastruts/ trunk: trunk/sa-struts-archetype option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: shinsuke name: sa-struts-portlet svnroot: https://www.seasar.org/svn/sastruts/ trunk: trunk/sa-struts-portlet option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: makotan name: s2buri svnroot: https://www.seasar.org/svn/sandbox/s2buri/ trunk: trunk tags: tags branches: branches ignore-paths: '^trunk/www'
committer-name: makotan name: s2buri-www svnroot: https://www.seasar.org/svn/sandbox/s2buri/ trunk: trunk/www option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: takezoe name: s2click svnroot: https://www.seasar.org/svn/sandbox/s2click/ trunk: trunk/s2click option.no-migrate-branches: 1 option.no-migrate-tags: 1 ignore-paths: '^trunk/eclipse|^trunk/s2click-old|^trunk/www'
committer-name: takezoe name: s2click-eclipse svnroot: https://www.seasar.org/svn/sandbox/s2click/ trunk: trunk/eclipse option.no-migrate-branches: 1 option.no-migrate-tags: 1 ignore-paths: '^trunk/s2click|^trunk/s2click-old|^trunk/www'
committer-name: takezoe name: s2click-www svnroot: https://www.seasar.org/svn/sandbox/s2click/ trunk: trunk/www option.no-migrate-branches: 1 option.no-migrate-tags: 1 ignore-paths: '^trunk/eclipse|^trunk/s2click|^trunk/s2click-old'
committer-name: takezoe name: s2jsfplugin svnroot: https://www.seasar.org/svn/s2jsfplugin/ trunk: trunk tags: tags option.no-migrate-branches: 1 ignore-paths: '^trunk/www'
committer-name: takezoe name: s2jsfplugin-www svnroot: https://www.seasar.org/svn/s2jsfplugin/ trunk: trunk/www tags: tags option.no-migrate-branches: 1 ignore-paths: '^trunk/org.seasar.s2jsfplugin|^trunk/org.seasar.s2jsfplugin.feature'
committer-name: yone098 name: s2jsf svnroot: https://www.seasar.org/svn/s2jsf/ trunk: trunk tags: tags option.no-migrate-branches: 1 ignore-paths: '^trunk/www'
committer-name: yone098 name: s2jsf-www svnroot: https://www.seasar.org/svn/s2jsf/ trunk: trunk/www tags: tags option.no-migrate-branches: 1 option.no-migrate-tags: 1
committer-name: jflute name: dbflute svnroot: https://www.seasar.org/svn/dbflute/ trunk: trunk tags: tags branches: branches ignore-paths: '^trunk/(?!trunk/dbflute|trunk/dbflute-runtime)|\.jar$|\.war$|\.zip$' option.replace-empty-commit-messages: 1 option.replace-empty-commit-messages.string: accident empty commit option.no-migrate-tags: 1 option.no-migrate-branches: 1
committer-name: jflute name: dbflute-www svnroot: https://www.seasar.org/svn/dbflute/ trunk: trunk/www ignore-paths: '\.jar$|\.war$|\.zip$' option.no-migrate-tags: 1 option.no-migrate-branches: 1