3

我想将一个项目的主干复制到另一个项目,所以我使用以下命令:

svn copy -m "test" (项目地址来自)/Trunk/ (项目地址地址)/Trunk/

这些文件最终出现在 (url of project to)/Trunk/Trunk/ 而不是 (url of project to)/Trunk/ 我希望它们去的地方。

我做错了什么吗?如果我想要(项目的url到)/Trunk/中的文件我该怎么办?执行以下操作似乎没有意义:

svn copy -m "test" (项目地址)/Trunk/ (项目地址)/

4

5 回答 5

9

此外,在创建分支(或“分支”,对于 svn,只是复制的一个花哨术语)时,如果您主动并首先创建分支目录,您会遇到同样的问题。
假设您想从旧的“单目录”方法转移到“主干分支”方法。
您开始http://my/path
并希望进入这样的结构
http://my/path/trunk
http://my/path/branches/foo
http://my/path/branches/bar

因此,如果您首先创建分支目录:
# svn mkdir http://my/path/branches
# svn mkdir http://my/path/branches/foo
# svn mkdir http://my/path/branches/bar
然后试试这个:
# svn copy http://my/path/trunk http://my/path/branches/foo

'trunk'被复制到分支中
# http://my/path/branches/foo/trunk/...

如果您尝试使用通配符,那么通配符不起作用
# svn copy http://my/path/trunk/* http://my/path/branches/foo

唯一可行的方法是mkdir branches/foo直接这样做:
# svn copy http://my/path/trunk http://my/path/branches/foo

这行得通。

于 2009-12-24T15:40:53.797 回答
1

您应该svn copy -m "test" (url of project from)/Trunk/ (url of project to)/将主干复制到项目,因为您正在复制整个文件夹。

我不确定 svn 副本中是否允许使用通配符,要执行 /trunk/* 之类的操作,您应该查看文档。

于 2009-05-21T11:32:18.900 回答
0

如果您的目的地中的某些内容已经存在,您需要在复制其他内容之前将其删除。在您的情况下,这也可能svn copy不是正确的做法,但很难猜测。

于 2009-05-21T11:38:08.500 回答
0

我发生的事情是由于SVN在目录中复制而存在目标路径

我删除了目标目录执行了一个副本,这似乎完成了这项工作。

也许我应该使用强制选项完成 svn 复制,但我去了 svn rm 然后 svn 复制。

于 2010-04-19T00:30:56.293 回答
-1

当我开始使用 SVN 时,我遇到了很多这个问题。

恕我直言,您可能对您的 URL 和工作目录感到困惑。如果你分支

svn copy -m "I want a branch man" http://theproject/proj/trunk http://theproject/proj/branches/today

那么主干将在今天结束,这就是你想要的。然后,当您切换时,您将使用

svn switch http://theproject/proj/branches/today .

但是按照你指定的方式,整个事情会有所不同

svn copy -m "I need another trunk yo" http://theproject/proj/trunk http://theproject/anotherproj/trunk

那么你需要切换到正确的目录

svn switch http://theproject/anotherproj/trunk .

我在上面的例子中使用了句号,但是你必须小心去正确的地方......

换句话说,这种trunk/trunk 事情一直在发生,但是当您检查存储库URL 和工作目录(在OSX 上使用SVNX 或在Windows 上使用TortoiseSVN)时,您会发现这只是您的困惑:)

于 2009-05-21T11:51:17.570 回答