古いバージョンのSVNファイルを表示するにはどうすればよいですか?


156

私はいくつかのロジックが欠けているSVNファイルを持っているので、必要なロジックがあった時点まで約40のリビジョンに戻る必要があります。コマンドラインでファイルのdiffを表示する(非常に読みにくい)以外に、そのファイルのコピーを取得して確認し、それを調べてパーツを回復する方法はありますか?

回答:


237

古いリビジョンに更新できます:

svn update -r 666 file

または、ファイルを直接表示することもできます。

svn cat -r 666 file | less

13
svn cat -r 666 file | less私はそれをvimで読むことができるので完璧です!
Xeoncross 2010年

4
@sillyMunkyお試しくださいsvn cat | vim -。vimの構文強調表示が自動的に実行されない場合は、実行します:set syntax=java(またはいずれかの言語)。
John Kugelman、2012年

1
Johnに感謝します。実際、私はdebianを使用していて、「source-highlight」という素敵な小さな構文強調表示パッケージがあるので、自動的に構文強調表示を自動的に取得できません(実際には、区別するためにこれをエイリアスにエイリアスしています)。
sillyMunky 2012年

2
svn cat -r 666 file> file_666.jsファイル全体を表示したい場合:p
Parijat Kalia

またはbashを使用している場合 vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r

5

現在作業中のリビジョンのファイルを別のリビジョンの同じファイルと比較することも興味深いです。

次のように実行できます。

$ svn diff -r34 file


1

リビジョンを表示する最良の方法は、あなたにとって簡単なプログラム/アプリを使用することだと思います。私はtracを使いたいです:http : //trac.edgewall.org/wiki/TracSubversion

それは素晴らしいsvnブラウザーを提供し、あなたのリビジョンを遡ることが本当に簡単になります。

確認したい特定のリビジョンに対してこれを設定するのは少しやり過ぎかもしれませんが、将来的にこれを頻繁に実行する場合に役立ちます。


1

Subclipseの最新バージョンを使用すると、コマンドプロンプトを使用せずに実際に表示できます。ファイルで、右クリック=>チーム=>別のブランチ/タグ/リビジョンに切り替えます。リビジョンフィールドのほかに、[選択]をクリックすると、そのファイルのすべてのバージョンが表示されます。


1

「そのファイルのコピーを取得する」方法の質問に直接回答するには:

svn cat -r 666 file > file_r666

次にfile_r666、任意のビューアまたは比較プログラムを使用して、新しく作成したものを表示できます。

kompare file_r666 file

うまく違いを示しています。

回答を投稿しました。これは、受け入れられた回答のコマンドが実際にファイルのコピーを提供svn cat -r 666 file | vimせず、システムで動作しないためです(Vim: Error reading input, exiting...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.