【问题标题】:SVN create patch from committed code?SVN 从提交的代码创建补丁?
【发布时间】:2013-02-08 12:23:46
【问题描述】:

是否可以为提交后提交期间受影响的所有文件创建补丁(差异文件)?这些文件将具有相同的版本号,我需要每个文件与其先前版本的差异。

【问题讨论】:

    标签: svn diff


    【解决方案1】:

    如果你知道提交号,那么使用

    svn diff -c N path
    

    N 是提交号,path 是工作副本的路径。

    【讨论】:

    • 我做了svn help diff,它告诉我svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV] 也可以比较两个修订版。
    • 如果在颠覆配置中设置了 diff-tool,可能无法立即工作。您可能希望将 --diff-cmd diff 添加到此通话中。
    • 另外,您需要指定一个路径(或多个路径)以仅包含选定的文件。否则,您的补丁将包含整个变更集。
    【解决方案2】:

    替代方案,当使用 windows + tortoiseSVN 时:转到您的源代码目录,右键单击该目录(打开 tortoise 上下文菜单)并选择“显示日志”,选择两个修订版(ctrl-click)然后右键单击并从上下文菜单中选择“将差异显示为统一差异”。 将弹出一个窗口显示差异,然后您可以将其保存为补丁。

    更新:按住 Shift 键,单击“将差异显示为统一差异”时会弹出一个对话框,您可以在其中选择差异选项(忽略 eol 更改、忽略空格更改、忽略所有空格)。这很有用,例如版本之间的行尾发生了变化(否则整个文件将显示为“已更改”)

    【讨论】:

      【解决方案3】:

      如果您知道修订号(例如 123 和 124),您可以使用:

      svn diff -r123:124 path/to/my_project_folder > ~/my_project_changes_123_124.patch
      

      另见https://stackoverflow.com/a/25283101/1127583

      【讨论】:

        【解决方案4】:

        虽然已经回答了简单的版本如下,

        1, Source Code Location > Tortoize SVN > show log 
        2, Select the revision which has your commit
        3, Right Click > select > Show changes as unified diff
        4, Pop up with differences of all files in that commit come
        5, Copy the entire content and create a new file with the extension of .patch
        

        我从下面的链接https://groups.google.com/forum/#!topic/tortoisesvn/xV-hemaFdFU引用了

        【讨论】:

          猜你喜欢
          • 2014-11-28
          • 1970-01-01
          • 1970-01-01
          • 2011-11-04
          • 2012-09-05
          • 1970-01-01
          • 1970-01-01
          • 2015-02-12
          • 2011-09-11
          相关资源
          最近更新 更多