1

現在、アウトソーシング会社によって開発されているソフトウェアがあり、サーバー上の SVN リポジトリにチェックインされています。私たちはまもなく彼らとの契約を終了し、開発を引き継ぐために多くの開発者 (私自身を含む) を呼び込みました。別の SVN リポジトリが提供されています。

アウトソーシング会社は、私たちのチームがコミットした変更を確認することは想定されていませんが、私たちは彼らが入力した変更を受け取る必要があります。SVN サーバーを設定して、変更を上書きせずに (即時または毎日など) 変更がリポジトリにコミットされるようにする方法を知っている人はいますか? 必要に応じて、マージの競合を手動で確認させていただきます。

セットアップ、バッチファイル、または含まれている製品の支払いなど、どんな回答でも大歓迎です。

4

3 に答える 3

1

ベンダーブランチが必要です。アウトソーシング会社にリポジトリの「ベンダー」セクションへのアクセスのみを許可します(httpアクセスを使用している場合は、.htaccessファイル内のアクセス許可をロックダウンして、このディレクトリにのみアクセスできるようにすることができます)。この場所には、送信されたコードのみが含まれています。

次に、SVNの他の場所に領域を作成し、それらが提供するコードで初期化します。これを「サードパーティ」ディレクトリと呼びましょう。自分でさらに変更を加えることはできますが、アウトソーサーはこのディレクトリを表示できません。アウトソーサーがベンダーエリアで新しい変更をコミットする場合は、ベンダーブランチのリンクで説明されているコマンドを使用して、これらの変更をサードパーティエリアにマージする必要があります。他のSubversionマージと同様に、変更が自分で行った変更と競合しない場合、マージは非常に簡単です。競合がある場合は、通常の方法で手動で解決する必要があります。

于 2012-08-07T20:48:46.437 に答える
1

私はこれで遊んだことはありません。これは単なるアイデアです。

リモート リポジトリのダンプを取得できる svnrdump ユーティリティがあります。この情報をリポジトリに継続的にロードする場合は、分岐/マージを行うことができます。

主な問題は、svnrdump が既存のリポジトリではなく、新しいリポジトリに情報を入力するためのものであるため、おそらくダンプ コンテンツの操作が必要になることです...それらは簡単ではない可能性があります-何らかの方法でリビジョンの対応を保存する必要があります。

また、svn2svn ( http://svn2svn.codeplex.com ) ツールを見ましたが、操作のサポートが限定的で、あまり積極的に開発されていないようです...

于 2012-08-08T03:39:43.923 に答える
1

次のプロセスで問題を解決できたことに感謝します。毎日、アウトソーサーがアクセスできる外部 SVN からダンプ ファイルを取得し、それを内部 SVN のトランクに適用しています。

その間、私たちはその svn からのブランチに取り組んでおり、そこにすべての変更をコミットしています。

次に、ブランチをトランクにマージして、競合を解決します。

次に、作業する新しいブランチをスピンアウトして、翌日まで待ちます。

アウトソーサーの SVN は影響を受けず、自分たちの変更を失うことなく最新の変更を取得し、あまり労力を要しません。また、ほとんどが svn によって制御されるため、人的エラーの可能性が減少します。

于 2012-08-09T15:43:39.457 に答える