文件在svn复制后最终出现在错误的目录中

时间:2009-05-21 11:22:29

标签: svn copy

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

svn copy -m“test”(项目的url)/ Trunk /(项目的url)/ Trunk /

文件最终(项目的url)/ Trunk / Trunk /而不是 (项目的网址)/ Trunk /我希望他们去的地方。

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

svn copy -m“test”(项目的网址)/ Trunk /(项目的网址)/

5 个答案:

答案 0 :(得分: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

唯一方式一切正常,是 NOT mkdir branches/foo ,但直接执行此操作:
# svn copy http://my/path/trunk http://my/path/branches/foo

这很有效。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如果目的地中的某些内容已经存在,则需要先将其删除,然后再复制其他内容。 svn copy也可能在你的情况下做得不错,但很难猜到。

答案 3 :(得分:0)

我发生了什么,因为SVN正在目录中复制

,因此存在desitnation路径

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

也许我应该用强制选项做svn copy但是我去了svn rm然后svn copy。

答案 4 :(得分:-1)

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

恕我直言,您可能会对您的网址和工作目录感到困惑。如果你用

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

然后trunk将在今天结束,这就是你想要的。然后当你切换时,你会使用

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)时,你会发现它只是你的困惑:)