0

私はこれをできるだけ簡単にするように努めます。

  1. 現在、私たちのチームには、プロジェクトが保存されているVSSデータベースがあります。
  2. 開発者はコードを取得してローカルホストマシンに配置し、ローカルで開発します。
  3. 指定された開発者は最新バージョンを取得し、開発サーバーにプッシュします。

問題は、ファイルがプロジェクトから削除されると(VS2008で削除することにより)、次に別の開発者(削除した開発者ではない)がチェックインするときに、削除されたファイルがまだ残っているため、それらのファイルをチェックインするように求められることです。ローカルマシンにコピーします。

これを回避する方法はありますか?VSSにこれらのファイルを削除するようにクライアントマシンに指示させ、再度チェックインするように促さないようにするには?このための好ましいアプローチは何ですか?


メモの編集:

  1. SVNがVSSよりも優れていることに同意します
  2. WebアプリケーションプロジェクトがWebサイトプロジェクトよりも優れていることに同意します
  3. 問題:これと同じことが、クラスライブラリから削除されたファイルでも発生します。
4

5 に答える 5

5

これを回避する一番の方法は、Webサイトプロジェクトの使用をやめることです。Webサイトプロジェクトを使用すると、VisualStudioはプロジェクトパスで見つかったものをすべてプロジェクトに自動的に追加します。

代わりに、この動作の問題がないWebアプリケーションプロジェクトに移動してください。

Webサイトプロジェクトは、一人の開発に適しています。

アップデート:

過去のVBショップには、インストールしたものがビルドプロセスに影響を与えるという点で同様の問題がありました。あなたは彼らのプレイブックからページを取り、「クリーンな」ビルドマシンを持っているかもしれません。展開を行う前に、すべてのプロジェクトフォルダーを削除してから、最新の取得を行います。このようにして、デプロイされるのはソース管理にあるものだけであることが確実になります。

ちなみに、これはTFSビルドサーバーの動作方法でもあります。ワークスペースを削除してから、新しいワークスペースを作成し、必要なプロジェクトファイルをダウンロードします。

さらに、ビルドを処理するためにCruiseControlようなものを使用することを検討するかもしれません。

于 2008-12-31T15:47:00.603 に答える
1

おそらく、開発者は、自分が取り組んでいるものだけをチェックインまたは追加するように注意する必要があります. 彼らが使用していないものを追加している場合、それは一種のずさんなものです。

于 2008-12-31T15:54:23.647 に答える
0

最善の解決策は、SVNなどのより優れたバージョン管理システムに切り替えることです。

私の仕事では、最近、バージョン管理としてVSSを使用していたアウトソーシング会社からプロジェクトを取得しました。すべての変更履歴をVSSからSVNにインポートし、その時点でSVNを使用して非常に迅速に起動して実行することができました。

また、SVNを使用すると、ファイルとフォルダーの無視を設定できるため、Webプロジェクト内のファイルはSVNに入れられず、無視属性が各開発者のマシンにチェックアウトされます。

VSSMigrateを使用してSVNへの移行を行ったと思いますhttp://www.poweradmin.com/sourcecode/vssmigrate.aspx

于 2008-12-31T15:52:07.723 に答える
0

あなたがやろうと思うかもしれない何か:

  1. 最新の取得 (再帰)
  2. チェックイン ...

これは手動のプロセスですが、目的の結果が得られる可能性があります。さらに、VS が削除されたファイルについて話している場合は、ステップ 1 でローカル マシンから削除する必要があることがわかります。

于 2008-12-31T22:27:33.260 に答える
0

VSS はひどいバージョン管理システムであり、SVN に切り替える必要がありますが、それは問題の核心とは何の関係もありません。プロジェクト ファイルには、実際にプロジェクトの一部であるファイルへの参照が含まれています。Visual Studio プロジェクトが変更と共にチェックインされていない場合、他の開発者が完全に更新される方法がないため、VSS から最新のものを取得するときにファイルを削除するためのクエリが実行されます。そこから、複数の選択肢があります...

  1. vbproj をリポジトリの一部にします。プロジェクト レベルの変更はすべてコミットの一部となり、他の開発者に通知できます。ここでの問題は、開発サーバーにもあることです。理想的には、リリースとしてデプロイする場合とほぼ同じプロセスを使用して開発にデプロイできます。これは別の道につながる...

  2. SVN は、ほぼすべての主要なイベントのフックを提供します。フックは文字通り、適切な名前のバッチ ファイル/exe です。あなたの目的のために、ポストコミットフックを使用して、コミットごとに適切なファイルを、たとえば ftp 経由でサーバーにプッシュすることができます。ファイルの問題が解決され、さらに重要なことに、継続的インテグレーションの概念に近づいています。

于 2008-12-31T17:28:17.110 に答える