2009-05-21 126 views
3

后,我想复制一个项目到另一个主干,所以我用下面的命令:文件最终在错误的目录SVN复制

SVN复制-m“测试”(从项目的URL)/中继线/(项目的URL地址)/ Trunk/

文件以(项目的url)/ Trunk/Trunk /而不是 (项目的URL)/ Trunk /我希望他们去的地方结束。

我做错了什么?如果我想要(项目的url)/ Trunk /中的文件,我应该怎么做?在做以下似乎没有什么意义:

SVN复制-m“测试”(从项目的URL)/中继线/(项目的URL)/

+0

事实上,svn copy -m“test”(项目的URL)/ Trunk /(项目的URL)/如果(项目的url)/ Trunk已经存在,则失败。 – Andy 2009-05-21 11:26:38

+0

这是一个不同的情况,但我认为这是你正在经历的:SVN失败,因为该项目的URL - 不存在。在复制之前,您必须使用mkdir创建父项到中继。 – 2009-05-21 11:55:15

回答

1

你应该做svn copy -m "test" (url of project from)/Trunk/ (url of project to)/复制的树干投影到,因为您正在复制整个文件夹。

我不确定是否允许通配符在svn副本中执行/ trunk/*等操作,您应该检查文档。

+1

谢谢。刚刚证实svn不会做通配符。多么痛苦! – Andy 2009-05-21 11:59:18

0

如果您的目的地已经存在,您需要在复制之前将其删除。 svn copy也可能不适合你的情况,但很难猜测。

+0

谢谢。这是我目前发现svn如此难以使用的原因之一。 – Andy 2009-05-21 12:07:44

-1

我开始使用SVN时遇到过这个问题。

恕我直言,你可能会在你的网址和你的工作目录中感到困惑。如果你分支

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 . 

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

换句话说,此中继/中继事情发生的时间,但是当你检查你的资料库网址和工作目录(在OSX或TortoiseSVN的在Windows上使用SVNX),你会看到,它只是你的困惑:)

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

这工作。

0

什么跟我的情况是存在的desitnation路径,结果是SVN目录

我删除目标目录进行复制,并似乎做的工作里面复制。

也许我应该做的svn复制强制选项,但我去svn rm,然后svn副本。