Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN版本控制:如何为每个项目制定自己的修订方案?_Svn_Version Control - Fatal编程技术网

SVN版本控制:如何为每个项目制定自己的修订方案?

SVN版本控制:如何为每个项目制定自己的修订方案?,svn,version-control,Svn,Version Control,这里只是一个小小的SVN“问题” 我设置了自己的SVN服务器 现在我做了一个代表,我所有的项目都将在其中进行 现在,我在一个名为“项目”的文件夹中签出了该代表 现在,如果我创建一个项目并将其签入,该项目就是修订版1。如果我做了第二个项目,并将其签入,则该项目位于修订版2。因此,如果我对项目1进行更改,那么该项目将处于修订版3 我真正想要的是每个项目都有自己的修订方案。我该怎么做 唯一的方法是将每个项目放在一个完全独立的存储库中。同一存储库中的项目将始终显示您在问题中提到的行为 与许多其他版本控

这里只是一个小小的SVN“问题”

我设置了自己的SVN服务器

现在我做了一个代表,我所有的项目都将在其中进行

现在,我在一个名为“项目”的文件夹中签出了该代表

现在,如果我创建一个项目并将其签入,该项目就是修订版1。如果我做了第二个项目,并将其签入,则该项目位于修订版2。因此,如果我对项目1进行更改,那么该项目将处于修订版3


我真正想要的是每个项目都有自己的修订方案。我该怎么做

唯一的方法是将每个项目放在一个完全独立的存储库中。同一存储库中的项目将始终显示您在问题中提到的行为

与许多其他版本控制系统不同,Subversion的修订号适用于整个树,而不是单个文件。每个修订号选择一个完整的树,即某个提交的更改后存储库的特定状态


您必须为每个项目创建一个单独的存储库。总之,这是一个好主意,因此没有缺点:)

您需要在“项目”文件夹中创建存储库,当您进行初始签出时,签出“?/Projects/repo1”。。。这将使工作副本在您的机器上保持独立,并且您将彼此完全分开签入/签出。

他们在这里讨论得更好一些:

基本上你可以做到:

svnserve -r /path/to/repository  

svn://hostname/  


或者,您可以选择无服务器,只在本地或网络驱动器上托管单个存储库。

您能描述一下为什么跨多个项目使用单个subversion版本号对您来说是个问题吗

对所有项目使用单个存储库有一些合理的优势。最大的一点是,您可能能够更好地控制多个项目中公共代码之间的更改

如果您现在对跨多个项目的单个递增subversion修订号的概念有问题,您是否考虑过分支一个项目的情况?(请记住,普通分支也将有一个全局递增的subversion修订号)

听起来好像您正试图使用存储库修订号作为构建或发布号的一部分? 如果是这样的话,也许您可以考虑为您的项目/ S实现一个不同的构建编号方案,该方案可以与颠覆版本号相关联。 这种关联可以通过使用一种约定来实现,即创建带有发行号的分支,并将subversion修订版放在分支的注释中


有些方案曾被讨论过

我不同意并没有坏处。从开始,您有重复(或更多)的维护要做,任何“共享”代码都很难维护。在选择一种或另一种方法之前,应该先考虑一下。这不是真的正确,问题是要将不同项目的修订分开,你的例子不会很好地做到这一点,最初的海报说他已经在“项目”文件夹中签出了存储库。您不能在签出文件夹中“创建存储库”,因为这只是客户端。因此,答案可能会被误解。我明白你的意思。。。我以后会尽量说得更清楚。
svnserve -r /path/to/directory/containing/many/repositories  

svn://hostname/repositoryname/