2013-11-04 21 views
1

標題說明了一切。perforce如何清理在不存在的客戶端和不存在的工作區上打開的文件

有一個文件perforce認爲它是由用戶在給定的工作區和給定的更改列表中以獨佔模式打開的,但是工作區和更改列表都不存在。工作區被管理員強制刪除,該文件神奇地從更改列表中消失,然後我們刪除所有其他文件並將其刪除。

文件仍然顯示爲由該用戶在該更改列表上的該工作空間中打開並鎖定。

最有可能損壞Perforce的數據庫,這裏可能的解決方案,在Perforce的論壇,回答說:​​

回答

0

你知道你的管理如何刪除工作區? According to the documentation,刪除工作區應自動恢復任何文件,但將本地文件保留在文件系統上,該文件系統應足夠簡潔以便刪除。

如果問題僅僅是該文件仍然鎖定,然後進行簡單:

p4 unlock -f <file> 
由管理員發出

,應該解決這個問題。

+0

admin做了「p4 client -f -d 」,文件仍然卡住。 – HASM

+0

應該完全做到這一點...你們是否正在運行p4代理或其他任何類似的kooky,還是你在主存儲庫上運行?可能是時間與Perforce提高票... – ninesided

+0

你試過P4解鎖? – ninesided

0

在將軟件倉庫移動到新服務器後,我設置了此標誌,我不建議這樣做。

我在新系統上創建了用戶。 我能看到舊的工作區,之前由於過濾器而隱藏起來。 右鍵單擊工作區,選擇編輯,並在高級選項卡下有一個主機字段,我更改爲匹配當前主機名(包括端口 - 新主機:1666)。 設置連接到用戶/工作區 現在複選標記是紅色的,而不是藍色。 我選擇了每個標記文件,右鍵單擊並選擇「默認安全模式下的解析」。我忘記了圖標是否改變了。 然後我右鍵單擊並選擇恢復如果不更改,並且圖標返回到「文件同步」藍點。完成。

我希望這是有道理的。

0

這聽起來像是服務器的db.locks和db.working表之間的不一致 - 刪除工作空間必須刪除db.working條目而不是db.locks條目(它們總是應該是一次性的)對一的)。

從服務器端有幾個選項來解決這個問題:

p4d -xx db.working db.locks 
p4d -jr jnl.fix 

或:

p4d -xf 925 

也有可能需要經過一定的迴旋從客戶端修復:

p4 set P4CLIENT=CLIENT_NAME (where this is the name of the deleted workspace) 
p4 client 
p4 sync FILE_NAME 
p4 edit FILE_NAME 
p4 revert FILE_NAME 
p4 synC#none 
p4 client -d CLIENT_NAME 

即重新創建打開的文件狀態(相同的軟件倉庫文件和相同的客戶端名稱,以便克ys會匹配),然後將其恢復,以便條目可以正確清理。

相關問題