11

Subversion プロジェクト内には、コードに必要な他のオープン ソース プロジェクトを含むいくつかのディレクトリがあります。たとえば、ffmpeg、freetype、matrixssl などがあります。

これらのプロジェクトの最新バージョンを保持するために SVN を更新する最良の方法は何ですか?

基本的に、次のことを行います(例としてffmpegを使用):

1) Rename current ffmpeg folder to ffmpeg.old
2) Download new version of ffmpeg from net
3) Make sure it and my code compile and work fine together
4) Update subversion to now hold the "new" version of ffmpeg
5) Delete ffmpeg.old directory tree
4

5 に答える 5

11

ベンダー ブランチについて話している svnbook を参照してください。これはまさにあなたが達成しようとしていることです

svn_load_dirs.plを使用して、手動の手順 1 ~ 5 を置き換えることができます。svn_load_dirs.pl は、新規、移動、または削除されたファイルも追跡します。

于 2008-10-10T20:45:36.877 に答える
2

CMake でも同じ状況になりました。ここでは、バイナリの win32 リリースをベンダー ディレクトリにチェックインしたままにしています。

branches/
trunk/
vendor/
    cmake/
        cmake-2.6.0/
        cmake-2.6.1/
        cmake-2.6.2/
        ...

次に、使用している CMake のバージョンを参照するために svn:externals を使用します。新しいバージョンへのアップグレードのテストが非常に簡単になり、使用している CMake のバージョンも明確になります。

于 2008-10-10T20:36:43.713 に答える
1

手順 1 と 5 が必要ないことを除いて、すべて正しいです。手順 3 が失敗した場合は、svn revert 機能を使用して変更を元に戻します。

于 2008-10-10T20:31:18.060 に答える
0

一部のベンダー プロジェクトで Subversion も使用されている場合は、svn:externalsプロパティをブランチ/トランクの親ディレクトリに追加できます。

詳細については、SVN ブックを参照してください。

于 2008-10-11T06:37:36.997 に答える
0

2 つの選択肢があると思います。

A)

  1. SVN すべてのファイルを削除します。
  2. 最新のものを入手して機能させます。
  3. SVN すべてのファイルを追加します。

長所: 最新バージョンに存在しない場合、余分なファイルが保持されないようにします。

短所:時間がかかる場合があります。

B)

  1. 古いバージョンの上に新しいバージョンをダウンロードしてインストールします。
  2. それを機能させます。
  3. SVN 新しいファイルを追加します。

長所: ツールのファイルで何が変更されたかを確認できます。

短所:混乱してしまう可能性があります。ツールによっては上書きするとバグが発生する場合があります。

于 2008-10-10T20:33:16.933 に答える