对于SVN,我是新手。
我想在版本控制下的项目目录下应该只有1个.svn目录。例如,此类项目的层次结构应如下所示:
projectdir/
.svn/
subdir1/
subdir2/
...
我被前同事传递了1个项目目录,其中(令人惊讶地)在大多数子目录下都有.svn/
目录:
projectdir/
subdir1/
.svn/
...
subdir2/
.svn/
...
...
我需要将这个项目放回我们的svn服务器上
我想知道在这些子目录下有这么多.svn/
目录是否正常(我在尝试svn添加时遇到问题;我怀疑有人在过去使用svn做了一些有趣的事情)或者我可以删除所有这些子目录.svn/
目录,只关心我项目根目录下的.svn/
目录?
答案 0 :(得分:10)
这取决于您正在运行的子版本分发,在版本1.7
之前,工作副本中的每个目录中都有一个.svn
目录。
查看Apache Subversion 1.7 Release Notes
您可以尝试使用svn upgrade
答案 1 :(得分:4)
在SVN 1.7之前,每个子目录都包含隐藏的“.svn”目录。
从SVN 1.7开始“.svn”目录存储在工作副本的根目录和通过svn:externals下载的每个路径的根目录。
所以要么你的同事有较旧的SVN客户端版本,要么项目使用svn:externals。如果“.svn”位于每个子目录中,则“旧版本”更有可能。
在任何情况下,您都不应该只删除目录。如果是因为较旧的SVN客户端,只是尝试通过较新的TortoiseSVN使用此副本 - 它将建议工作副本升级。或者只是查看一份新的工作副本。