Linux
SVN 資訊將舊版本號顯示為目前版本
我有一個 SVN 回購。當我最近送出更改時,反映的目前修訂號為 620:
Transmitting file data ... Committed revision 620.
但是,如果我然後執行,
svn info
我會得到以下資訊:Path: . URL: http://www.site.com.testing/repos/site.com/trunk Repository Root: http://svn.server/repos/site.com Repository UUID: a9c3a166-39f6-4cfb-8622-fd24eb11034b Revision: 584 Node Kind: directory Schedule: normal Last Changed Author: bob Last Changed Rev: 584 Last Changed Date: 2012-03-26 18:32:55 -0400 (Mon, 26 Mar 2012)
所以送出一些東西告訴我目前的 SVN repo 是 620,但
svn info
告訴我目前的 rev 是 584。也svn log
顯示 584 作為目前(最近的)rev。如果我在 Windows 中通過 TortoiseSVN 查看 SVN 日誌,它會正確顯示修訂版 620 作為目前修訂版。
我是否遺漏了有關如何
svn info
工作的svn log
內容?
svninfo 命令可能會顯示目前工作目錄的修訂版,而當您送出一個或多個更改的文件時,該送出的輸出會顯示這些文件的新修訂版。584 將是文件夾的最後更改/更新版本。
嘗試
svn update
在文件夾上執行一個並重新執行svn info
. 它應該使文件夾的其餘部分達到 620
Subversion 向您顯示的是您已簽出修訂版 584。資訊直接來自
.svn/entries
文件,而不是來自伺服器。這源於 Subversion 的基本設計,即盡可能不從儲存庫伺服器請求資訊。如果他們碰巧在遠端工作並且沒有與儲存庫伺服器的網路連接,則允許使用者擁有 Subversion 的大量功能。
- 如果您
svn info
對剛剛送出的文件之一執行 a 操作,您將看到該文件的版本為 620。- 如果您執行了 a
svn info http://www.site.com.testing/repos/site.com/trunk
,您將看到最後一個修訂版是修訂版 620,因為它正在與伺服器通信。- 如果您執行了 a
svn update
,然後執行了 asvn info
,您將看到您的工作目錄位於修訂版 620。只是一個簡單的問題:您送出了幾個文件,還是送出了整個工作目錄?如果您在送出中指定了已更改的文件,這將是有意義的。Subversion 不會知道更新
.svn/entries
工作目錄根目錄中的文件。但是,即使我送出了所有更改,我也看到了這一點。每當我送出所有更改時,我都會進行 svn up。請記住:這不是錯誤。這是一個特點。