【问题标题】:How to checkout a specific Subversion revision from the command line?如何从命令行签出特定的 Subversion 版本?
【发布时间】:2010-11-28 13:54:41
【问题描述】:

我想使用命令行检查Subversion 中文件夹的特定修订。

我没有看到在TortoiseProc.exe 中指定修订号的选项,

TortoiseProc.exe /command:checkout <url>

如何获得我想要的修订? TortoiseProc.exe 是我想做的正确工具吗?

【问题讨论】:

    标签: svn command-line tortoisesvn


    【解决方案1】:

    如果你已经在本地签出了它,那么你可以cd 到它被签出的地方,然后使用这个语法:

    $ svn up -rXXXX
    

    参考:Checkout a specific revision from subversion from command line

    【讨论】:

    • 出于某种原因,这对我没有任何作用。仍然是旧版本。
    • @IgorGanapolsky 您是否在本地修改了您要更新的文件?
    • 如何进行硬重置? (忽略冲突?)
    • @DilipRajBaral svn revert 在特定文件上,或 svn revert --depth infinity 递归重置
    • 如何确认该命令是否成功? svn info --show-item revision 显示的数字与我输入的数字不同。
    【解决方案2】:

    要么

    svn checkout url://repository/path@1234
    

    svn checkout -r 1234 url://repository/path
    

    【讨论】:

    • 我必须在 -r 之后删除空格,所以“-r1234”对我有用。
    【解决方案3】:

    有什么理由使用 TortoiseProc 而不是普通的 svn 命令行?

    我会使用:

    svn checkout svn://somepath@1234 working-directory
    

    (获取修订版 1234)

    【讨论】:

      【解决方案4】:

      你不应该使用 TortoiseProc.exe 作为命令行 Subversion 客户端! TortoiseProc 应该只用于自动化 TortoiseSVN 的 GUI。见 note in TortoiseSVN's Manual

      记住 TortoiseSVN 是一个 GUI 客户端,而这个自动化指南 向您展示如何使 TortoiseSVN 对话框出现以收集用户 输入。如果你想写一个不需要输入的脚本,你 应该改用官方的 Subversion 命令行客户端。

      使用 Subversion command-line svn.exe client。使用命令行客户端,您可以

      您可能会注意到,使用svn checkoutsvn export,您可以输入REV 编号作为--revision REV 参数,并在URL 后面输入@REV。第一个称为手术修订,第二个称为钉修订。 Read SVNBook for more information about peg and operative revisions concept.

      【讨论】:

        【解决方案5】:

        svn checkout 到您的存储库在另一台服务器上的修订版

        使用svn log 命令找出可用的修订:

        svn log
        

        哪些打印:

        ------------------------------------------------------------------------
        r762 | machines | 2012-12-02 13:00:16 -0500 (Sun, 02 Dec 2012) | 2 lines
        
        ------------------------------------------------------------------------
        r761 | machines | 2012-12-02 12:59:40 -0500 (Sun, 02 Dec 2012) | 2 lines
        

        注意号码r761。下面是命令说明:

        svn export http://url-to-your-file@761 /tmp/filename
        

        我专门用了这个命令:

        svn export svn+ssh://machines@mywebsite.com/home1/oct/calc/calcFeatures.m@761 calcFeatures.m
        

        这会导致 calcFeatures.m 修订版 761 被检出到当前目录。

        【讨论】:

          【解决方案6】:

          我相信这个语法是/rev:&lt;revisionNumber&gt;

          可以在here找到相关文档

          【讨论】:

            【解决方案7】:

            你可以试试

            TortoiseProc.exe /command:checkout /rev:1234
            

            获取修订版 1234。

            我不能 100% 确定 /rev 选项与 checkout 兼容,但我从一些 TortoiseProc documentation 中得到了这个想法。

            【讨论】:

              【解决方案8】:

              你必须直接使用svn:

              svn checkout URL[@REV]... [PATH]
              

              svn help co
              

              为您提供更多帮助。

              【讨论】:

              • 就我所见,我认为一个例子可以提供帮助。你包括或不包括括号? 3个时期呢? 3个时期之后的空间呢?哪些字符是字面的,哪些是占位符,哪些是为占位符添加的字符?
              【解决方案9】:

              看来您可以使用存储库浏览器。单击右上角的修订按钮并将其更改为所需的修订。然后在浏览器中右键单击您的文件并使用“复制到工作副本...”,但更改要检出的文件名,以避免冲突。

              【讨论】:

              • 什么存储库浏览器?
              【解决方案10】:

              转到文件夹并使用命令:

              svn co {url}
              

              【讨论】:

              • 什么是co?我觉得这个答案需要一些扩展/解释
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-07-13
              • 1970-01-01
              • 1970-01-01
              • 2014-04-11
              相关资源
              最近更新 更多