2011-09-08 130 views
10

我想提交我的修改CVS倉庫時如何解決的問題,但我得到了以下錯誤:提交更改CVS

RCS file: /opt/CZarmen/CVS_REPOSITORY/Z_user/lib/python/StudioCustom.py,v 
retrieving revision 1.38 
retrieving revision 1.39 
Merging differences between 1.38 and 1.39 into StudioCustom.py 
M lib/python/StudioCustom.py 

RCS file: /opt/CZarmen/CVS_REPOSITORY/Z_user/menu_scripts/Y/ZExtensions,v 
retrieving revision 1.46 
retrieving revision 1.47 
Merging differences between 1.46 and 1.47 into ZExtensions 
M menu_scripts/Y/ZExtensions 

cvs commit: Up-to-date check failed for `lib/python/StudioCustom.py' 
cvs commit: Up-to-date check failed for `menu_scripts/Y/ZExtensions' 
cvs [commit aborted]: correct above errors first! 

爲什麼它無法提交我的變化?我如何「糾正上述錯誤」?

回答

17

您需要先更新您的工作副本,方法是運行cvs up,因爲有人在處理這些文件時已經更新了這些文件。在提交期間,CVS不能自動合併這些更改。

+1

但是,如果我更新我的工作副本,我將失去我的編輯,不是嗎?我的意思是說,該文件包含「abc」,我想使它成爲「abcd」,但有人已經更新爲「abce」。如果我更新我的工作副本,我的文件將會「abce」,並且「abcd」將會丟失,對嗎? – alwbtc

+0

而且,哪一個是「工作副本」? CVS存儲中的一個,還是我本地計算機中的那個? – alwbtc

+1

工作副本是您想要執行'cvs commit'調用的目錄。服務器部分被稱爲存儲庫。 'cvs update'不會覆蓋你的改變(除非你通過'-C'標誌),但如果你擔心你可以先執行'cvs diff> myChanges.patch'來將修改保存在一個補丁中。 – DarkDust

1

此外,以防萬一您有時可能會錯誤更新您的本地版本。最終的解決方案是:

1. Save your local code to another place manually

2. Revert the files which may has conflict to the HEAD (most latest) version on CVS server.

3. Add back your change to the Reverted file.

對上述方案的概念是從REVERT庫清理所有可能的問題,並獲得了100%的乾淨版本,則加回我們的變化。

它可以解決以下問題,這些問題是由代碼過期/代碼庫造成的。

  1. CVS commit had a conflict and has not been modified
  2. CVS update failed
  3. CVS not sync