2011-09-14 11 views
0

私は適切な答えを探しているという質問があります。あまりにも多くの似たような質問がありましたが、私の状況を助けるものは何もありません。 共通のコードベースがあるプロジェクトがあります。いくつかの設定ファイルがあるコードベース。このコードはレポのメイントランクに格納され、ブランチはメインブランチディレクトリで処理されます。 次に、このコードベースを使用しているプロジェクトが多すぎます。構成ファイルやコードベースのディレクトリにいくつかの追加ファイルがあります。私はコードベースを共通に保ちたいので、コードベースに関連するプロジェクト内で何かのボディが変更された場合、メインコードにコミットされますが、プロジェクトの特定のファイルを分けて保存したいので、誰も他人の設定を上書きすることはなく、誰も自分のコード内に他人の追加ファイルを持ち運ばなくてはなりません。外部リポジトリ内のコード

私は私の問題の可能な答えを探したように、私は今、私は私のレポでこのような構造を持って、見た目に来た:

/ 
    trunk <- code base trunk 
    branch <- code base branchs 
    projects 
     proj1 
      trunk <- project's trunk 
      branch <- project's branches 
     proj2 

各プロジェクトのトランクは、実際のコードベースのトランクへの外部リンクです私はフォルダ内でいくつかの変更を加えたり、いくつかの設定ファイルを変更しました。今私は、コードに加えられたいくつかの変更をproj1のフォルダと他のものにメインコードに分ける方法がない。 それはすべて可能ですか?私は私の構造を変えるべきですか?

答えて

0

私は、このレイアウトをお勧めしたい:

/ 
    common 
     trunk <- code base trunk 
     branches <- code base branches 
    projects 
     proj1 
      trunk <- project's trunk 
       common <- common trunk (external) 
       local <- proj1 specific 
      branch <- project's branches 
       common <- common branch (or trunk) (external) 
       local <- proj1 specific 
     proj2 

だから、あなたが見るように、それは共通/特定の部分に分割プロジェクト方が良いでしょう。

UPDATE(ケース分割コードでベースはできません)

trunk <- code base trunk 
     common.h 
     common.c 
     common_folder 
    branches <- code base branches 
     br1 
      common.h 
      common.c 
      common_folder 
    projects 
     proj1 
      trunk <- project's trunk 
       common.h <- (svn:externals ^/trunk/common.h common.h) 
       common.c <- (svn:externals ^/trunk/common.c common.c) 
       common <- (svn:externals ^/trunk/common_folder common) 
       spec.h 
       spec.c 
      branches <- project's branches 
       br1 
       common.h <- (svn:externals ^/branches/br1/common.h common.h) 
       common.c <- (svn:externals ^/branches/br1/common.c common.c) 
       common <- (svn:externals ^/branches/br1/common_folder common) 
       spec.h 
       spec.c 
     proj2 

この場合、物事が...提案のための

+0

おかげ管理が少し複雑になるが、私はだとしてすでに書かれたコードとフレームワークで作業すると、コードベースとconfig/special化された部分を分離することはできません。 – mohamnag

+0

次に、 "externals on files"を追加することで共通ファイルをexternすることができます。この場合、コードベースを分離したり、必要なファイルのみを取得したり、プロジェクト固有のファイルをprojXに追加したりする必要はありません。コードベースと同じ名前のファイルをprojXに置くこともできますが、これは私の心には厄介です。 – pmod

+0

コードベースに外部を追加することを意味しますか? – mohamnag

関連する問題