0

好的,我做了一个

svn更新

在我的仓库中,但一个特定的文件似乎没有更新。我认为这个问题的部分原因是其他人也在处理同一个文件。就像我在处理文件一样,他们显然做了一些重大调整。他们承诺了,我对自己说不用担心我的变化很小。所以我想我会更新以获得最新的东西,让我的更改被覆盖,因为我可以快速重做我的东西。不幸的是,事实并非如此。

当我进行更新时,SVN 显示文件已更新,但是当我打开文件时,没有任何变化。所以我猜SVN足够聪明,不会让我像我希望的那样覆盖我的文件。有了这个,我认为必须有一种方法来重置文件,或者强制它进行更改。我只是不太了解 SVN,无法这样做。

4

2 回答 2

1

如果您先删除文件,然后运行svn update,则该文件将被存储库中的最新文件替换。不能涉及您的更改,因为您先将其删除。然而...

通常,Subversion 会将存储库中的更改合并到您的工作文件中。如果合并成功且没有冲突,您的更改其他更改都将出现在您工作目录中的文件中svn update

于 2012-06-07T00:23:52.580 回答
-1

我认为您对 SVN 的工作方式有一些重大误解。看看 SVN 的书,了解如果 2 个人同时修改同一个文件会发生什么。

在给出答案之前,我将首先指出您问题中的错误:

  1. 你不是svn update在 repo 上执行,你是在你的工作副本上执行
  2. 如果您在本地工作副本中更改了文件 A,而其他人也更改了 A 并提交。当您更新工作副本时,SVN 将尝试合并您的更改,并且更改发生在 repo 中(从您之前的更新/结帐开始)。结果似乎您正在根据最新文件 A 修改文件。它不会覆盖您的本地更改。
  3. 我不相信您的更新后“没有变化”。我打赌你仍然看到你的变化,因此你认为没有变化,对吗?

在谈到错误之后,答案是:如果你想放弃你对某个文件所做的更改,而使用存储库上的文件,你应该使用svn revert.

更新svn revert之前或之后的文件都应该工作。

于 2012-06-07T01:58:16.333 回答