SVNでのソース管理(同時開発)でのブランチ、マージについて
解決済
回答 3
投稿
- 評価
- クリップ 0
- VIEW 14K+

退会済みユーザー
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初心者のチームのメンバに浸透させる必要があるので、出来れば手順が少なく、きれいな方法があれば教えてください。
よろしくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+1
「SVN初心者のチームのメンバに浸透させる」といいますけど、あなたは初心者ではないのですか?
「手動でフォルダを作成しました」「手動で行えばいくらでも可能だとは思います」
と書いてあるのですが、そんな事されたら私でもブチ切れます。そのうちSVNサーバが悲鳴をあげるでしょう。まずは普通にSVNを使えるようになってください。質問4点のうち最初の3点はSVNを使ってるなら普通に分かることです。
社内でSVNやソースコード管理に詳しい人を探して、居たらその人に相談してください。リポジトリの設計や運用方法は、ある程度分かってる人がやらないと全員が不幸になりますよ。階層だけの話ではありません。例えばA社受注で工数つけて行った改修を、他社や自社向けのツリーに何も考えずマージするバカが一人はいるんです(A社の金でB社の改修を行っている)。そういうことを防ぐためにも、普通はAccess Controlを使います。Access Controlと、利用者の組織・運用方法の2つを前提とすると、そもそもリポジトリの階層の組み方にはそんなに選択肢はありません。質問するまでもないのです。
(例えばもし「/システム1/以下しか触れない人」というAccess Controlが必要な場合、その人がブランチを切るためにはbranchesは/システム1/以下になければならず、必然的に/システム1/{trunk,branches,tags}という階層になります。)
メンバーのほとんどが正しくブランチすら切れないのでしたら、現状のままでもいいのではないでしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
先の方も書かれておりますが、
まずは、SVNをきちんと使えるように、慣れることが大切だと思います。
ダミーのプロジェクトでも何でもつくって、チェックアウトして修正してコミットして、、、これらによって、どのようなマージが発生するのか?よく動作を観察してください。
先の方も書かれましたが、SVNがフォルダ的な管理手法でフォルダで構成されてはいますが、手動でフォルダ切ってブランチってのは、まずいです。マージできなくなります。
これらは、いわゆる慣れの問題だと思いますので、とにかく慣れる必要があり、
そして、初心者であるなら、なおさら、まずは本番レポジトリを触ることはやめるべきです。
あと、マージ後に、コンフリクトが発生したときの対応など、どうするのか、誰が責任もって、処理するのかなど、まずはロールプレイングをじっくりと。
いくら、別のプロジェクトを触っているといっても、まあ、間違いなくコンフリクト事故は発生します(事故が発生しないくらい、別物なら、本来別のレポジトリにすべきです。)。
あと、結局、全員がある程度同じレベルになっていないと、結局変なコミットされて、レポジトリぐちゃぐちゃ・・・というパターンになります。
先の方の投稿を引用させていただきますが、
「他社や自社向けのツリーに何も考えずマージするバカが一人はいるんです」
本当これは、最悪です。
事故が起こる前に、教習してくださいませ。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
check解決した方法
0
解決しましたので一旦閉じます。
後日時間があるときに方法を書きます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/04/23 07:41
フォルダを作成して〜、というのはもちろんダミープロジェクトで試行錯誤していたものとなります。
いい案がないということで残念です。他を当たってみます。