Check-out Strategy | 第一次build | 第n次build(除第一次) |
Use 'svn update' as much as possible | 將workspace下的所有文件清空,然后從svn上check out一份完整的項目到workspace下 | update前不會revert |
Always check out a fresh copy | 刪除workspace下的所有文件,然后重新check out一份完整的項目到workspace下。 | |
Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update' | update前先刪除unversioned/ignored文件 | |
Use 'svn update' as much as possible, with 'svn revert' before update | update前先revert |
各選項測試結果如下:
-
1、Use‘svn update’ as much as possible
-
第一次發布的時候,會把工作目錄下的所有文件清空,然后check-out一份完整的項目到工作目錄下;
-
以后更新的時候,不會判斷已有文件是否在svn里存在。比如工作目錄下的文件123在svn里不存在,那么更新的時候不會刪除123。
-
不會判斷工作目錄下的文件是否被改動,只會判斷svn是否有新版本需要更新。比如工作目錄下的文件zzz.txt內容為zzz,svn上的zzz.txt內容為空,如果svn上zzz.txt沒有新版本,則在更新的時候不會更新zzz.txt,也就是說如果手動修改了工作目錄下的文件,如果此文件在svn上沒有出現新版本,就不會更新。一旦svn上的zzz.txt有新版本后就會更新工作目錄的zzz.txt,這時工作目錄下會生成如下幾個文件:zzz.txt、zzz.txt.mine、zzz.txt.r223、zzz.txt.r224,其中zzz.txt.r223為svn上老版本、zzz.txt.r224為svn上新版本、zzz.txt.mine為工作目錄上的zzz.txt的副本、zzz.txt記錄了文件變化。
-
svn上刪除了文件,更新的時候,工作目錄里的此文件也會被刪除。但是如上例中的zzz.txt手動修改過,已經和svn上的不一樣了,這時將不會被刪除。
-
-
2、Alwayscheck out a fresh copy
-
第一次發布的時候,會把工作目錄下的所有文件清空,然后check-out一份完整的項目到工作目錄下;
-
每一次更新的時候,都會先清除工作目錄下的所有文件,然后重新check-out一份完整的項目到工作目錄下。
-
-
3、Emulateclean checkout by first deleting unversioned/ignored files,then ‘svn update’
-
第一次發布的時候,會把工作目錄下的所有文件清空,然后check-out一份完整的項目到工作目錄下;
-
以后更新的時候會判斷工作目錄下的文件是否在svn里存在,如果不存在則刪除,如果存在且有新版本則更新。
-
會判斷工作目錄下的文件是否被改動,不管有沒有新版本,都會還原為svn上的最新版本。
-
svn上刪除了文件,更新的時候,工作目錄里的此文件也會被刪除。
-
-
4、Use‘svn update’ as much as possible,with ‘svn revert’ before update
-
第一次發布的時候,會把工作目錄下的所有文件清空,然后check-out一份完整的項目到工作目錄下;
-
以后更新的時候不會判斷工作目錄下的文件是否在svn里存在。
-
會判斷工作目錄下的文件是否被改動,不管有沒有新版本,都會還原為svn上的最新版本。
-
svn上刪除了文件,更新的時候,工作目錄里的此文件也會被刪除。
-