6

不,这不是 this 的副本

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

> svn 结帐 https://localhost/Repo
svn: 'https://localhost/Repo'的选项: 200 OK (https://localhost)

> svn move Repo/Parent/ChildX/ChildY Repo/ChildY
svn:“回购”不是工作副本
svn:“回购”不存在

> svn 移动父新父
svn:'。' 不是工作目录

> svn move https://localhost/Repo/Parent NewParent
svn:不支持在工作副本和存储库之间移动

> svn move https://localhost/Repo/Parent https://localhost/Repo/NewParent
svn: 'https://localhost/Repo'的选项: 200 OK (https://localhost)

> svn commit --message "试图让移动命令工作"
svn: 'C:\SVNTest' 不是工作副本

我觉得有点奇怪,第一个命令(结帐)对我放在“回购”后面的任何东西给出了相同的响应,比如https://localhost/Repo/SomeNonExistingName. 我确定我错过了一些东西。我发现参考资料说你不需要工作副本来移动,但是,我该如何移动?

上面的命令,无论是错误还是正常,都没有实际移动。我使用 VisualSVN Server,可以在线浏览 repo。


解决方案

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

使用 VisualSVN Server 时,默认安装 https://hostname/svn. 要签出,您需要在存储库名称前加上该路径的前缀。上面的第一个命令应该是:

> svn 结帐 https://localhost/svn/Repo
文件 1
文件2
ETC...
修订版 XXX

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

> svn 移动文件夹/子文件夹 NewFolder
4

3 回答 3

3

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

svn co REPO_URL
cd Repo
svn mv Parent/ChildX/ChildY .
svn commit -m "moved directory"

当然,这假设您没有标准的主干/标签/分支目录。

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


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

svn co 'file:///localhost/Repo'

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

另外,Visual SVN 似乎创建了 trunk/tags/branches 目录,所以一旦你验证了目录结构,你肯定想 cd 进入工作目录并在那里运行你的命令。

于 2010-01-21T12:28:28.450 回答
1

作为对您的评论的回应,结帐应该是什么样子,这是我自己的一个项目结帐的结尾:

一个 dblite\tags\pre-codeblocks\src\sqlite3.h
一个 dblite\tags\pre-codeblocks\inc
一个 dblite\tags\pre-codeblocks\inc\dblite.h
签出第 31 版。

当然, t 应该创建目录结构,而您的似乎没有这样做。

于 2010-01-21T12:29:15.370 回答
1

在我看来,好像您的结帐失败了。

如果成功,您通常会得到一个签出文件列表,后跟“签出修订版 XXXXX”行。

此线程中的一些建议可能会有所帮助。特别是,您可能没有为 https 访问正确设置 svn 服务器。一旦你把它修好,你应该能够按照你链接的线程中的说明进行操作。

如果摆弄您的“svn checkout”行不能解决问题,请更新/评论/回复。

于 2010-01-21T12:30:37.400 回答