【问题标题】:SVN collaboration failingSVN 协作失败
【发布时间】:2011-06-15 16:44:07
【问题描述】:

今天是我玩 SVN 的第一天。 但是有一种情况我无法解决:

我在 2 台电脑上结帐 第一台电脑的电脑更改了文件中的某些内容并提交。 然后第二台电脑尝试提交:

Commit failed (details follow):
File '/classes/ghjs.html' is out of date

我必须在第二台电脑上运行更新,它从 pc 1 获取新文件,然后我可以再次正确提交,但是在更新之前所做的更改会丢失。

如果您必须先提交/更新才能编写一行代码,否则 SVN 就不是那么棒了,否则处理同一文件的其他人没有您的最新版本。

我知道没有“实时”协作的想法,但是如果您使用旧版本,则必须有一些东西,而不是更新,您可以手动将更改“移植”到最新版本。

我使用“版本”作为 svn 客户端和 textwrangler 作为编辑器来编辑 php 代码。

【问题讨论】:

  • 您应该使用 Subversion 命令行客户端尝试上述所有操作,看看会发生什么。 (更改将自动合并,否则文件将在 PC 1 上的工作目录中保持冲突。)可能是版本行为不当或您使用不正确。

标签: php svn version-control versions


【解决方案1】:

我必须在第二台电脑上运行更新, 它从 pc 1 获取新文件,然后我 可以再次正确提交,但是 更新前所做的更改会丢失

不,他们没有迷路。它们被合并到您的本地副本中(正如您所期望的那样),并且在更新后您可以提交将它们添加到存储库中。如果合并导致冲突,您将收到通知,但仍不会丢失任何工作。

如果您在更新后丢失了更改,那么您做错了什么——我对版本一点也不熟悉,所以我不能说。

【讨论】:

【解决方案2】:

svn update 上不应丢失对 pc 2 上文件的本地更改。它们将与 pc1 上所做的更改合并并提交。如果对有冲突的同一行进行更改,您将无法提交,直到冲突解决,选择保留任一文件版本的更改。不过,您不应该在更新后丢失本地更改。

【讨论】:

    【解决方案3】:

    然后您在 PC 2 上“更新”,它应该将 PC 1 的更改合并到 PC 2 的工作副本中。如果文件是在 PC 2 上编辑的,那么它应该干净地合并它们,或者产生合并冲突,您可以手动解决它们。

    这样做是为了让 SVN 有一个地方可以合并这 2 个更改。合并是在工作副本中完成的,而不是在服务器上。

    如果您在更新时从 PC2 所做的更改丢失,并且没有显示合并错误,那么这确实可能是个问题。

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多