首页 / 知识
关于svn:在Subversion中为Visual Studio项目构建存储库的最佳方法?
2023-04-12 11:40:00

Best way to structure a repository in Subversion for Visual Studio projects?
我有一些C# 我最近切换到Subversion进行源代码控制,我担心在构建存储库方面做得不好。 我想听听别人在做什么。 Subversion存储库通常细分为:
您可以将所有DLL和应用程序项目放入主干,然后根据需要对所有它们使用分支和标记:
或者,您可以在根目录中为每个项目创建文件夹,然后在其中放置公共分支,标签和主干文件夹。
请注意,这种做法只是约定俗成,而SVN中的任何内容都不需要(或真正促进)完全以这种方式进行。但是,每个人都习惯了。因此,您将为别人提供帮助。 更详细地讲,主干将是您进行主要开发的地方。当您要标记特定的修订版本(例如发行版本)时,只需svn将项目复制到标签目录中。另外,如果您想做一些戏剧性或长时间的操作而又不想阻碍主干的进度,只需将代码复制到分支目录中即可。稍后,您可以在准备好执行操作时,将其分支合并回svn! 如果您想纠正当前Subverion存储库中的故障,则只需使用svn move来重新定位它们。与CVS的删除和添加过程不同,move将保留新位置的版本历史记录。 使用branch / trunk / tag存储库结构是相当标准的,但是如果我对您的理解是正确的,那么您的问题就是您拥有一组可以在多个项目中使用的常见dll项目。这肯定会变得棘手。 因此,这里的典型情况是您拥有一个名为Common.Helpers的类库,该类库具有所有应用程序都通用的代码。 假设我正在启动一个名为StackOverflow.Web的新应用程序,该应用程序需要引用Common.Helpers。 通常,您要做的是创建一个新的解决方案文件,并添加一个名为Stackoverflow.Web的新项目,并添加现有的Common.Helpers项目,然后从新的Stackoverflow.Web项目中引用它。 我通常尝试做的是为Common.Helpers项目创建一个存储库,然后在Subversion中将其作为外部引用。这样,您可以将代码置于源代码控制下的单个位置,但仍可以在多个项目中单独使用它。 如果要在多个项目上同时使用Subversion 1.5的合并跟踪,则应使用一棵没有外部树的树。 跟踪的合并(就像提交一样)总是在目录及其子目录上。 相同的规则适用于原子提交。 (仅在单个工作副本中稳定运行。在某些其他特定情况下也可能工作,但不能保证这种行为) 感谢所有回答。 lomaxx,我花了整整一天的时间研究使用外部功能,看来这是要走的路。我没有意识到,可能是因为它在Tortoise中并不十分突出。 我将所有内容存储在存储库中,以使开发人员(或重建的devbox)可以轻松地从SVN中检出,然后运行构建(所有必需的程序集都位于相对路径中)。如果您有多个应该分开的项目,那么这也将鼓励您的共享零部件团队交付高质量的装配体。这可以遵循正常的生产思路,其中共享组件将在您的下游项目中更新。这是一个非常自然的软件价值链,但需要一点磁盘空间。 JP Boodhoo在自动构建,VS文件夹结构以及使开发人员快速启动和运行这一主题方面有一系列精彩的文章。 如果您的子项目可以以不同的版本发布(例如控件,Web部件等),则可以这样构建您的结构:
解
项目二
这样,您可以独立管理每个项目版本。 否则,最常见的结构是:
|
最新内容
相关内容
python有map方法吗
python有map方法吗,培训,位置,数据,函数,列表,序列,参数,元素,方法,使用方法,python中的map:map()会根据提供的函数对指定序列做映射。第一个python有哪些方法可以解压文件?
python有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大。python函数与方法的区别是什么
python函数与方法的区别是什么,培训,函数,方法,区别,对象,以上,方式,更多,内容,python中函数和方法的区别1、函数要手动传self,方法不用传selpython类自带方法吗
python类自带方法吗,培训,方法,里面,实例,也就是说,下面,对象,以上,之后,参数,python中的类,创建好之后,里面是没有方法的,也就是说,类并没有自带python子类可以调用父类方法吗
python子类可以调用父类方法吗,培训,名称,资料,情况,地方,函数,参数,方法,表示,语句,python中的子类中的__init__()函数会覆盖父类的函数,一些python静态方法怎么使用self
python静态方法怎么使用self,培训,管理,不了,方法,静态,属性,实例,变量,对象,参数,python-静态方法,类方法,属性方法静态方法实际上与类(或者实python魔术方法是什么
python魔术方法是什么,培训,通信,设计,第一,第三,数据,方法,实例,对象,参数,1、什么是魔术方法魔法方法就是可以给你的类增加魔力的特殊方法,python怎么理解Python的构造方法
python怎么理解Python的构造方法,代码,名字,培训,方法,参数,对象,以上,结尾,函数,开头,在创建类时,我们可以手动添加一个__init__()方法,该方法python不支持next方法吗
python不支持next方法吗,异常,培训,项目,方法,对象,元素,参数,函数,语法,文件,Python3中的File对象不支持next()方法。Python3有一个内置函数python列表操作的函数和方法
python列表操作的函数和方法,培训,位置,列表,元素,操作,函数,末尾,方法,对象,以下,1列表操作包含以下函数:21、cmp(list1,list2):比较两个列表python怎么调用类方法
python怎么调用类方法,培训,方法,实例,静态,定义,参数,属性,对象,关键字,以上,python中的类用来描述具有相同的属性和方法的对象的集合。它定python判断字符串是否为小数的方法
python判断字符串是否为小数的方法,培训,代码,合法,小数点,小数,整数,字符串,方法,右边,左边,python想判断一个字符串是不是一个合法的小数,但