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

156

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

Xeoncross
источник

Ответы:

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
Kreshnik
источник
2

Обновление до определенной ревизии:

svn up -r1234 file
Крис
источник
1

Я считаю, что лучший способ просмотреть ревизии - это использовать программу / приложение, которое облегчит вам задачу. Мне нравится использовать trac: http://trac.edgewall.org/wiki/TracSubversion

Он предоставляет отличный браузер SVN и позволяет действительно легко вернуться к вашим ревизиям.

Это может быть немного излишним, чтобы настроить это для одной конкретной ревизии, которую вы хотите проверить, но это может быть полезно, если вы собираетесь делать это много в будущем.

wajiw
источник
1

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

Kheem
источник
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...)

rehctawrats
источник