Как просмотреть более старую версию файла SVN?


156

У меня есть файл SVN, в котором сейчас отсутствует некоторая логика, поэтому мне нужно вернуться примерно на 40 ревизий к тому времени, когда в нем была необходимая логика. Кроме попыток просмотреть различия в файле в командной строке ( очень трудно для чтения ), есть ли способ получить копию этого файла для проверки, чтобы я мог изучить ее для восстановления частей?

Ответы:


237

Вы можете обновить до старой версии:

svn update -r 666 file

Или вы можете просто просмотреть файл напрямую:

svn cat -r 666 file | less

13
svn cat -r 666 file | lessидеально, так что я могу прочитать это с vim!
Xeoncross

4
@sillyMunky Попробуй svn cat | vim -. Если подсветка синтаксиса vim не включается автоматически, делайте :set syntax=java(или любым другим языком).
Джон Кугельман

1
Большое спасибо, Джон, на самом деле я нахожусь на Debian и обнаружил, что есть небольшой пакет с подсветкой синтаксиса, называемый 'source-highlight', так что less может автоматически подобрать подсветку синтаксиса (на самом деле я теперь называю это "lesss для различий").
sillyMunky

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 , вы можете просматривать их без использования команды cmd. В файле просто щелкните правой кнопкой мыши => Team => Переключиться на другую ветку / тег / ревизию. Помимо поля редакции, вы нажимаете кнопку выбора, и вы увидите все версии этого файла.


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...)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.