我想将一个项目的主干复制到另一个项目,所以我使用以下命令:
svn copy -m“test”(项目的url)/ Trunk /(项目的url)/ Trunk /
文件最终(项目的url)/ Trunk / Trunk /而不是 (项目的网址)/ Trunk /我希望他们去的地方。
我做错了吗?如果我想要文件(项目的网址)/ Trunk /?我该怎么办?执行以下操作似乎没有意义:
svn copy -m“test”(项目的网址)/ Trunk /(项目的网址)/
答案 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)时,你会发现它只是你的困惑:)