簡體   English   中英

是否需要在使用svn delete之后立即提交?

[英]Necessity to commit immediately after using svn delete?

每次簽出后,我的項目中的“ build”目錄都需要刪除並重新創建。 這是一個漫長而繁瑣的過程,並且會產生大量不必要的提交:

$ svn delete build
$ svn commit -m "build directory deleted..." [Unnecessary commit]
$ svn update
$ mkdir build [to create a fresh empty directory of build]
$ cd build [perfom operations in build]
$ svn add build
$ svn commit -m "New revision having following XYZ changes"

問題:是否有一種解決方法來避免在刪除后立即進行冗余提交? 我只想刪除要刪除的“ build”目錄中與我的項目相關的所有內容,以便創建新版本。 我認為應該執行的以下步驟會帶來問題

$ svn delete build
$ rm -r build
$ mkdir build
$ svn add build
$ svn commit -m "New revision having following XYZ changes"

在存儲庫中通常不需要構建目錄。 理想情況下,您應該做的是1)使用svn:ignore屬性從svn忽略構建目錄,2)使用構建腳本刪除或創建構建目錄

這樣,您還可以避免在存儲庫中創建或刪除構建目錄的任何(不需要的)提交。

傳統方法是檢出並構建,但不提交生成的構建工件。 而是創建一個標簽(在svn中,您可以使用svn cp來執行此操作,通常是在tags / _build_id_上)。 如果您需要跟蹤用於構建的編譯器版本等,則可以生成並提交帶有必要信息的文本文件。 這樣,您至少在理論上可以根據需要重新生成一個相同的內部版本。 將構建工件復制到單獨的存檔中仍然是個好主意,但這通常不受版本控制。

從您的svn命令中,我猜您想提交一個沒有本地build目錄的代碼版本,然后從svn repo(也沒有build dir)進行更新,然后重新創建“ build”目錄並將其保存資料庫。

如果必須在每次“ svn更新”之后重新創建構建目錄(例如,由於“ svn更新”而有所更改),則可以在第一次提交時使用svn忽略來忽略“ build”目錄,但是可以'逃脫重新創建它。

如果您可以在“ svn更新”之后重新使用舊的“ build”目錄,則可以通過在提交之前/之后設置和重置svn ignore屬性來節省時間:

$ svn propset svn:ignore build
$ svn commit -m "build directory deleted..." [Unnecessary commit]
$ svn update    
$ svn propdel svn:ignore build
$ svn commit -m "New revision having following XYZ changes"

我自己還沒有嘗試過,但是應該可以:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM