有关重组 Visual SourceSafe 项目的问题
我继承了一个非常混乱的 VSS 数据库,我需要清理它。在我完成重组之前,我想得到一些指导,这样我就不会犯与前一个人类似的错误。我将把所有内容移至 VSS 的新实例并重新开始。历史信息不是问题,因此可以理解的是,全新安装将不包括先前版本的历史记录。 (如果需要,当前的 VSS 数据库将可用。)
我们当前使用的是 Visual Studio 2005 和 Visual Source Safe 2005。我们将转向 VS2010,或许还有 TFS,但首先是第一步。
我们有三个 ASP.NET 产品,每个产品共享多个库。以下是项目的基本结构:
PRODUCT 1
References:
Library 1
References:
Library 4
Library 5
Library 2
Library 3
PRODUCT 2
References
Library 1
References:
Library 4
Library 5
Library 3
Library 6
PRODUCT 3
References
Library 5
Library 3
作为第一步,我将所有产品和库从 VSS 中“解除绑定”,并将它们组织到文件夹中,如下所示。 (有 3 名开发人员,我们都将在我们的计算机上设置相同的文件夹结构。)
C:\Source\Products\Product1
C:\Source\Products\Product2
C:\Source\Products\Product3
C:\Source\Libraries\Library1
C:\Source\Libraries\Library2
...
C:\Source\Libraries\Library5
每个产品和每个库都有它自己的解决方案;项目引用用于所有引用的库。例如,产品 1 的解决方案包含库 1、2、3、4 和 5 的项目引用。库 1 的解决方案包含库 4 和 5 的项目引用,依此类推。一切都在此时建立。
问题:产品 1 包含库 4 和 5 的项目引用是否是常见做法,即使它没有直接引用它们(但其引用的项目之一却这样做了)?
我计划在 VSS 中设置并行结构:
$\Prodcuts\Product1
...
$\Libraries\Library5
问题:这是要使用的逻辑结构吗?如果不是,我应该做什么不同的事情。
预先感谢您的意见。
达尔维斯
I have inherited a very disorganized VSS database and I need to clean it up. Before I finalize my reorganization, I would like to get some guidance so I don't make similar mistakes as the previous person. I'm going to move everything to a new instance of VSS and start fresh. Historical information isn't a concern, so it is understood that the fresh install will not include history of prior versions. (The current VSS db will be available if needed.)
We are currently using Visual Studio 2005 and Visual Source Safe 2005. We'll be moving to VS2010 and perhaps TFS, but first steps first.
We have three ASP.NET products, each of which share multiple libraries. Here's the basic structure of the projects:
PRODUCT 1
References:
Library 1
References:
Library 4
Library 5
Library 2
Library 3
PRODUCT 2
References
Library 1
References:
Library 4
Library 5
Library 3
Library 6
PRODUCT 3
References
Library 5
Library 3
As a first step I have all of the products and libraries "Unbound" from VSS and have structured them in folders as follows. (There are 3 developers and we'll all setup the same folder structure on our machines.)
C:\Source\Products\Product1
C:\Source\Products\Product2
C:\Source\Products\Product3
C:\Source\Libraries\Library1
C:\Source\Libraries\Library2
...
C:\Source\Libraries\Library5
Each Product and Each library has it's own solution; project references are used for all referenced libraries. For example, the solution for PRODUCT 1 includes project references for Libraries 1, 2, 3, 4, and 5. The solution for Library 1 has project references for Libraries 4 and 5 and so on. Everything builds at this point.
Question: Is it common practice for PRODUCT 1 to include project references for Libraries 4 and 5 even though it doesn't reference them directly (Yet one of its referenced projects does)?
I plan to setup a parallel structure in VSS:
$\Prodcuts\Product1
...
$\Libraries\Library5
Question: Is this a logical structure to be using? If not, what should I do different.
Thanks in advance for your input.
Darvis
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,它甚至是某些任务所必需的,例如 VS2010 中的代码分析。无论如何,构建过程都会排除任何直接未使用的引用(这不是不清理它的原因,但在构建项目时并非所有列出的项目引用都被直接使用,这是一种支持)。
如果您使用 VB.NET,则可以自动清理引用(但您可以轻松破坏代码分析功能,我遇到过它不能正常工作的情况),在 C# 中,清理项目引用的功能不是内置的(某些(非免费)插件的功能类似于 Resharper)
(也许这应该是关于程序员的一个单独的问题,因为它有点主观,但无论如何我都会回答:))
我不'没看出你的逻辑有什么问题。就我个人而言,我不会拆分库项目和可执行项目。它们只是项目。这确实是个人喜好的问题,其他人会按照客户端、平台等来划分它。但是只要人们能够看到你正在做的事情背后的逻辑,我认为你在使用时不会再遇到任何问题VSS。
Yes it is, it is even required for certain tasks, like code analysis in VS2010. The build process will exclude any directly unused reference anyway (not a reason for not cleaning it up, but it's kind of supported that not all the project references listed are used directly when building the project).
If you work in VB.NET, you can automatically clean the references (but you can easily break code analysis capabilities, and I encountered cases where it was just not working well), in C# the ability to clean project references is not built-in (certain (non-free) plug-ins do it like Resharper)
(Maybe it should be a separate question on programmers, as it is kinda subjective, but I'll answer anyway :) )
I don't see any problem in your logic. Personally I don't split library projects and executable projects. They are just projects. It's really a matter of personal preference, others would split it by Clients, Platforms, etc. But as long as people can see the logic behind what you are doing, and I don't think you will encounter any more problem with it while using VSS.