在存储库根目录创建项目后创建subversion分支

时间:2010-12-28 13:25:29

标签: linux svn branch branching-and-merging

PLS。见Creating a Subversion branch。我创建了一个包含URL http://reposerver/svn/repository/的存储库,并检出了一个工作副本,并开始将文件添加到根目录,而不是将其放入trunk文件夹。

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

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

当我们执行/ 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:我们需要创建一个分支,我们的存储库没有“trunk”和“branches” 那么我们需要使用什么命令将现有的存储库内容移动到trunk目录?

谢谢,

2 个答案:

答案 0 :(得分: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移动到自身中,虽然它会因为您可以安全忽略的错误而对您大喊大叫。

答案 1 :(得分:0)

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

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

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