0

私は基本的なSVNリポジトリとこのシナリオを持っています:

ソースコードを更新するためにSVNを使用する共有サーバーがあります。最初に、リポジトリ全体を最新のsvn upリビジョンに更新します。例:12。しかし、誰かが(理由を聞かないでください)たった1つのファイルsvn up -rXXで(XX!= )を使用してから数回経ちます。12

svn up -r10 public/style.css

フォルダに戻りsvn info、リビジョンを使用すると常に12ですが、ルートフォルダとは異なるリビジョンのすべてのファイルを一覧表示する必要がありますか?

私はすべてのファイルをグロブし、svninfoを使用するより良い解決策を探しています:)

4

2 に答える 2

0

まず最初に-あなたが投げ込まれた混乱から抜け出すために、困難な戦いを始めましょう。共有および混合作業コピーのチェーンの上位でリスクを販売できるはずです。

あなたはあなたの作業コピーからこのようなことをすることができます

svn status -v | grep -v 12

作業コピー内のすべてのファイルのリビジョンを一覧表示し、12がないファイルを印刷します

于 2013-02-18T22:16:25.693 に答える
0

ルートフォルダとは異なるリビジョンのすべてのファイルを一覧表示する必要がありますか?

いいえ、これは必要ありません。 「リポジトリリビジョン」(グローバル)と「ファイルリビジョン」(タイムファイル中にバージョン管理および変更されたもの)という用語を混同しないでください。

  • グローバルリビジョンは、ある時点でリポジトリ内のすべてのオブジェクトの履歴のスライスです(リポジトリの変更/リビジョン/に保存されているため、すべてのファイルに影響するわけではないため、リビジョンが異なる場合があります)

  • ファイルリビジョンは、ある時点でのこのファイルの状態です(また、独自のリビジョンが変更されていないファイルは、異なるグローバルリビジョンに存在する可能性があります)。

    svn ls -v http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/

     36 lazybadg              янв 09 11:45 ./
    
     34 lazybadg           42 мар 24  2012 Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt
    
     32 lazybadg           88 дек 27  2011 Hello.de.txt
    
     33 lazybadg           82 фев 28  2012 Hello.en.txt
    
     36 lazybadg           88 янв 09 11:45 Hello.eo.txt
    
     35 lazybadg           90 янв 09 11:35 Hello.fr.txt
    

(ご覧のとおり、トランクファイルのHEADではリビジョンが異なります-そしてそれはOKです)

>svn info http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
...
Revision: 37
...
Last Changed Rev: 36
...

作業コピーを現在のMixedからリポジトリr12の状態に戻したい場合は、svn up -r 12または、12の場合はHEAD-svn up

プロセスのデモンストレーション(上記と同じURLの場合)

>svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
A    trunk\Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt
A    trunk\Hello.en.txt
A    trunk\Hello.eo.txt
A    trunk\Hello.fr.txt
A    trunk\Hello.de.txt
 U   trunk
Checked out revision 37.

私たちのWCを混ぜる

>svn up -r 30 Hello.de.txt
Updating 'Hello.de.txt':
U    Hello.de.txt
Updated to revision 30.

(ファイルをリポジトリリビジョン30の状態に更新しました。Hello.de.txtリビジョンは<= 30である可能性があります)

WCを確認してください

>svn status

(出力なし-WCはクリーンで、頭痛の種なしに更新できます)

純粋なHEADに戻る

>svn up
Updating '.':
U    Hello.de.txt
Updated to revision 37.

(ここでも、37はリポジトリのリビジョンです。この状態では、Hello.de.txtは独自のリビジョン(lsによると32)である可能性がありますが、このリビジョンを正確に知ることはできません。Subversionはこのデータを保存し、必要に応じて使用します。 )。

于 2013-02-19T08:55:49.260 に答える