【问题标题】:How can I checkout multiple SVN repositories in one command?如何在一个命令中签出多个 SVN 存储库?
【发布时间】:2012-01-30 15:13:21
【问题描述】:

我有超过 250 个 SVN 项目需要从我的服务器中签出,我想知道是否有一种方法可以使流程自动化。所有项目都在同一个文件中:

数据/
..project1
..project2
..project3

等

我可以在命令行中执行一个命令来自动执行该过程吗?手动执行 250 多次会非常痛苦。

谢谢!

【问题讨论】:

  • 我认为 'projects' 你的意思是 repositories?我想这只是建议创建单个根存储库并向其中添加子存储库的原因之一。
  • 我同意上述评论。如果它们只是同一存储库下的项目,那么您只需签出存储库根目录。如果它们是不同的存储库,我认为您需要编写一个脚本。

标签: svn command-line tortoisesvn


【解决方案1】:

没有定义 1 个“元”-repo,所有项目都定义为外部,我想不出一个纯 svn 解决方案。

根据您对服务器的访问权限,可以使用其他方法,例如使用 ssh:

 for repo in `ssh user@host 'ls /var/svn-repos'`;do svn co <method of connecting/path>/$repo $repo;done;

简而言之:您需要一个非 svn 方法来列出所有 repos。

【讨论】:

    【解决方案2】:

    您必须学习使用命令行客户端。它与 TortoiseSVN 捆绑在一起,但您需要确保它已安装,因为安装程序将其作为可选组件提供。

    C:>svn 帮助结帐
    checkout (co):从存储库中签出工作副本。
    用法:结帐 URL[@REV]...[PATH]

    如果指定,则 REV 确定 URL 的第一个版本
    抬头看。

    如果省略 PATH,则 URL 的基本名称将用作
    目的地。如果给出多个 URL,每个 URL 都会被检查
    输出到 PATH 的子目录中,并带有子目录的名称
    是 URL 的基本名称。

    简而言之,您必须使用自己喜欢的文本编辑器来编写这样的行:

    svn checkout https://example.com/path/to/repos/project1 ^
    svn checkout https://example.com/path/to/repos/project2 ^
    svn checkout https://example.com/path/to/repos/project3 ^
    ...
    svn checkout https://example.com/path/to/repos/project250 ^
    c:\path\to\working-copies
    

    ... 然后保存为 *.bat 文件或复制并粘贴到命令行提示符中。 (^ 符号只是一个允许多行命令的技巧;您也可以将所有内容写成一行。)

    个人想法:很难相信有一个尖头发的老板会期望你从事 250 个不同的项目。最有可能的是,您有 250 个相同产品的自定义项,而拥有 250 个存储库是过去某些错误决定的结果。不管怎样,祝你好运。

    更新: Windows 命令提示符很可能具有允许的最大命令大小。如果您想保持安全,请改写 250 条不同的 svn checkout 行。

    【讨论】:

    • '在运行 Microsoft Windows XP 或更高版本的计算机上,您可以在命令提示符处使用的最大字符串长度为 8191 个字符。在运行 Microsoft Windows 2000 或 Windows NT 4.0 的计算机上,您可以在命令提示符处使用的最大字符串长度为 2047 个字符。' support.microsoft.com/kb/830473
    • svn checkout url1 url2 url3 etc.. 工作!我只需要输出所有 url 的列表就可以让它工作。非常感谢!
    • 最好有 250 个单独的命令,因为您可以轻松地将其中的一些命令移除,进行错误检查/处理等。
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 2010-09-20
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多