2009-12-07 13 views
11

私は説明できません。Subversion oddity - svn infoリビジョンがプロジェクトフォルダの最後に変更されたrevより高い

私は自分のプロジェクトの作業コピーを持っています - svn updateを完了しました(リビジョン1895に更新)。最新です。私はプロジェクトフォルダにsvn infoを実行すると、リビジョンは1895ですが、最後に変更改訂は、TortoiseSVNのを使用してログを点検1888年

最後のリビジョン、1895年にsvn logが空である1895年の痕跡として1888を示しています1895と1888との間のsvn diffも空である、すなわち、違いはありません。

私はどうにかして、何も変わっていない不正なリビジョンになったのですか?それは基本的にビルドサーバ(1888年だと思う)を自分のMSBuild SvnVersionタスクと同期させないようにしています(リビジョンは1895だと思います)。

感謝の意を表します。

編集:リビジョンは常に全体のリポジトリの最新のリビジョンが表示されます場合、それはつけませんのMSBuildタスクのようなものは、(svnversion.exeを使用していますが、同様の挙動を示すもの)の正しいリビジョンを表示しないことを意味し複数のプロジェクトの単一リポジトリがある場合は、バージョン番号に「Last Changed Rev」を使用する必要があります。

これで、自分自身のSvnLastChangedRev MSBuildタスクをローリングしました。

+0

実際にはリポジトリ全体であるということはありません。そのリビジョンをチェックアウトすると、正しいコードコピーが得られます。そのプロジェクトを再構築することができます。 CruiseControlのようなものを使用している場合は、変更に基づいてビルドするだけで、そのプロジェクトの新しいバージョンを取得することはありません(チェックアウトされた唯一のものだとします)。 – gregmac

+0

あなたはSvnLastChangedRev MSBuildタスクでどこにいましたか?私は同様の問題を抱えています。 –

+1

@James - はい、私はSvnLastChangedRevを含むCodePlex上で役に立つMSBuildタスクを公開しました。参照:http://zealanditmsbuild.codeplex.com/ –

答えて

20

これは問題ではありません。リビジョン番号はSubversionリポジトリ全体に適用されるため、リビジョン番号は、変更された最後のリビジョン番号よりもリポジトリ内の他の場所の変更により高くなる可能性がありますあなたが作業しているリポジトリのブランチにあります。

あなたはtrunkにコミットする場合は、リビジョン10にリポジトリをもたらし、明確化し、その後branchestagsの変化の全体のスルーはリビジョン1000にリポジトリをもたらすために、その後、10のための「最後の変更のリビジョン」になります。 trunkフォルダですが、リポジトリ全体の現在のリビジョン番号は1000になります。

+0

リポジトリごとにグローバルであるリビジョン番号を知っています。しかし、リポジトリツリーの下の階層レベルの作業フォルダで更新を実行すると、最新のリビジョンにグローバルに更新され、そのパスの最新のものに更新されることに気付かれませんでした。 –

+0

@WimHollebrandseチェックアウト/リポジトリのルートでsvn updateを実行した場合のみ、更新されたリビジョンがグローバルに表示されます。 Subversionは親ディレクトリのメタデータを決して更新しません。 –

関連する問題