0

我会尽量做到这一点。

  1. 目前我们的团队有一个存储我们项目的 VSS 数据库。
  2. 开发人员获取代码并放置在他们的本地主机上并在本地进行开发。
  3. 指定开发者抓取最新版本并推送到开发服务器。

问题是,当从项目中删除一个文件(通过在 VS2008 中删除它)然后下一次另一个开发人员(不是删除它的人)签入时,它会提示他们签入那些已删除的文件,因为他们仍然有一个复制到他们的本地机器上。

有没有解决的办法?让 VSS 指示客户端计算机删除这些文件而不提示他们重新签入?对此的首选方法是什么?


编辑注释:

  1. 我同意 SVN 比 VSS 好
  2. 我同意 Web 应用程序项目比网站项目好
  3. 问题:从类库中删除的文件也会发生同样的情况。
4

5 回答 5

5

解决此问题的首要方法是停止使用网站项目。网站项目使 Visual Studio 自动将它在项目路径中找到的任何内容添加到项目中。

相反,请转到没有此行为问题的 Web 应用程序项目。

网站项目适合单人开发。

更新:

过去的 VB 商店也有类似的问题,因为他们安装的任何东西都会影响构建过程。您可能会从他们的剧本中获取一页并拥有一台“干净”的构建机器。在进行部署之前,您将删除所有项目文件夹,然后执行获取最新的。通过这种方式,您可以确保部署的唯一内容就是您在源代码控制中拥有的内容。

顺便说一句,这也是 TFS 构建服务器的工作方式。它会删除工作区,然后创建一个新工作区并下载必要的项目文件。

此外,您可能会考虑使用诸如Cruise Control之类的东西来处理构建。

于 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

VSS 是一个糟糕的版本控制系统,您应该切换到 SVN,但这与问题的症结无关。项目文件包含对哪些文件实际上是项目的一部分的引用。如果 Visual Studio 项目没有连同对它的更改一起签入,则任何其他开发人员都无法完全更新,因此在他们从 VSS 获取最新文件时查询删除文件。从那里你有多种选择......

  1. 使 vbproj 成为存储库的一部分。任何项目级别的更改都将成为提交的一部分,并且可以通知其他开发人员。这里的问题是它也将在开发服务器上。理想情况下,您可以使用几乎相同的过程来部署到开发,就像部署为发布一样。这导致了另一种方式......

  2. SVN 为您提供了几乎所有重大事件的挂钩,其中挂钩实际上只是一个正确命名的批处理文件/exe。出于您的目的,您可以使用提交后挂钩在每次提交时将适当的文件(例如通过 ftp)推送到服务器。文件问题解决了,更重要的是更接近持续集成的概念。

于 2008-12-31T17:28:17.110 回答
0

您可能想要考虑做的事情:

  1. 获取最新(递归)
  2. 报到 ...

它是一个手动过程,但它可能会给你想要的结果,另外,如果 VS 谈到已删除的文件,你知道它们应该在步骤 1 中从本地计算机中删除。

于 2008-12-31T22:27:33.260 回答