2

ベンダーがカスタムコードを作成し、バックエンドコンテンツを作成するプロジェクトがあります。彼らが私たちに新しいバージョンを出荷するたびに、私たちはそのフォルダ構造全体を手動でリポジトリにマージします。これは、追加および変更されたファイル(コピー/貼り付けのみ)では簡単ですが、削除されたすべてのファイル/フォルダーを削除するバッチスクリプトを作成する必要があります(diffツールを使用して削除されたファイルのリストを取得してから作成しますその中のバッチファイル)。

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

OurProject \
--OurBackendCode \
--VendorCode \

最初にリポジトリのベンダーディレクトリにあるすべてのファイルを削除してから、新しいバージョンを追加できることを知っています。それは簡単ですが、不要な「削除」および「追加」エントリをSVNログに残します(SVNにコードのコピーを保持する理由は、トラブルシューティングのためにログに簡単にアクセスできるようにするためです)。

これらの削除されたファイルを私のリポジトリにマージする簡単な方法はありますか?

編集:Timは、ベンダーにSVNリポジトリへのアクセスを許可しただけで、ブランチで変更を加えることができると正しく指摘しています。残念ながら、それは私の呼びかけではありません。私はただの開発者です。さらに、私たちはそれらを信頼するとは思えません(SVNセキュリティについては何も知りません)。

2番目の編集:既存のベンダーブランチを削除し、新しいベンダーコードを追加するだけで終わりました。しかし、私はベンダーに私たちのSVNへのアクセスを許可するというアイデアを持ち出しました、そしてそれはいくつかの約束で上向きに浮かんでいます:)

4

5 に答える 5

2

なぜあなたは彼らにあなたのSVNリポジトリへのアクセスを許可しませんか?おそらくブランチそしてあなたはあなたのリポジトリにマージしますか?

必要なパーツのみにアクセスできるようにするのは簡単です。私は本当にこれがあなたと彼らにとって最良の解決策だと思います。

于 2008-12-04T16:24:23.060 に答える
2

必要なフォルダーへのSVNアクセスを許可し、管理させることができれば、はるかに簡単になります。:-)

ドー、ティムは私がやる前にポストを打った!

作業を合理化する唯一の方法は、diffを実行し、削除/削除されたファイルを取得し、それをsvn-deleteにフィードするプロセス全体をスクリプト化することです。次に、少なくとも、ソースフォルダーとターゲットフォルダーで実行するコマンドが1つあります。

理想的には、Timが言ったように、リモート開発者にSVNへのアクセスを許可するだけで、フォルダーをロックダウンできない場合はブランチを提供しますが、それでも(ブランチを使用して)マージを実行することになります。

于 2008-12-04T16:25:02.153 に答える
2

ここで必要なのは、ベンダーコードを連続してインポートするたびに新しいバージョンを取得するベンダーブランチのように思えます。

このように、管理する削除はなく、Subversionを使用してバージョン1.0と2.0などを比較できます。

于 2008-12-04T16:26:48.937 に答える
1

verdor リポジトリ (開発リポジトリとは別) を作成し、以前のバージョンが配信されてからのリビジョンをダンプするようにベンダーに依頼します。あなたのサイトでは、それをベンダーのレポにロードするだけです。簡単でシンプル。

于 2011-04-19T15:50:58.230 に答える
0

同僚によって提案された 1 つの答えは、新しいコード ドロップ用に一時的なブランチを作成し、そのブランチから実際のブランチに SVN マージを実行することでした (その後、一時的なブランチを削除します)。

于 2008-12-04T16:41:00.063 に答える