SVN:如何仅使用中继检查整个源树?

时间:2010-01-14 13:58:40

标签: svn version-control

两人,真的:

  1. 如何查看整个源代码树,但只获取所有内容的中继,忽略所有分支和标记?

  2. 假设#1可行,是否有办法让没有任何“trunk”目录,只是让文件驻留在具有存储库名称的文件夹中?

4 个答案:

答案 0 :(得分:25)

大多数SVN repostiories的结构都是这样的:

/
|-- /branches
|-- /tags
`-- /trunk
    |-- foo
    `-- bar

因此,如果存储库的根位于http://www.example.com/svn,则可以运行

svn co http://www.example.com/svn/trunk

只检查行李箱。如果要在项目后命名已签出的文件夹,只需将项目名称添加到命令行:

svn co http://www.example.com/svn/trunk myproject

此命令应生成如下目录结构:

myproject/
|-- foo
`-- bar

答案 1 :(得分:5)

不,这是不可能的。您可以做的是创建一个新项目,将定义外部链接从其添加到每个其他项目中继。外部链接的工作方式类似于softlink。

然后,您可以一步一步地解决所有问题。

http://svnbook.red-bean.com/en/1.0/ch07s03.html

答案 2 :(得分:3)

如果所有文件夹都具有相同的根结构,则可以在Windows中使用此批处理命令从根目录中检出所有主干文件夹:

for /F %%A IN ('svn list <your root URL here>') do svn co <your root URL here>/%%Atrunk ./%%A

答案 3 :(得分:0)

此脚本使用基础项目的所有签出命令创建下标(深度为DEVELOPMENT-> FOLDER-> SVN PROJECTS)

#!/bin/bash

PROJECTS=`svn list http://svn-server/svn/hps/Development/`

IFS=$'\n' 
for i in $PROJECTS; do
 REPOS=`svn list http://svn-server/svn/hps/Development/$i`
 for r in $REPOS; do
  echo "svn checkout \"http://svn-server/svn/hps/Development/${i}${r}trunk\" \"${r}\"" >> checkout_all_svn_trunk_cmd.sh
 done;
done;