我有一个由SVN控制版本的Visual Studio项目。本地工作副本位于C:\ProjectName\SolutionName
,存储库位于//servername/svn/ProjectName
(其中包含 SolutionName 文件夹)。
问题是在工作文件夹中,只检出 SolutionName 文件夹。我现在有我需要添加到SVN的兄弟文件夹,例如C:\ProjectName\Database
和C:\ProjectName\Documentation
。我可以直接将这些文件夹添加到存储库并单独检查它们,但我想要做的是将“签出”部分向上移动一级,以便C:\ProjectName
中的所有内容都受版本控制。这样可以更容易地进行提交(所有这些都来自一个文件夹,而不是每个文件夹需要多次提交)。它还可以使将来更容易将新文件夹添加到源代码管理中。
有一种简单的方法吗?我提出的一种方法是取消我的工作副本然后删除并重新创建存储库,并按照我想要的方式设置它。这个项目已经足够了,在那里丢失20个左右的提交历史并不是一个大问题,但我希望有一个更简单的方法来实现它。
如果它有帮助:我在大多数交易中使用TortoiseSVN,但我也安装了命令行工具。我也可以直接访问托管我的存储库的服务器。
答案 0 :(得分:2)
首先,将新的本地文件夹导入svn:
现在,服务器上的布局看起来就像你想要的那样。
接下来,只需查看// servername / svn / ProjectName的 new 工作副本(可能在C:\ src \ ProjectName中)。这将为您提供工作副本中所需的结构(三个文件夹:Database,Documentation和SolutionName)。然后,只需放弃您的“旧”工作副本(在C:\ ProjectName)。如果您愿意,可以删除C:\ ProjectName文件夹,并将C:\ src \ ProjectName复制到C:\ ProjectName,如果维护当前文件夹很重要(您可以在本地“移动”整个工作副本)。
源代码控制的优点在于,移动“本地副本”很容易,因为真正的代码在服务器上。
答案 1 :(得分:0)
如果我正确理解您的问题,如果您要检查存储库,您会在目录中看到SolutionName
文件夹。 (这意味着文件夹,而不仅仅是内容,受版本控制。)
如果这是正确的,请尝试:
C:\ProjectName_Temp
)。C:\ProjectName
复制到C:\ProjectName_Temp
。.svn
删除C:\ProjectName_Temp\SolutionName
文件夹。 (不要删除C:\ProjectName_Temp\.svn
)。C:\ProjectName_bak
作为备份(如果我错了,那么您不会丢失任何内容)并将_Temp
文件夹重命名为C:\ProjectName\
从那里,检查svn status
(或Tortoise的等效命令)并确保预期所有更改。
我希望这有帮助!