SVN在大型工程中的应用

SVN在大型工程中的应用,svn,Svn,我有一个大项目,但我只需要在我的svn存储库中的一些文件夹 现在,这是我的项目结构的前两个层次 folder_1 subfolder_1.1 subfolder_1.2 folder_2 subfolder_2.1 subfolder_2.2 subfolder_2.3 folder_3 subfolder_3.1 subfolder_3.2 我只需要 folder_1 subfolder_1.1 folder_3 sub

我有一个大项目,但我只需要在我的svn存储库中的一些文件夹

现在,这是我的项目结构的前两个层次

folder_1
    subfolder_1.1
    subfolder_1.2
folder_2
    subfolder_2.1
    subfolder_2.2
    subfolder_2.3
folder_3
    subfolder_3.1
    subfolder_3.2
我只需要

folder_1
    subfolder_1.1
folder_3
    subfolder_3.2
当然,它们的子文件夹也受版本控制

如何在新创建的svn存储库中仅导入这些文件夹? 如何在将来提交时忽略任何其他文件夹中的更改

由于我在处理svn管理方面并没有真正的经验,因此非常感谢您提供的任何提示和分步说明


编辑:为了澄清我需要做什么:创建一个新的存储库,如上所述导入文件夹,使用svn客户端检查它们没有什么大不了的,并确保其他文件夹中的文件不受版本控制。GSVN在提交时会忽略文件夹_2中的内容。

首先,提交到Subversion的唯一内容是那些明确添加到跟踪中的内容,因此只需添加要跟踪的文件夹即可。其余部分可以存在于您的工作副本中,而不在Subversion的跟踪列表中


如果您不希望Subversion工具提示您可能添加其他文件夹,您可以通过将设置为排除这些路径来强制Subversion工具完全忽略这些文件夹。

首先,提交给Subversion的只有那些您显式添加到跟踪中的文件夹,因此只需添加您想要跟踪的文件夹即可。其余部分可以存在于您的工作副本中,而不在Subversion的跟踪列表中


如果您不希望Subversion工具提示您可能添加其他文件夹,您可以通过将设置为排除这些路径来强制Subversion工具完全忽略这些文件夹。

尝试使用TortoiseSVN执行此操作,但您应该添加第一个子文件夹\u 1.1,然后右键单击子文件夹_2和TortoiseSVN>添加以忽略列表>子文件夹_2,然后将文件夹_1添加到SVN。对于其他文件夹/子文件夹也是一样,这样做的目的是排除您不感兴趣的子文件夹,您也可以通过命令行执行此操作。

尝试使用TortoiseSVN执行此操作,但您应该添加第一个子文件夹_1.1,然后右键单击子文件夹_2和TortoiseSVN>添加以忽略列表>子文件夹_2,然后将文件夹_1添加到SVN。对于其他文件夹/子文件夹也是一样,这样做的目的是排除您不感兴趣的子文件夹,您也可以通过命令行执行此操作。

您有两个选项,具体取决于您将如何使用前面的代码:

导出而不是签出!将现有目录转换为新的本地目录结构,您可以将其导入新的存储库 将新存储库链接到上一个存储库。 1对第一个选项使用以下命令:

mkdir project
cd project
svn export <URL old project>/folder_1 folder_1
svn export <URL old project>/folder_3 folder_3
svn mkdir <URL new project>/trunk -m "Initial trunk"
svn import <URL new project>/trunk -m "Initial files"
要做到这一点,请检查svn:externals属性在中是如何工作的,它需要更长的时间来解释,而且它看起来不像您想要的解决方案,因此我将仅提及可能性


编辑:我遗漏了忽略部分,但是已经有人回答了。要知道,对于工作站上的所有项目,有可能告诉SVN忽略所有具有定义扩展名的文件,这在我提供链接的文档中有描述。

您有两个选项,具体取决于您将如何使用前面的代码:

导出而不是签出!将现有目录转换为新的本地目录结构,您可以将其导入新的存储库 将新存储库链接到上一个存储库。 1对第一个选项使用以下命令:

mkdir project
cd project
svn export <URL old project>/folder_1 folder_1
svn export <URL old project>/folder_3 folder_3
svn mkdir <URL new project>/trunk -m "Initial trunk"
svn import <URL new project>/trunk -m "Initial files"
要做到这一点,请检查svn:externals属性在中是如何工作的,它需要更长的时间来解释,而且它看起来不像您想要的解决方案,因此我将仅提及可能性


编辑:我遗漏了忽略部分,但是已经有人回答了。要知道,对于工作站上的所有项目,有可能告诉SVN忽略所有具有定义扩展名的文件,这在我提供链接的文档中有描述。

如果您只想在其他存储库中拥有存储库的一个子集,只需从存储库中签出选定的内容1,并将其存入仓库2。 如果希望repository2与repository1同步,可以使用svnsync实现,但此时repository2将是只读的。
如果您希望repository2与repository1同步,并且仍然提交到repository2—如果您希望在其他存储库中只包含存储库的一个子集,则subversion无法实现—只需从repository1签出所选内容,并将其签入repository2即可。 如果希望repository2与repository1同步,可以使用svnsync实现,但此时repository2将是只读的。
如果您希望repository2与repository1同步,并且仍然提交到repository2-使用subversion无法实现这一点

我编辑了我的问题,抱歉不清楚。我编辑了我的问题,抱歉不清楚。