2011-02-23 79 views
3

昨天,我問了a question爲什麼當Subclipse實際上沒有時,Subclipse會出現目錄以包含未提交的更改。答案是在僞目錄.上設置svn:ignore狀態作爲修改計算,但Subclipse沒有顯示任何內容,因爲它不處理.設置SVN忽略是否安全?在應該版本控制的目錄中?

知道原因很好,但問題沒有完全解決。向.僞目錄提交忽略狀態是否安全?我做不是想讓SVN忽略實際的目錄;我只想讓未提交的變更裝飾器消失。 (不,我沒有嘗試過這樣做,我不知道如何徹底恢復變化,如果它證明是有問題的。)

編輯:
正如蒂姆的回答指出的,指責修改的.是誤導。 .僅被標記爲已修改,因爲其中一個子目錄被設置爲svn:ignore;這是真正的變化和根本原因。

+0

另外,有什麼我稱爲僞目錄的適當的術語?很難搜索任何涉及停用詞/特殊字符的內容。 – Pops 2011-02-23 20:34:43

+0

我會考慮。作爲對當前目錄的引用。目錄引用,目錄指針,符號鏈接可能都被認爲是適用的,儘管很多人會因各種原因而不同意他們中的每一個。我個人會認爲僞目錄是可以接受的,因爲它準確地傳達了這個概念,所以它實現了它的目的。 – corsiKa 2011-02-23 20:39:25

回答

4

根據您收到的output of svn diff,您實際上正在爲資源target設置svn:ignore。此屬性信息保存在父版本化資源(在本例中爲項目根目錄.),以便可以將其提交到獨立於本地忽略設置的存儲庫。

鑑於此,是否可以安全地進行財產變更?這取決於你想要做什麼樣的影響。該documentation使得本說明有關svn:ignore屬性:

的svn:ignore屬性是告訴Subversion忽略那些可能存在於該目錄中的每一個用戶的工作副本,文件,比如編譯器輸出的好方法...

因此,通過提交這一變化,你會忽略有效的人誰從倉庫拉項目target資源(前提是該廣告目前未版本控制)。雖然這可能不是您工作場所的政策,但您可能需要避免這種情況。要刪除屬性,您可以採取以下措施之一:

  • 運行svn propdel svn:ignore .從命令行
  • 在Eclipse(與Subclipse的),用鼠標右鍵單擊該項目文件夾,去團隊 - >顯示屬性,請選擇svn:ignore屬性條目,右鍵單擊並單擊刪除屬性

這應該刪除根目錄上的修改通知。關於您以前的問題,如果不是因爲同步視圖中的事實property changes show as normal outgoing changes,問題會更加明顯。如果你打開提交對話框,你應該看到不同的Property Change裝飾器。

不幸的是,這使得您的target資源不受限制。要在Eclipse中解決這個問題,您可以將target添加到被忽略的資源列表中。要獲得此選項,請轉至窗口 - >首選項 - >團隊 - >忽略資源。然後,您可以將「目標」添加到忽略模式列表。如果您希望將全局忽略模式應用於Subversion,則可以修改Subversion configuration fileglobal-ignores設置。

這種方法的問題在於,它忽略了Eclipse工作區中所有項目的target資源或系統中的所有Subversion操作(取決於您選擇的忽略方法)。目前,我無法想出一種方法來逐個地解決這個問題。

+0

偉大的答案,這是不足爲奇,因爲我們正在談論它聊天。一個小問題:刪除忽略屬性將'target'文件夾設置爲尚未處於版本控制下的狀態,該狀態不會從父文件夾的圖標中刪除未提交的更改(AKA髒)裝飾器。 – Pops 2011-02-23 22:11:03

+0

@LordTorgamus正確的說,'target'文件夾將被設置爲版本控制 - 等待直到它被添加到被忽略的資源列表。一旦它在本地被忽略,'?'應該消失並且父文件夾應該恢復到最新狀態(儘管使用Eclipse它可能需要刷新)。 – 2011-02-23 22:14:15

相關問題