2013-03-18 93 views
1

(我使用perforce插件的eclipse工作)。Perforce:使用「工作區中的版本不是最新版本」提交文件?

我的工作區有一個Perforce庫相關聯後,所有的文件得到了狀態「版本中的工作空間是不是最新版本」(黃色三角形)....

當一個文件有這樣的地位,提出是爲殘疾人這個文件。

當我做「同步與車廠」的一個項目,所有這些文件顯示衝突圖標(即使在沒有衝突......)。

衝突?這是否意味着我需要解決?

這裏是如何做到的決心: http://www.perforce.com/perforce/doc.current/manuals/p4guide/05_resolve.html

問題是...是「解決」 Perforce的覆蓋在我的工作區,在庫中的文件中的所有文件。因此,在將它關聯到perforce之前,我對工作區所做的每一項更改都沒有了。

什麼其實我是想實現的是周圍的其他方法:在提交我的工作區,庫中的所有文件。即覆蓋倉庫。

我該怎麼做?

回答

0

如果Perforce的說,你不能提交,因爲「版本中的工作空間是不是最新的版本」,那麼這意味着你必須打開要編輯的文件已經改變,由別人提交的,即你在一個工作舊版本的文件。 你絕對不應該試圖強制你的(舊)版本在倉庫中較新的版本之上。 你真的需要解決。 Perforce不會「覆蓋」您的工作區中的所有文件並放棄您的更改。

對於合併(解決),你可以使用Eclipse內置的合併工具或p4merge(從Perforce公司)。

+0

當我對已更改的文件進行「解析」時,Perforce確實會覆蓋它。謝天謝地,我支持了我的工作空間。它只會在第一次覆蓋 - 但它仍然不是我想要發生的事情。我想強制舊版本的原因是,現在我是唯一一個在該項目上工作的人..所以我的更改實際上是最新的版本。 – rapt 2013-03-18 13:12:24

+0

如果perforce做到了這一點,那麼我認爲您在更改文件時並未標記要編輯的文件。 Perforce依賴於瞭解哪些文件可用於更改。如果您使用eclipse並將您的項目連接到perforce客戶端/工作區,則會自動發生這種情況。 – pitseeker 2013-03-19 10:30:25

0

我不認爲你可以實現你的Perforce想要什麼。您需要將已更改的文件複製到安全位置,然後解析/恢復所有文件以刪除衝突/過期標誌。完成後,將您的更改複製並提交。這很痛苦,但在進行更改之前,您應該先與Perforce連接。

1

至於其他的答案說,大部分的最好的辦法是用Perforce公司的工作流程工作,提前退房的工作區,並進行更改那裏,而不是先做出改變,然後再創建工作區的時間。但是,有時候,您確實需要打破Perforce的工作流程並覆蓋軟件倉庫中的更改。如果你打算這麼做,那麼你需要格外小心,以免重蹈覆轍。 (即使在一個人的項目中,您可能已經忘記了您檢查了某些東西,因此請在提交之前仔細查看差異。)

最簡單的事情是,當Perforce告訴您有衝突時,解決但保持你的改變。在Perforce文檔鏈接中,這是「解決,接受你的」,而不是接受Perforce認爲合理的合併。從命令行,這是p4 resolve -ay。它在p4v GUI中的表述有點不同,並且可能在Eclipse插件中有不同的措辭(我沒有真正使用它)。

另一個選項,如果您從早期版本中檢出文件,並且您希望更新到最新版本而不作任何更改,則可能會使用該選項,那就是告訴Perforce更新元數據,以便它認爲你有一個更新版本的文件,而不會實際改變你的任何文件。從命令行,這是p4 sync -k (whatever you want to sync)。如果使用不當,這也是危險的。

相關問題