質問: SVNでのソース管理(同時開発)について <環境> TortoiseSVN 1.8 Windows7 SP1 SVNでのソース管理(同時開発)について、質問があります。 1つのシステムに対して、別々の改修内容で同時に開発を行う場合、ブランチを切って開発を行うと思います。 現在、小さなシステムが複数(100個ほど)存在し、それをまとめて1つのリポジトリで管理していますが、 改修案件ごとにブランチを切り、改修が終わり次第、リリースなどのタイミングでトランクにマージするという管理方法を考えています。(改修内容によっては複数システムにまたがります。) 例: <トランク> \\srv\app\trunk\システム1 \\srv\app\trunk\システム2 \\srv\app\trunk\DB情報\DB1 \\srv\app\trunk\DB情報\DB2 \\srv\app\trunk\その他たくさんのシステム群 etc... ・ ・ ・ ↓ <一部をブランチとして切る> \\srv\app\brunches\**yyyymmdd案件名**\システム1 \\srv\app\brunches\**yyyymmdd案件名**\システム2 \\srv\app\brunches\**yyyymmdd案件名**\DB情報\DB1\ストアド (ストアドの情報のみブランチとして切りたい) \\srv\app\brunches\**yyyymmdd案件名**\DB情報\DB2\ストアド (ストアドの情報のみブランチとして切りたい) 以下4点が質問になります。 ・入れ子になっているパスの一部のみをブランチとして切りたい場合、フォルダ構成を保ったままブランチを切ることは可能でしょうか。 ・上記のようにフォルダ構成を保ったままブランチを切ることはできましたが(手動でフォルダを作成しました)、フォルダ構成トランクとブランチでが異なってしまいます。正しくマージできるものでしょうか。(実際に試してみましたが「(パス)は祖先が関連していなければなりません」とエラーが発生してしまいました。) ・ブランチを切る際にトランクとの関連付けなど行われているものなのでしょうか。その場合、正しいブランチの切り方を教えて下さい。 ・そもそも「改修案件ごと」、よりもきれいな管理方法があれば教えて下さい。 手動で行えばいくらでも可能だとは思いますが、ソース管理の方針を決めてSVN初心者のチームのメンバに浸透させる必要があるので、出来れば手順が少なく、きれいな方法があれば教えてください。 よろしくお願いします。
回答: 先の方も書かれておりますが、 まずは、SVNをきちんと使えるように、慣れることが大切だと思います。 ダミーのプロジェクトでも何でもつくって、チェックアウトして修正してコミットして、、、これらによって、どのようなマージが発生するのか?よく動作を観察してください。 先の方も書かれましたが、SVNがフォルダ的な管理手法でフォルダで構成されてはいますが、手動でフォルダ切ってブランチってのは、まずいです。マージできなくなります。 これらは、いわゆる慣れの問題だと思いますので、とにかく慣れる必要があり、 そして、初心者であるなら、なおさら、まずは本番レポジトリを触ることはやめるべきです。 あと、マージ後に、コンフリクトが発生したときの対応など、どうするのか、誰が責任もって、処理するのかなど、まずはロールプレイングをじっくりと。 いくら、別のプロジェクトを触っているといっても、まあ、間違いなくコンフリクト事故は発生します(事故が発生しないくらい、別物なら、本来別のレポジトリにすべきです。)。 あと、結局、全員がある程度同じレベルになっていないと、結局変なコミットされて、レポジトリぐちゃぐちゃ・・・というパターンになります。 先の方の投稿を引用させていただきますが、 > > 「他社や自社向けのツリーに何も考えずマージするバカが一人はいるんです」 > > > 本当これは、最悪です。 事故が起こる前に、教習してくださいませ。