2013-01-11 38 views
2

我錯誤地將文件添加到Xcode中的項目中,並將其推送到服務器。 現在我想刪除它。刪除XCode中的文件格式SVN倉庫

在第一次提交時,從本地項目中刪除文件是否也會將其從遠程存儲庫中刪除?

回答

3

去除Xcode項目的文件是不會從庫中刪除文件做到這一點。如果您想從Xcode中的存儲庫中刪除文件,您必須使用Organizer。

打開管理器,然後單擊管理器頂部的存儲庫按鈕。從管理器左側的存儲庫列表中選擇存儲庫的中繼文件夾。選擇您想要刪除的文件。點擊管理器底部的刪除按鈕,從存儲庫中刪除文件。

+0

此過程不要求提交信息。這很奇怪。如果我使用例如Cornerstone去除文件,那麼在Xcode中,我會在文件的右側看到符號「D」。所以我認爲Xcode應該有一種方法來以正確的方式刪除文件。 – MatterGoal

+0

好的...我看到Xcode自動生成提交消息。像「刪除abc.h」。 謝謝你,這是我需要知道的。 – MatterGoal

+0

在Xcode 5中可以這樣做嗎? –

3

Subversion就像那些羅奇汽車旅館之一:文件檢入,但他們從來沒有退房

一旦你添加一個文件到Subversion,它就在那裏永遠。您可以從版本庫的當前修訂版本中刪除它(通過svn rm命令),但不能完全刪除它。有人總是能夠在日誌中看到它,並且有人可以通過在刪除文件之前檢出該目錄的修訂版來訪問它。

對此功能已經有很多爭論。大多數版本控制系統都有一個刪除某種類型的命令,允許您刪除文件的版本或從存儲庫中完全刪除文件。問題是Subversion不修訂文件 - 它修改整個存儲庫。

我不知道Xcode,所以我幫不了你的確切步驟。但是,Xcode中必須有一個Repository視圖,就像Eclipse中的Repository視圖或一系列處理倉庫的子命令一樣(很像Eclipse的Team命令)。你應該能夠從那裏刪除文件,然後提交你的修改。

這將從最新版本的代碼(以及將來的版本)中刪除該文件。但是,它仍然存在於存儲庫中,所以有人可以通過歷史日誌找到它,然後在刪除文件之前檢出版本庫。如果此文件包含瑞士銀行帳號,則說明您遇到了麻煩。


注意:有一種方法可以從Subversion完全刪除一個文件,但你必須停機庫,傾倒出來,濾出該文件,然後將資料庫轉儲文件加載到一個新的庫。這通常是不值得的。

+0

羅奇汽車旅館......太有趣了,真的很痛苦:) – BootMaker

0

從Xcode中刪除文件當您提交(使用svn進行測試)時,將從遠程回購中刪除它。

使用Xcode 4.6.3我從我的項目中刪除了一個文件。承諾,它又從我的遠程存儲庫中刪除。當您從Xcode中刪除時,當系統提示您要做什麼時,您必須選擇「移至垃圾箱」。如果選擇「刪除引用」,則該文件將保留在遠程存儲庫中,就像它仍然是項目文件的一部分,但在實際的Xcode項目中未引用。

當你提交你的文件時,對它們上有複選標記的文件進行計數,並查看Xcode在右下角報告的計數,Xcode報告一個額外的文件!這就是刪除的文件,這意味着它提交了更改。

再次提交之前,請轉至終端並點按「cd」轉至您刪除文件的目錄。輸入以下內容:

svn info ./yourFilesName.txt 

你會看到的結果,說:

Schedule: delete 

這意味着,當你做一個提交,該文件會從您的遠程回購被刪除。

+0

你做了什麼意思呢?承諾什麼?下一次提交什麼?全球承諾(非常不可取)? – Miek

+0

通過Xcode進行提交(在文件刪除後進行下一次提交):即使您取消選擇了所有文件(在選擇文件>源代碼管理>提交時出現的窗口中),您仍然會獲得Xcode說的「提交1文件」。因此,無論您是提交所有更改還是沒有選定的文件,它都會提交該文件刪除。但是,如果你是通過終端(或其他應用程序)提交:我不確定提交特定文件是否也會提交文件刪除 - 無論如何針對Xcode的問題,這就是爲什麼我前去回答它!這是否讓Miek更清晰?乾杯 – pnizzle

0

當您從Xcode中刪除,則必須選擇「移動到回收站」,然後提交「.xcodeproj」文件