代码之家  ›  专栏  ›  技术社区  ›  Phil Harvey

“svn switch”是否删除过本地添加的文件?

  •  13
  • Phil Harvey  · 技术社区  · 16 年前

    我需要澄清一下“SVN开关”的行为。我使用的是SVN版本1.6.5。

    通过阅读本手册,我对行为的理解是将保留局部变化。所以我希望本地添加的文件在 svn switch .

    但是,我和我的同事看到了几个实例,在这些实例中,新文件会被交换机删除。不幸的是,我们不知道如何复制这个。

    在某种情况下(特性或已知缺陷)是否 向量交换网络交换机 删除本地添加的文件?

    3 回复  |  直到 8 年前
        1
  •  11
  •   Ivan Krechetov    16 年前

    我认为,当您有未提交的更改时,切换是一个坏主意。首先,将本地更改提交到具有 svn cp . <branch URL> ,然后切换。可能有 非常 否则你会遇到棘手的情况。

    想象一下,在您要切换到的版本中,您在本地添加的文件已经存在,并且完全不同。或者,如果您添加了一个完整的文件目录,而该目录无法与您要切换到的版本中的文件充分合并,该怎么办?你真的想要那场大冲突吗?

    有“S”状态显示 svn status 也就是说,源树的不同部分有不同的版本。当SVN在切换期间与本地更改混淆时,就会发生这种情况。它只是在一个开关的中间被打破,然后它是一个痛苦的脖子恢复。在我身上发生过几次。这就是为什么我总是确保在运行之前我的工作副本没有本地修改的原因。 svn sw .

        2
  •  7
  •   Andrew Aylett    16 年前

    它不应该删除本地添加的文件或未版本化的文件。边缘案例是指通过开关移动或删除目录的地方,但是在这种情况下应该存在树冲突。

    如果我认为可能存在树冲突,我经常做的就是保存当前更改的一个补丁。然后我知道我可以把我的工作副本擦掉,在必要的时候重新开始,而不会丢失我的工作。

    svn diff > ../somewhere/safe/save.diff
    # Break stuff
    patch -p0 < ../somewhere/safe/save.diff
    
        3
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    8 年前

    行为 svn switch 非常类似于 svn update :如果交换机的目标是某个路径,其中某个文件相对于工作副本丢失,则这些文件将从工作副本中删除。

    就像伊凡说的,你应该提交你的更改,然后切换。