2010-07-20 70 views
0

我們使用subversion來跟蹤我們的代碼,只是在我們兩個人之間共享代碼。但是,當我們在下一次提交之前同時添加或刪除文件時,我們遇到了一個問題。看起來,每當我們與羣&文件混淆,項目包下的project.pbxproj將被修改,顛覆無法照顧。因此該項目無法打開。Subversion,xcode和project.pbxproj的問題

我的猜測是project.pbxproj跟蹤組和文件的排列方式。我如何在Subversion下進行這項工作?這是一個文本文件,但不知何故,它似​​乎並沒有被視爲如此。

回答

0

首先,.pbxproj文件是否被損壞,或者您所做的更改沒有正確反映在它中? (即如果你刪除了一個文件,但沒有.pbxproj文件中的更新,它是否拒絕加載?)

如果.pbxproj文件是文本,你可以告訴subversion通過設置來存儲它svn:minme-type屬性。

將其設置爲文本類型將使您可以更好地進行合併,因此無論誰承諾首先保存更改,然後當其他人更新其工作副本時,更改將合併到文件中。您應該在合併發生時檢查更改,即使顛覆擅長於此,它只是一個計算機進程,並且不會按照您的預期偶爾執行。

+0

它看起來像我至少在其中一個選項中被損壞。它提供了三種選擇,不是用我的確切措辭,但是(1)保留本地更改,(2)用存儲庫版本覆蓋本地文件,以及(3)關閉xcode。如果我們關閉Xcode它不會打開,我們必須手動刪除它並從命令行更新內容。然後Xcode將以存儲庫的文件層次結構打開。 – huggie 2010-07-20 13:23:44

+0

這聽起來更像是合併工具踢入並告訴你它不能執行合併,因爲存在衝突(即,你們都改變了同一行 - 工具無法知道使用哪條線)。關閉xcode並嘗試在文件上使用TortoiseSVN。還將其設置爲文本MIME類型,您將擁有更好的合併支持。 – gbjbaanb 2010-07-20 15:04:11

1

首先,「Project.pbxproj」是一種跟蹤您的XCode包更新的文件,例如添加,刪除,移動的任何新文件。

所以你必須提交這個文件,當你提交你的源代碼。

如果更新後無法打開項目,這是因爲您的「Project.pbxproj」文件與先前的提交發生衝突。因此,您必須通過編輯&來解決問題。

通常當發生衝突時,SVN會添加3個額外的文件。

  1. 您的衝突文件。
  2. 你自己的文件。 (.mine)
  3. svn中最新提交的文件。
  4. 您工作過的舊版本文件。

您需要手動比較並解決問題。

其他更好的方法是,保留最新提交的文件&刪除衝突,您自己的文件&舊版本的文件。將最新提交的文件重命名爲project.pbxproj

現在,您可以在衝突文件被刪除時打開xcode項目。

只要確保你添加了&就可以刪除以前在最後一次提交&衝突之前完成的文件。現在,最新的提交文件將對您的項目進行更改。您現在可以將該項目提交到您的存儲庫。

希望它是有道理的。