質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • SVN

    89questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

  • Subversion

    51questions

    Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。

  • TortoiseSVN

    27questions

    TortoiseSVNは、フリーのSubversion(SVN)クライアントです。 Windowsのシェルエクステンションとしての機能を果たします。 Subversionのコマンドを実行せずに使用が可能です。

SVNでのソース管理(同時開発)でのブランチ、マージについて

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 6,851
退会済みユーザー

退会済みユーザー

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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+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}という階層になります。)

メンバーのほとんどが正しくブランチすら切れないのでしたら、現状のままでもいいのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/23 07:41

    ご回答ありがとうございます。
    フォルダを作成して〜、というのはもちろんダミープロジェクトで試行錯誤していたものとなります。
    いい案がないということで残念です。他を当たってみます。

    キャンセル

+1

先の方も書かれておりますが、
まずは、SVNをきちんと使えるように、慣れることが大切だと思います。

ダミーのプロジェクトでも何でもつくって、チェックアウトして修正してコミットして、、、これらによって、どのようなマージが発生するのか?よく動作を観察してください。

先の方も書かれましたが、SVNがフォルダ的な管理手法でフォルダで構成されてはいますが、手動でフォルダ切ってブランチってのは、まずいです。マージできなくなります。

これらは、いわゆる慣れの問題だと思いますので、とにかく慣れる必要があり、
そして、初心者であるなら、なおさら、まずは本番レポジトリを触ることはやめるべきです。

あと、マージ後に、コンフリクトが発生したときの対応など、どうするのか、誰が責任もって、処理するのかなど、まずはロールプレイングをじっくりと。
いくら、別のプロジェクトを触っているといっても、まあ、間違いなくコンフリクト事故は発生します(事故が発生しないくらい、別物なら、本来別のレポジトリにすべきです。)。

あと、結局、全員がある程度同じレベルになっていないと、結局変なコミットされて、レポジトリぐちゃぐちゃ・・・というパターンになります。

先の方の投稿を引用させていただきますが、

「他社や自社向けのツリーに何も考えずマージするバカが一人はいるんです」

本当これは、最悪です。

事故が起こる前に、教習してくださいませ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/23 07:41

    ご回答ありがとうございます。
    フォルダを作成して〜、というのはもちろんダミープロジェクトで試行錯誤していたものとなります。
    いい案がないということで残念です。他を当たってみます。

    キャンセル

check解決した方法

0

解決しましたので一旦閉じます。
後日時間があるときに方法を書きます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

  • 解決済

    (JMockit)privateのfieldに値を設定したい

    JavaのJUnitテストクラスでJMockitを使ったモックを作っています。 JMockitにあまり詳しくないのですが、privateなインスタンス変数の値を設定する、といった

  • 解決済

    開発環境と本番環境の整合性について

    一般論なのですが、開発環境と本番環境を分けている場合、整合性をどのように保っていくかがなかなか難しいと思っています。 緊急のバグフィックスとかで本番環境を直接いじってしまうこともあ

  • 解決済

    バージョン管理へ移行するためのアドバイスをお願いします(PHP)

    私はウェブページの更新に、FTPを使ってファイルを更新しているのですが、それは初心者がする事だと聞きました。 ただ、私はそれ以外の方法を使った事がありません。 GITやSVNなど

  • 受付中

    音声認識Kaldiのインストールについて

    音声認識のプログラムを作るため、音声認識ツールのKaldi(http://kaldi-asr.org/)をインストールしようと考えているのですが、インストールに苦戦しています。 イ

  • 解決済

    gitとsvnのマージの違い

    現在、担当システムでsvnからgit(GitHub)への移行を検討しておりまして移行のメリット・デメリットを整理しております。 ネットやまわりの有識者から情報を集めている過程でg

  • 受付中

    xcode/svnでrevision指定して戻りたい。

    ♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡ XcodeのSCMリポジトリに登録したsubversionをXcodeの中から操作して

  • 解決済

    Webサイトの公開管理方法について

    前提・実現したいこと 更新回数の多いウェブサイトのファイル管理方法について教えて下さい。 発生している問題・エラーメッセージ 現在使用しているファイルの管理方法は更新した

  • 解決済

    【緊急】Windowsのファイル復元方法について

    ファイルの復元方法についてどなたかご教示お願いします! 【使用OS】 Windows 10 【作使用ツール】 svn Tortoise SVN 【経緯】 svnで管理されて

同じタグがついた質問を見る

  • SVN

    89questions

    SVNは、CollabNet社が開発したソースコードなどを管理する集中型のバージョン管理システムです。 Subversionとも呼ばれ、CVSの問題点を解決すべく開発された次世代のバージョン管理システムとして開発されました。基本的なコマンドはCVSと共通しています。複数人の開発者が共同でひとつのソフトウェアの開発にあたるときなどに、ドキュメント及びソースコードなどを管理するのに使用されます。

  • Subversion

    51questions

    Subversionは、使い方はCVSによく似た、CVS(Concurrent Versions System)を改良したバージョン管理ツールです。

  • TortoiseSVN

    27questions

    TortoiseSVNは、フリーのSubversion(SVN)クライアントです。 Windowsのシェルエクステンションとしての機能を果たします。 Subversionのコマンドを実行せずに使用が可能です。