2013-06-13 46 views
0

我對subversion/tortoiseSVN有點新,並且對如何處理配置文件有點困惑,這些文件在開發和部署中應該有所不同,我認爲我的問題源於這個問題。爲什麼TortoiseSVN顯示我的工作文件夾的「修改」狀態圖標,如果有修改,但被忽略的文件?忽略配置文件問題

我希望中央存儲庫具有與部署配置文件相匹配的config.php文件。因此,一旦存儲在存儲庫中並更新了部署服務器,我隨後在開發中更新了我的工作文件夾,並右鍵單擊該文件,併爲此文件選擇了「unversion並添加到忽略列表」。現在,它顯示已刪除的符號和整個工作目錄被修改。當我選擇提交所有內容時,提交對話框將config.php文件顯示爲已刪除,但在「忽略提交」列表中,以便它不會被提交。

首先,它是如何到達「ignore-on-commit」列表的?

其次,應該在那個清單上?就像我說的,我不想覆蓋存儲庫上的config.php文件,但我不想完全刪除config.php文件。我只是希望它在我的開發結賬中有所不同。我是否正確地做這件事?

最後,爲什麼狀態圖標沒有改變?

謝謝。

回答

0

您不能忽略已存在於存儲庫中的文件。

重讀第一句話。

忽略版本控制系統中的某些內容表示忽略版本控制系統中尚未存在的文件。例如,假設您有一個編譯過程,將*.c文件存儲在您的存儲庫中,並將它們編譯爲*.o文件。 *.o文件只是編譯過程的一部分,您當然不希望它們意外添加到您的存儲庫中。

如果您忽略*.o文件,並且您在Subversion中執行了svn status,則Subversion不會報告這些文件。如果你做了svn add *,Subversion不會將這些文件添加到你的倉庫。這就是在版本控制系統中忽略的意思。

如果修改一個文件,你不想改變它,當你做一個承諾,你有幾個選擇:

  • 使用變更表組織你的文件。
  • 列出您要在svn commit命令行上提交的文件。
  • 在執行提交之前恢復不想更改的文件。在我提交之前,我總是會做一個svn status,以確保我不會意外修改一個我不想更改的文件。

我不知道你怎麼能變更列表中的TortoiseSVN工作,但把你不想提交的文件。您要忽略的文件,轉換爲更改列表。問題是你不能在否定變更表上操作。例如:

$ svn --cl ignore foo bar barfoo 
$ svn status 
M blat 
M floob 

--- Changelist 'ignore' 
M foo 
M bar 
M barfoo 

我不能說:

$ SVN! --cl foo提交

並且只提交對floob和blat的更改(除非我也爲這些文件創建更改列表)。

相反,你會恢復你的修改列表忽略文件,然後提交:

$ svn revert --cl ignore -R . #Reverts all files in the changelist 
$ svn commit --keep-changelists #Commits all other files 

注意,--keep-changelist選項將保持你把變更表上,即使他們有變更列表中的文件沒有變化。這樣,您可以在下一次提交之前再次恢復它們。

+0

謝謝你的解釋! –

相關問題