我有一個關於svn中的BASE版本的問題。我知道它是上次更新運行時的項目的原始版本,svn diff和status基本上是針對此版本運行的。 BASE何時更新?更新運行時是否更新到HEAD?即使在更新期間發生衝突,這總是如此嗎? BASE有什麼衝突?它是否仍然具有最近更新(導致衝突的最新更新之前)的版本,或者即使存在衝突,它是否會更新爲HEAD?
此外,當svn提交運行時,我假設BASE得到更新與我的本地更改,在這一點上BASE,HEAD和我的本地副本都是一樣的?如果提交成功。什麼時候svn BASE變得等於HEAD
25
A
回答
38
頭在庫中的最新版本。 BASE是您從存儲庫獲取的最後一個修訂版本。成功提交或更新後它們是相同的。
當您進行更改時,您的文件與BASE副本不同。當你恢復時,他們會回到匹配BASE修訂版。當您發生衝突時,您不會更新存儲庫。相反,您的文件被認爲仍然是「正在編輯」,就像您正在進行更改一樣。在你解決衝突之後,你基本上決定了最終文件的樣子,然後你按照正常的方式提交它們。所以,衝突就像一個特殊編輯案例。
7
BASE是您的工作副本的修訂版本,因爲它存在於存儲庫中。換句話說,你的修改沒有你所做的改變。所以如果你svn update
一個文件或文件夾頭,然後BASE和HEAD是平等的。
當出現衝突時,BASE將成爲與工作副本衝突的提交之前的修訂。
對項目運行svn info
以查看它是BASE修訂版。
0
理論:成功遞歸更新或切換後,您的所有文件的基本版本將成爲頭。提交或部分更新後,某些文件可能位於HEAD修訂版本中,但是隻有在不跳過文件的更新之後,才能確保所有文件都處於相同版本。 (跳過的原因是沒有版本的障礙或衝突)。
但是,爲什麼你需要知道這一點。 Subversion應該在內部知道這一點,但在大多數情況下,這些知識對於用戶來說應該沒有什麼問題。 (當文件過期時,Subversion會自動發出警告)。
據我所知,唯一一次確實需要確保處於穩定版本的是,當您從工作副本創建分支時。
3
查看日誌時很重要,因爲沒有url的svn日誌顯示您的BASE日誌,但是使用url您的HEAD日誌,這就是爲什麼我總是使用「svn log -rHEAD:1」查看所有更改。
相關問題
- 1. 什麼時候|不等於|?
- 2. 爲什麼在base 17中-9 base 10等於a7ffda89?
- 3. 重構在什麼時候變得不值得?
- 4. 從什麼時候以及爲什麼SVN Author與SVN登錄不同?
- 5. 變量變量:什麼時候有用?
- 6. 什麼時候「==」運算符不等於「is」運算符? (蟒蛇)
- 7. 什麼時候值得壓縮ViewState?
- 8. 什麼時候贏得Netfix獎?
- 9. 什麼是SVN,GIT,mercurial等?
- 10. 什麼時候或爲什麼是等於不是在SQL查詢中不等於相反?
- 11. Railties - 什麼時候使用
- 12. intn_t什麼時候使用它,什麼時候不使用
- 13. 什麼時候變得正常化與明星幫助表現?
- 14. 增加PHP memory_limit。它在什麼時候變得瘋狂?
- 15. 什麼時候代碼庫變得龐大而笨拙?
- 16. 它什麼時候變得矯枉過正?
- 17. 什麼時候WPF裝飾圖層第一次變得可用?
- 18. 什麼時候使用Ruby和什麼時候使用PHP
- 19. 什麼時候加入名字,什麼時候不加入?
- 20. 鑑於什麼時候測試 - 我需要一個「什麼時候」?
- 21. 什麼時候變長數組合法?
- 22. 什麼時候釋放變量decodeSet1?
- 23. SQL Server CASE什麼時候不使用CASE什麼時候
- 24. 什麼時候應該使用AWS,什麼時候不使用
- 25. 什麼時候multimap優先於map?
- 26. 什麼時候使用__proto__和什麼時候使用原型
- 27. 什麼時候使用borrow = True用於theano共享變量?
- 28. $什麼時候變成本地可用於控制檯?
- 29. 什麼時候'System.ExecutionEngineException'ocurs?
- 30. 什麼時候在SVN回購中查看TRUNK與FULL PROJECT?
儘管不一定在提交之後,但它們在更新之後仍然是相同的,不過一定要簡短。考慮目錄和「混合版本工作副本」。 – bendin 2009-04-14 09:13:05
顯然創建這些「混合版本工作副本」 - 這意味着你可以創建一個提交,而不需要完全知道發生了什麼 - 是「Subversion的基本規則」之一的結果。 – 2009-10-14 10:07:07