web-dev-qa-db-ja.com

SVN情報には、古いリビジョン番号が現在のリビジョンとして表示されます

SVNリポジトリがあります。最近変更をコミットしたとき、反映されている現在のリビジョン番号は620です。

Transmitting file data ...
Committed revision 620.

ただし、次にrunsvn 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リポジトリは620ですが、svn infoは、現在の回転数が584であることを示しています。また、svn logは、現在の(最新の)回転数として584も表示します。

WindowsでTortoiseSVNを介してSVNログを見ると、現在のリビジョンとしてリビジョン620が正しく表示されます。

どのようにsvn infoおよびsvn log仕事?

5
Jake Wilson

Svninfoコマンドが現在の作業ディレクトリのリビジョンを表示している可能性がありますが、変更された1つまたは複数のファイルをコミットすると、そのコミットの出力にそれらのファイルの新しいリビジョンが表示されます。 584は、フォルダの最後に変更/更新されたリビジョンになります。

フォルダでsvn updateを実行し、svn infoを再実行してみてください。フォルダの残りの部分を最大620にする必要があります

7
SmallClanger

Subversionが示しているのは、リビジョン584をチェックアウトしたことです。情報はサーバーからではなく、.svn/entriesファイルから直接取得されます。

これは、可能な限りリポジトリサーバーに情報を要求しないというSubversionの基本設計に由来します。ユーザーがたまたまリモートで作業していて、リポジトリサーバーへのネットワーク接続がない場合に、ユーザーがSubversionの多くの能力を利用できるようにすることが決定されました。

  • コミットしたばかりのファイルの1つでsvn infoを実行すると、そのファイルがリビジョン620であることがわかります。
  • svn info http://www.site.com.testing/repos/site.com/trunkを実行した場合、サーバーと通信しているため、最後のリビジョンがリビジョン620であることがわかります。
  • svn updateを実行してからsvn infoを実行した場合、作業ディレクトリがリビジョン620であることがわかります。

簡単な質問:いくつかのファイルをコミットしましたか、それとも作業ディレクトリ全体をコミットしましたか?変更されたファイルをコミットで指定した場合、これは理にかなっています。 Subversionは、作業ディレクトリのルートにある.svn/entriesファイルを更新することを知りませんでした。ただし、すべての変更をコミットした場合でも、これを確認しました。すべての変更をコミットするたびに、svnupを実行することにしました。

覚えておいてください:これはバグではありません。機能です。

8
David W.