代码之家  ›  专栏  ›  技术社区  ›  orithena

有没有一个保证,svn自动合并并发的“添加行”和“删除行”到同一个文件?

  •  2
  • orithena  · 技术社区  · 15 年前

    目前,一切都很好,但我想知道,如果我可能会遇到问题与SVN自动合并。

    假设一个节点通过在xml文件中添加一行指向另一个包含作业详细信息的xml文件,将特定作业添加到另一个节点。此代码如下所示:

    ----File: nodename.xml----
    <assignments>
      <file>537f7acb382326.xml</file>
      <file>572919a90c0234.xml</file>
      <file>58a7c3e2015922.xml</file>
    </assignments>
    

    该文件中列出的每个文件都是对主机的作业分配 nodename

    从SVN存储库的角度来看,我有一个“adder”和一个“read and deleter”。一个节点仅向该文件添加行,一个节点仅从该文件中删除行。我可以保证只有一个节点可以添加,只有一个节点可以删除。但是:虽然文件名有唯一的id,但是它们可能会被重新添加,因此一行可能会同时被添加和删除,这在理论上可能会导致问题。

    我的问题是:有没有一个保证,SVN自动合并一个并发的“添加行”和“删除行”没有用户交互?如果没有,是否有一个保证,如果我添加一个时间戳到每一行,使每一行都是唯一的?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Martin Serrano Aksel Willgert    12 年前

    对于SVN,没有并发发生。删除或添加将首先发生。如果自更新后存储库发生了更改,则提交将失败。例如,如果你的 read-and-deleter 读取文件 adder 添加新行和 读取并删除

    但实际上SVN并不是一个很好的方法来做这种事情。也就是说,如果你有一个 work-to-do 文件夹,其中 加法器 添加表示要执行的工作的单个文件。这个 读取并删除 然后可以在工作完成时更新该目录并删除文件。文件的名称可以通过时间戳或类似的东西变得唯一。