4

次の形式のリビジョン プレースホルダーを含むファイルがあります。

$Rev: 123456 $

ファイルは変更された場合にのみチェックインされるため、リビジョン番号を更新するためだけにコミットしたい場合は、偽の変更を追加する必要があります (例: スペース、改行、そのようなものを追加する)変更リストでそれを確認してコミットし、探している結果を取得できるようにします。たとえば、リビジョンフラグを変更しても、次のように記述します。

$Rev: 0 $

SVN は、この変更を無視するほど「スマート」です...

これらの「トリック」を使用せずにファイルをチェックインする必要があることをSVN(カメ)に単純に伝える(クリーンな)方法はありますか?

注: リビジョン番号がビルドで使用されるため、これが必要です。これにより、実行時にビルドのバージョンを明確に識別できます。

4

2 に答える 2

0

別のアプローチは、プレースホルダー (空のテキスト ファイル) を同じ場所に単純に追加し、この新しいファイルを変更されていないファイルと共にコミットすることです。後でテキスト ファイルを削除できます。

于 2014-01-18T00:11:25.620 に答える
0
  1. リンクされたトピックで提案されているように、コミットする前にファイルの一部のプロパティをいつでも変更できます。しかし、コンテンツで遊びたい場合は、TortoiseSVN FAQ からの回答の一部が役立ちます (「Subversion は、次のアプローチでファイルが変更されたかどうかを判断します...」から始めます)。
  2. 反対側から言えば、現在のワークフローを再考し、適切なジョブには適切なものを使用することを真剣に提案します。グローバル リポジトリ全体のリビジョンを取得するために、ファイルのキーワード (file-revision) に依存しないでください。

「リポジトリ リビジョンの取得」タスクには、少なくとも 3 つの異なるツールがあり、そのうちの 2 つは任意のSubversion の一部であり、1 つは TortoiseSVN の一部です。

  • バージョン。svnversion <Path-to-WC>WCリポジトリにリンクされたグローバルリビジョン番号を出力し、装飾のないきれいな番号で、何にでも含める準備ができています

>svnversion

37

(WC 内では、パスをスキップしました。"." と見なされます)。出力は、smth に変換する必要があります。「レポの最新リビジョンは 37 です。ワーキング コピーはクリーンです / コミットされていない変更はありません。スペア ディレクトリはありません。WC の状態は最近再現できます /」

>svnversion

37M

同じ作業コピーですが、変更が実行され、まだコミットされていません

  • 情報。svn info <TARGET>ターゲットに関するより詳細な情報を出力しますが、作業コピーだけでなく、リポジトリ URLでも使用できます

>svn info

...

Revision: 37

...

Last Changed Date: 2013-01-09 11:45:39 +0600 (Ср, 09 янв 2013)

Revisionこの場合、フィールド (およびおそらく) の値のみLast Changed Dateが重要ですが、このデータは出力から抽出する必要があります

于 2013-03-16T10:12:57.220 に答える