白痴指导在SVN中移动目录

Abe*_*bel 5 svn command-line visualsvn-server

不,这不是重复这个.

虽然我通常习惯使用SVN的可视化工具,但我发现自己现在面临着想要迁移Repo/Parent/ChildX/ChildY的问题Repo/ChildY.我收到以下错误,我只是在寻找我在这里缺少的东西.考虑刚安装的服务器(从转储),除了svn之外没有其他可用的服务器.

> svn checkout https://localhost/Repo
svn: OPTIONS of 'https://localhost/Repo': 200 OK (https://localhost)

> svn move Repo/Parent/ChildX/ChildY Repo/ChildY
svn: 'Repo' is not a working copy
svn: 'Repo' does not exist

> svn move Parent NewParent
svn: '.' is not a working directory

> svn move https://localhost/Repo/Parent NewParent 
svn: Moves between the working copy and the repository are not supported

> svn move https://localhost/Repo/Parent https://localhost/Repo/NewParent
svn: OPTIONS of 'https://localhost/Repo': 200 OK (https://localhost)

> svn commit --message "Trying to get move command to work"
svn: 'C:\SVNTest' is not a working copy

我觉得有点奇怪的是,第一个命令(checkout)对我放在'Repo'后面的任何内容给出相同的响应,比如https://localhost/Repo/SomeNonExistingName.我确定我错过了什么.我发现参考资料说你不需要工作副本来进行搬迁,但是,我该怎么做?

上面的命令都没有,无论是给出错误还是OK,都做了实际的动作.我使用VisualSVN Server,可以在线浏览回购.


下面接受的解决方案和其他答案有助于解决此问题.对上面第一个命令的响应等于来自任何Apache服务器的常规响应.该200 OK HTTP响应.

当使用VisualSVN服务器,默认安装 https://hostname/svn.要结帐,您需要在存储库名称前加上该路径.上面的第一个命令应该是:

> svn checkout https://localhost/svn/Repo
file1
file2
etc...
Revision XXX

不幸的是,这个小问题,无论多么微不足道,都没有在任何地方提到过.结帐后,从同一目录,移动变得微不足道:

> svn move Folder/SubFolder NewFolder

kdg*_*ory 3

假设您有一个有效的结账,最简单的方法是这样的(用正确的 URL 替换 REPO_URL):

svn co REPO_URL
cd Repo
svn mv Parent/ChildX/ChildY .
svn commit -m "moved directory"
Run Code Online (Sandbox Code Playgroud)

当然,这是假设您没有标准的 trunk/tags/branches 目录。

这让我想到了您必须回答的问题:签出的工作目录是什么样的?它是否具有您期望的结构,或者是否有一些您不知道的目录?您.svn在 Repo 下看到目录了吗?


编辑:我从未使用过 Visual SVN 服务器,但如果您的存储库位于可访问的文件系统上,则始终可以使用“文件”URL:

svn co 'file:///localhost/Repo'
Run Code Online (Sandbox Code Playgroud)

或者(在刚刚查看了 VisualSVN 所谓的“文档”之后),我建议通过 Visual SVN 检查您的工作目录,然后执行上面的命令。

另外,Visual SVN 似乎创建了 trunk/tags/branches 目录,因此一旦您验证了目录结构,您肯定需要 cd 进入工作目录并在那里运行命令。