【问题标题】:What is the svn equivalent to Perforce's sync/resolve process?与 Perforce 的同步/解析过程等效的 svn 是什么?
【发布时间】:2012-09-13 17:37:07
【问题描述】:

在 Perforce 中,您通常执行两步同步过程:
p4 同步
p4 解决

同步会将您的工作区同步到存储库并确定哪些文件存在冲突,并且解决步骤会在本地合并和解决冲突,而不会签入任何内容或以其他方式影响存储库。然后你可以运行你的回归,在你签入之前确保它仍然有效。

svn 相当于什么?我知道一定有办法做到这一点,但明显的谷歌搜索并没有给我任何答案。

【问题讨论】:

  • 在 subversion 中,如果有冲突,你不能commit。所以做“同步”实际上会“阻止”你。此时您必须使用svn update 更新您的工作目录,解决冲突并再次提交。试试看here
  • 好吧...根据链接,正确的顺序是:手动编辑吗? Perforce 会为您完成很多合并,或者您可以使用 GUI 合并工具(Perforce 或 tkdiff)并以这种方式进行合并。 SVN下有这样的选项吗?
  • svn merge命令应该能够解决琐碎的冲突,并且应该打开一个GUI工具来手动合并硬冲突。

标签: svn perforce


【解决方案1】:

步骤如下:

  1. 使用svn update 将工作副本更新为 HEAD 或所需的修订版,或使用svn merge 将来自不同分支的更改合并到工作副本中。
  2. 对于每个冲突的文件,svn 创建/修改另外四个文件:
    1. filename:修改了原始文件,并添加了指示冲突行的标记。
    2. filename.mine:原文件。
    3. filename.rBASE:更新前工作副本修订号 (BASE) 处的文件未修改版本。
    4. filename.rNEW:新版本的文件来自更新。
  3. 要解决冲突,请执行以下操作之一。每个都会删除之前创建的附加文件。
    1. 手动编辑每个文件(上例中为filename)至所需状态,然后调用svn resolved 表示冲突已解决。
    2. 使用svn resolve 选择一个特定的版本,可以是“base”(filename.rBASE)、“working”(filename)、“mine-full”(filename.mine)或“theirs-full”(@ 987654340@)。
    3. 使用svn revert 撤消该文件的更新。
  4. 使用svn commit 更新存储库。在解决所有冲突之前,此操作不会继续。

更多信息请参见Resolving Conflicts (Merging Other's Changes)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 2012-11-05
    • 2019-06-26
    • 2011-03-11
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多