我需要将svn文件夹移到一个级别并保留所有历史记录
来自https://myserver.com/svn/Project/trunk/
的所有文件和目录
进入https://myserver/svn/Project/
我使用命令:
svn move https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/
但它说:
svn:无法移动路径“https://myserver.com/svn/Project/trunk/” 自己
谁知道如何解决这个问题? 谢谢!
答案 0 :(得分:21)
我也在寻找这个。然后我开始寻找一个解决方案而我找不到一个解决方案,除了它确实让我想到了一个解决方案。
您希望命令svn mv ./folder ./
将所有内容从./folder
移至./
。实际上并非如此,它会将folder
移动到当前目录中。由于这已经存在,命令失败。
因此,解决方案是将 ./folder
内的所有内容移至./
。实际上,以下命令就是这样:
svn mv ./folder/* ./
答案 1 :(得分:10)
如果您愿意使用TortoiseSVN,那么您只需使用存储库浏览器移动该文件夹即可。这就是我通常移动文件夹的方式,非常简单和无痛。
答案 2 :(得分:1)
我不知道你是否可以这样移动,我个人会检查存储库,移动文件系统中的文件夹然后提交更改,在一个位置删除它并在另一个位置添加。
答案 3 :(得分:1)
尝试:
svn switch --relocate https://myserver.com/svn/Project/trunk/ https://myserver/svn/Project/
请先在单独的存储库中测试一下,然后再在真实存储库中运行它!
答案 4 :(得分:1)
我今天遇到了类似的问题,但我不知道如何将它从乌龟移开,因为我也有该文件夹的设置。
如果新位置https://myserver/svn/Project/
应该只包含旧位置的项目,那么我就是这样做的:
将https://myserver.com/svn/Project/trunk/
移至新的临时位置(例如https://myserver/svn/TempProject/
);
删除了您要使用的现有位置(https://myserver/svn/Project/
);
将https://myserver/svn/TempProject/
重命名为https://myserver/svn/Project/
。
这对我有用。它保留了所有的历史记录,svn设置等。历史记录只是从所有移动的东西中得到了一些新的条目。
答案 5 :(得分:0)
我不相信您可以直接转到现有目录(尤其是存储库根目录)。也许--force
选项可以提供帮助。
如果可以检查整个仓库,你可以将每个目录从主干移到上层,这似乎是更可靠的解决方案
svn mv * ..
某些svn客户端不支持 *
答案 6 :(得分:-1)