2010-06-01 135 views
3

有沒有人曾在烏龜移動文件,併成功提交的經驗,後來才犯了不同的變化,被告知樹衝突的地方:烏龜SVN樹衝突與自己

  1. 在文件的原始位置已被刪除,但烏龜被標記爲丟失
  2. 該文件在其新位置存在,但標記爲已添加。

(我用龜SVN,我們有客戶端和服務器> 1.60)

沒有其他人,或者更改目錄或文件(根據SVN日誌)。

  1. 這是怎麼發生的?
  2. 有沒有辦法避免它發生?
  3. 如果確實發生,是否有更好的方法來解決問題,而不是刪除整個文件夾並再次更新?

回答

3
  1. 聽起來也許你使用Windows資源管理器「移動」命令,而不是龜「移動」命令移動的文件。前者只是在文件系統中移動文件而不更新Subversion樹(從版本控制中刪除舊文件並將舊文件的歷史記錄鏈接到新文件)。

  2. 始終使用TortoiseSVN的「移動」命令,或者如果你想有一個移動沒有歷史文件,然後複製使用Windows資源管理器中,用龜添加新的版本,然後刪除舊版本的龜。

  3. 您可以右鍵單擊舊文件的父文件夾,選擇「檢查修改」,然後從版本控制中刪除標記爲缺失的文件。

+1

不對。我用右鍵單擊拖動「用svn移動」。 3.只解決了一半的問題,因爲我仍然無法提交,因爲該文件正在等待檢查回購認爲已經簽入。我可以解決這個明顯的錯誤的唯一方法是刪除文件夾並更新。 – 2010-06-03 12:22:47

+0

@Jesse,當你在移動後成功提交時,你從什麼級別提交?工作副本的頂層,子目錄還是什麼? – 2010-06-03 14:49:46

+0

我從我的源代碼樹的根提交。 – 2010-06-10 15:17:54

1

聽起來像你提交了文件,但沒有它被移動到/從它的目錄。你也需要提交目錄。

+0

不,我從我的源代碼樹的根目錄提交。按照慣例。 – 2010-06-10 15:17:38

+2

感謝您的-1。我很欣賞這種努力。 – zvolkov 2010-06-10 16:43:28

+0

+1 cos可以幫助其他人:-) – Brian 2010-08-20 16:29:51

0

我通過r-點擊文件夾,選擇'rename',並使用「newpath \ to \ folder」作爲參數進入樹衝突。經過多次失敗的清理命令和一些其他的東西后,我終於恢復了用理智:

  1. 開放新的乾淨的檢出到其他文件夾
  2. SVN刪除和犯壞了「的新路徑\爲\文件夾」從乾淨的檢出
  3. 選擇「oldpath \文件夾」 R單擊拖動和svn移動到新位置
  4. 立即沒有其他業務承諾改變中間
  5. 去打破籤「oldpath \文件夾」,然後手動複製文件whic h被刪除或留在'newpath \ to \ folder'
  6. 添加手動複製的文件,就好像它們是新的一樣。

手動更新文件的無縫歷史鏈被打破,但至少我現在可以繼續工作。