2008-09-25 86 views
7

这篇文章类似于this previously asked question.我真的想以TTB格式设置我的SVN存储库,但是在Visual Studio 2008(ASP.NET/VB.NET)中创建项目时, ,在考虑解决方案文件,项目文件,项目文件夹,解决方案中的多个项目等时,创建的结构往往不兼容。是否有人有脚本或过程来创建新的ASP.NET项目并将其移至TTB格式尽可能无痛苦?版本控制中的项目结构 - .NET特定版本


让我更具体。假设我有一个名为StackOverflowIsAwesome的项目。我可以把它放到我的本地文件夹结构中(假设它是c:\ working)。当我创建它时,VS创建c:\ working \ StackOverflowIsAwesome和一大堆子文件夹(bin,app_data等)。但我想我的仓库结构,看起来像......

 
StackOverflowIsAwesome 
    /trunk 
     /bin 
     /app_data 
    /tags 
    /branches 

那么,有没有一个干净的方式来做到这一点始终还是我需要诉诸不断移动/修改文件和文件夹,使这项工作?

回答

0

如果您的TTB是常见的而不是每个项目,那么它没有问题。或者我错过了什么?

1

我们有一个非常简单的方法去:

文件结构:

  • 解决方案文件夹(包含解决方案文件,构建脚本,也许更多?)
    • 项目文件夹
    • 项目文件夹2
    • 参考文献(包含共享的a解决方案)。

然后我们只需检查整个解决方案的文件夹中的内容到我们的仓库。我们为每个解决方案使用一个存储库我不确定这是否是组织解决方案的最佳方式,但它对我们有效。

此外,我们分支在最高级别,而不是每个项目。

+0

我们对解决方案大小的项目组执行完全相同的操作。 我们也有一些较小的单项目项目(如公共库)。对于这些项目,每个项目都有一个TTB(如果需要,解决方案文件可以包含在项目目录中)。 – VanSkalen 2008-09-25 20:17:04

0

当处理构成Visual Studio解决方案的多个项目时,很难决定如何正确构建事物。

您需要处理结构的一个关键方面是可以轻松地检索特定发行版的所有文件。尽可能地简化这一点非常重要。在subversion中,将根文件夹复制到标签分支上更容易,然后记住为X项目重复相同的操作。

能够长时间在主干线以外工作也很重要。你也必须考虑这一点。

您可能会发现您的软件有许多自然组合在一起的组件。你可以做这样的事情

/tag 

/core_library 
    /branch 
    /main 

/business_logic 
    /branch 
    /main 

/report_library 
    /branch 
    /main 

/my_ui 
    /branch 
    /main 

有没有简单的答案。你做什么取决于你的具体项目。如果一切仍然出现乱七八糟的混乱,那么也许你需要看看你的项目是如何设计的,并看看是否可以改变,以提高理解。

-1

我做这种方式:

  1. 在VS创建项目
  2. 进口一切都在项目文件夹回购/项目名称/后备箱
  3. 添加回购/分支机构和回购/标签的文件夹

这给了我一个仓库结构,如:

projectname 
    /trunk 
     /bin 
     /obj 
     /Properties 
     projectname.sln 
    /tags 
    /branches 

我可以将所有文件保留在文件系统的默认位置。

1

另一种方式:

StackOverflowIsAwesome 
    /trunk 
    /database 
    /datafiles 
    /documents 
    /build 
    /installer 
    /lib 
     /External_DAL (external that points to shared library) 
    /utilities 
    /vendor 
    /src 
     /StackOverFlowIsAwesome 
     /StackOverFlowIsAwesome.csprj 
     /bin 
     /... 
     /StackOverFlowIsAwesomeTests 
     /StackOverFlowIsAwesomeTests.csprj 
     /bin 
     /... 
    /branches 
    /tags 

这将是为每个项目。由于我们正在使用构建脚本,因此我们不需要将我们的解决方案文件存储在SVN中。

0

对于较大的项目,我们通常使用这种格式在这里:

/Project 
    /trunk 
     /lib/    # Binary imports here (not in svn) 

     /src    # Solution file here 
      /Libraries  # Library assemblies here 
      /StackOverflowIsAwesome.Common 

      /Products  # Delivered products here 
      /StackOverflowIsAwesome.Site 

      /Projects  # internal assemblies here 
      /StackOverflowIsAwesome.Tests 
    /branches 
     /1.x 
    /tags 
     /StackOverflowIsAwesome-1.0 

根据实际项目非源文件(文件等)有树干根和额外的开发资源下 目录是在src 。

下面的独立项目是在他们自己的项目根目录下,但在同一个存储库中。