2

请。请参阅创建 Subversion 分支。我创建了一个带有 URL http://reposerver/svn/repository/的存储库,并签出了一个工作副本并开始将文件添加到根目录,而不是添加到主干文件夹中。

现在,我们需要创建一个分支,但我们没有“主干”文件夹。从上面的链接中,用户“Wrikken”建议我们“可能的解决方法是现在创建一个文件夹主干,并将根无分支目录的当前内容移动到该位置。”

现在,我们不知道如何“将根无分支目录的当前内容移动到该位置”。我们应该使用什么命令来做同样的事情?

当我们执行 /var/svn/repository 的 ls -la 时,我们看到的是

total 32
drwxr-xr-x 2 www-data subversion 4096 2010-12-28 18:20 conf
drwxr-xr-x 3 www-data www-data   4096 2010-12-28 18:23 dav
drwxr-sr-x 6 www-data subversion 4096 2010-12-28 18:31 db
-r--r--r-- 1 www-data subversion    2 2010-12-28 18:20 format
drwxr-xr-x 2 www-data subversion 4096 2010-12-28 18:20 hooks
drwxr-xr-x 2 www-data subversion 4096 2010-12-28 18:20 locks
-rw-r--r-- 1 www-data subversion  229 2010-12-28 18:20 README.txt
-rw-r--r-- 1 root     root         95 2010-12-28 18:41 svn-commit.tmp

TL DR:我们需要创建一个分支,而我们的存储库没有“主干”和“分支”,那么我们需要使用哪些命令将现有存储库内容移动到主干目录?

谢谢,

4

2 回答 2

1

在存储库的工作副本的根目录中执行以下命令(ls应该输出存储库的内容,而不是问题中引用的文件和目录)。

svn mkdir trunk
svn mv `ls | egrep -v '^branches$` trunk
svn ci -m 'Create trunk dir and move trunk contents into it.'

egrep -v '^branches$匹配除branches. 该mv命令将足够聪明,不会尝试trunk进入自身,尽管它会向您大喊大叫,并出现您可以放心忽略的错误。

于 2010-12-28T13:35:02.777 回答
0

使用您选择的颠覆客户端。它应该有一个移动操作。(与 CVS 不同,在 subversion 中移动文件/目录会保留移动文件/目录的历史记录。)

例如,如果您使用的是 Tortoise SVN 客户端,这里是帮助文件的相关部分:

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html

于 2010-12-28T13:33:45.187 回答