问题描述
|
今天是我玩SVN的第一天。
但是1种情况我无法解决:
我结帐了2件
第一台PC的PC更改文件中的某些内容并提交。
然后,第二台电脑尝试提交:
Commit failed (details follow):
File \'/classes/ghjs.html\' is out of date
我必须在第二台PC上运行update,它会从PC 1获取新文件,然后我可以再次正确提交,但是更新之前所做的更改会丢失。
如果您必须先提交/更新,然后才能编写代码,那么SVN并不是很棒,否则其他从事同一文件工作的人没有最新版本。
我了解没有“实时”协作的想法,但是必须有一些东西,如果您使用的是旧版本,而不是更新,则可以手动“移植”对最新版本的更改。
我使用\“ versions \”作为svn客户端,使用textwrangler作为编辑器来编辑php代码。
解决方法
我必须在第二台电脑上运行更新,
它从PC 1获取新文件,然后我
可以再次正确提交,但是
更新前所做的更改将丢失。
不,他们没有迷路。它们被合并到您的本地副本中(正如您期望的那样),并且在更新之后,您可以提交将其添加到存储库中。如果合并导致冲突,则会通知您,但仍然不会丢失任何工作。
如果您在更新后丢失了更改,则您做错了什么-我对Versions一点都不熟悉,所以我不能说。
, PC 2上文件的本地更改不应在on1上丢失。它们将与在pc1上所做的更改合并并提交。如果对冲突中的相同行进行了更改,则在解决冲突之前,您将无法提交,选择保留对两个文件版本的更改。不过,更新后,您不应丢失本地更改。
, 然后,您在PC 2上进行“更新”,它将PC 1的更改合并到PC 2的工作副本中。如果文件是在PC 2上编辑的,则它应该干净地合并它们,或者产生合并冲突,您可以手动解决它们。
通过这种方式,SVN可以合并两个更改。合并是在工作副本中完成的,而不是在服务器上完成的。
如果您在PC2上所做的更改在更新时丢失,并且没有显示合并错误,那么确实可能是一个问题。