2011-11-25 45 views
1

我在svn版本控制下有一些軟件。它由我想在版本控制下創建的源代碼以及我沒有添加到svn的一些構建和輸出文件組成。svn:如何檢查我提交的修訂是否完成

當我提交一個新的修訂版本時,我想確保它對任何檢查出來的人都有效。例如,我可能忘了svn-添加一些重要的文件,我新創建和其他文件現在使用。由於我在我的工作目錄中有文件,對我來說一切正常,但對於檢查新修訂版的用戶來說並非如此。

我不確定是否有一個svn命令刪除所有本地文件不受版本控制,但如果存在,刪除這些文件不是一個選項。

如果有人瞭解我的問題是否有一個簡單的方法來克服它?

(我能想出是檢查出的最後修訂在臨時目錄中創建一個SVN差異補丁,最好把它應用到臨時目錄,看看它的工作原理)

結論:

根據hmjd的建議檢查列表中所有不受版本控制的文件,並結合設置一致的svn:ignore作爲Dialecticus的建議,我應該保存不會丟失任何重要的文件。

回答

0

我使用TortoiseSVN並更新所有(子)文件夾中的svn:ignore屬性,以便所有應忽略的文件都被忽略。在提交之前很容易發現新的未版本控制的文件。

對於像Visual Studio .sln/.csproj這樣的項目文件中包含的文件,理論上可以創建一個腳本來解析這些文件並驗證項目文件中是否存在未版本控制的文件,並中止提交案件。

0

在向版本庫提交修訂版本(或在提交之前)後,可以查看svn status命令的輸出。所有可能未提交的文件都將標有問號(?)。您將看到您忘記隨構建和輸出文件一起提交的文件。

4

使用continuous integration tool類似Jenkins,HudsonCruiseControl,它可以在完成每次提交後自動檢出並構建。如果構建中的某些內容被破壞,它可以設置爲向您發送郵件。

+0

感謝您爲我的注意力引入了持續集成工具,之前我不知道它們。至於我正在開展的項目,很不幸,我不是決定使用哪種版本控制軟件的人。 –

+0

無需更改您的VCS(svn)。事實上,所有CI工具都可以和顛覆結合使用。就你的情況而言,CI只會像一個同事一樣行事,除了結賬和編譯之外別無他法,並且在出現問題時向你發出警告。 –

0

我可能會錯過一些東西,但是...爲什麼不在硬盤上的任何其他位置檢查新的工作副本?這樣你也可以測試硬編碼路徑。

+0

我看到我的標題是有點誤導性的,因爲我希望在提交之前檢查一切正在工作。據我瞭解,如果我檢查一個新的工作副本,它將是最後一次修訂(沒有我想提交的更改)。 –

相關問題