0

私は次のようなものを追加しようとしています:

subdir
  modules
    module1ext
    module2ext
    module3NOText
  other dir not from externals

subdir/modules/module{1,2}ext は外部で具体的に定義されていますが、/subdir も /modules も定義されていません。これにより、基本的に module{1,2}ext が svn リポジトリに追加されますが、subdir とモジュールは追加されません。

したがって、サブディレクトリ(外部からではない他のディレクトリ)またはモジュール(module3NOText)の下にディレクトリを追加したいのですが、親ディレクトリがsvnの下にないためできません。それらをsvn追加するだけですか?それは外部定義をめちゃくちゃにしませんか?

また、module1ext を変更したいとします。外部定義を削除してから、そのディレクトリをsvn追加することを考えていました。私の経験から、それはうまくいきますが、何か欠点があるのか​​、それともやるべきなのか教えていただけますか?

4

1 に答える 1

1

ここで何かが混ざっているようです。

リポジトリは次のようになります。

trunk
   subdir
     modules ---------> property svn:externals with links to module1ext and module2ext
        module3NOText
   otherdirnotfromexternals

トランクをチェックアウトすると、すべてのフォルダー (subdir、modules、module3NOTExt、otherdirnotfromexternals) が svn バージョン管理下に置かれます。モジュールには 2 つの外部モジュールが含まれている必要があります (svn:externals プロパティが正しく設定されている場合)。

したがって、サブディレクトリまたはモジュールの下にディレクトリを追加するには、svn add を使用する必要があります。

外部コードを変更したい場合は、元のリポジトリで起こりうる変更についても把握しておく必要があります。つまり、ブランチを作成します。

  • コードが同じリポジトリにある場合は、単純に を使用svn copyしてブランチを作成し、svn merge
  • コードが別のリポジトリにある場合は、これをベンダー ブランチとして管理できます。簡単に言えば、コードを自分のリポジトリにインポートし、タグを付けて開始点をマークし、自分のプロジェクトに分岐して、そこから変更を加えます。元のコードの変更をマージするには、新しいバージョンをベンダー ブランチにインポートし、再度タグを付けて、変更をプロジェクト ブランチにマージします。
于 2010-02-19T21:52:41.047 に答える