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

&color(#ff0000){現在、このページはふたがわが編集中のため、まだ編集しないでください。[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] へアナウンス後は編集していただいて構いません。};
&color(#ff0000){2013-09-09(火) ふたがわ(jfut): 準備中、まだ記入してないでください};

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

この内容に関して質問等があれば、[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] までメールをお送りください。(ふたがわ (jfut))
この内容に関して質問や足りない内容があれば、[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] までメールをお送りください。(ふたがわ (jfut))

#contents

* 移行例 [#jffd4895]
* 移行作業要望 [#w69cf770]

&color(#ff0000){要望期限: 2013-09-30(月)};

Subversion と Git ではリポジトリレイアウトの標準構成・特性が異なります。そのため、プロジェクトごとに変換方針の要望を受け付けます。
移行作業を要望をされた場合、2013-10-07 (予定) 以降の移行期間に要望に応じてリポジトリを移行します。

** 標準構成で移行 (検討中) [#q56b8eb6]
移行期間中に記入していただいた内容は、随時テストリポジトリを作成し、[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] へ作成した旨をメールします。テストリポジトリの結果が気に入らない場合は再度、要望の内容を修正してください。

&color(#ff0000){この内容は検討中です。改善案は [[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]]にリクエストしてください。};
** フォーマット [#k0d79bf8]

** 要望するレイアウトで移行 [#w69cf770]
下記のフォーマットで記載してください。
このフォーマットで表現しきれない、こういう風にしたいけどどうしたら良い判らない場合は、[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] に相談してください。

-- 除外して欲しいファイル: "^trunk/www/|\.jar$|\.war$|\.zip$"
3, 4 のフォーマットを指定していただいた場合は、変換スクリプト(移行準備期間に作成して公開します)で処理します。

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

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

* プロジェクト単位: Git リポジトリレイアウト要望 (要望期限: 2013-09-30(月)) [#e7c96ea2]
 committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/)
 自分で移行します。

プロジェクトごとに変換方針の要望を受け付けます。標準構成での移行であっても、その旨を記入してください。
記入後、[[Seasar Committer ML>https://ml.seasar.org/mailman/listinfo/seasar-committer]] へ
この場合、現在のコミッタ情報に応じてプロジェクトのチームメンバーを作成し、仮にリポジトリを 1 つ作成してチームに管理権限を付与します。このリポジトリに対して現在の Subversion リポジトリの内容を移行してください。複数リポジトリを利用したい場合は別途リポジトリを作成できますので、作成して移行してください。

** S2Directory [#t95786bc]
&color(#000,#bdf){他のプロジェクトのリポジトリと混同しないよう、「プロジェクト名-用途名」といった命名規則でリポジトリ名を作成するようにご協力ください。};

&color(#ff0000){例として案を考え中です};
*** 2. 移行作業者に任せる要望フォーマット [#s2c88a14]

- リポジトリ: s2directory
-- https://www.seasar.org/svn/sandbox/s2directory/
-- master にする場所: trunk
-- SVN tags の Git tags への変換: Yes
--- tags の場所: tags/s2directory/*
--- タグの付与の仕方が git と合っていないため、tags/s2directory/ 以外は不要です。
-- branches の移行: No
-- 除外して欲しいファイル: "^trunk/www/|\.jar$|\.war$|\.zip$"
--- trunk/www は別リポジトリにしたいです。
移行作業者にすべてを任せる場合のフォーマットは次のとおりです。
どのような移行結果でも良い、もしくは、どのように移行するのが適切か判らない場合はこの指定で構いません。

- リポジトリ: s2directory-www
-- https://www.seasar.org/svn/sandbox/s2directory/trunk/www
-- master にする場所: trunk
-- SVN tags の Git tags への変換: Yes
--- tags の場所: tags/s2directory/*
--- タグの付与の仕方が git と合っていないため、tags/s2directory/ 以外は不要です。
-- branches の移行: No
-- trunk/www の分離: Yes
-- 除外して欲しいファイル: "\.jar$|\.war$|\.zip$"
 committer-name: あなたの Seasar.org のアカウント名 (https://www.seasar.org/members/committer/)
 おまかせ

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

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

*** 3. 典型的な要望フォーマット [#t9553f2f]

典型的な要望フォーマットは次のとおりです。

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

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

- 最小フォーマットによる移行結果
-- GitHub に projectname という名前のリポジトリを作成します。
-- SVN の移行元は https://www.seasar.org/svn/projectname/ です。
-- SVN の trunk が Git の master になります。
-- SVN の branches が Git の branches になります。
-- SVN の tags が Git の branches になります。
-- SVN へコミットしたすべてのファイルを Git へ移行します。除外するファイルは何もありません。
-- Git へ移行時にコミットログに自動的に付与される SVN のコミット ID を削除しません。
--- コミットID の例: git-svn-id: https://www.seasar.org/svn/teeda/branches/teeda-1.0.13@4313 e0972215-f904-0410-97d3-99f68b247671
-- SVN に空のコミットメッセージがあった場合、そのまま移行し、文字列の置換処理をしません。
-- SVN に設定されていた svn:ignore の内容を .gitignore ファイルを作成して置き換えます。このファイルはプロジェクトリーダの Author 情報で移行した Git へコミットします。
-- SVN 特有の tags のスタイルを Git に適した tags のスタイルに変換します。
-- 変更点がない空のコミットがあった場合にそのコミットを取り除きます。

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

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

 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.no-convert-ignore-file: 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 のアカウント名>https://www.seasar.org/members/committer/]]を指定してください。どなたが要望を書いたかを把握するためだけで、移行作業には影響しません。,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.no-convert-ignore-file,svn:ignore から .gitignore ファイルを作成して欲しくない場合に指定します。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

** 要望記入例と実行例 [#k4821270]

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

*** シンプルな例 [#format-simple]

この例は最もシンプルな例です。この例では、ソース用リポジトリとサイト用リポジトリを分けています。

- ソース用リポジトリ

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

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

- サイト用リポジトリ

サイトコンテンツのある trunk/www が Git の master になるように指定しています。
trunk/www に対する SVN の tags も Git に適した tags へ変換します。

 committer-name: jfut
 name: doma-www
 svnroot: https://www.seasar.org/svn/doma/
 trunk: trunk/www
 tags: tags
 branches: branches
 ignore-paths='^(?!branches/.*?/www/.*|tags/.*?/www/.*|trunk/www/.*)'

*** tags の扱いが特殊な例 [#format-tag]

この例は、tags の扱いが特殊な例です。

- ソース用リポジトリ

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

また、ignore-paths に trunk/www に加えて、拡張子 .jar .war. .zip のファイルを除外するように指定しています。

 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 にする例 [#format-branch]

この例は、SVN の trunk ではなく、特定の branch を Git の master にして移行する例です。

- ソース用リポジトリ
-- [[実行結果>https://github.com/seasarorg/sample-s2directory]]

この例は、branches/teeda-1.0.13 を git の master にする例です。また、tags は移行しません。

 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.no-migrate-tags: 1

- サイト用リポジトリ
-- [[実行結果>https://github.com/seasarorg/sample-s2directory-www]]

この例は、branches, tags は移行しません。

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

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

&color(#ff0000){2013-09-09(火) ふたがわ(jfut): 準備中、まだ記入してないでください};

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

** S2Directory [#od639d09]

- ソース用リポジトリ

 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

* 関連ページ [#n870d22b]

- [[GitMigration]]
- [[Git]]


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