2010-11-18 5 views
131

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

ответ

204

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

svn update -r 666 file 

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

svn cat -r 666 file | less 
+12

'СВН кот -r 666 файла | меньше' идеально, поэтому я могу прочитать его с помощью vim! – Xeoncross

+4

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

+1

Большое спасибо, Джон, на самом деле я на debian, и я обнаружил, что есть небольшой небольшой пакет подсветки синтаксиса под названием «источник-подсветка», поэтому меньше можно выделить подсветку синтаксиса с автоматическим пикапом (на самом деле я теперь отношусь к меньшим для различия). – sillyMunky

2

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

svn up -r1234 file 
1

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

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

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

+1

Я бы предложил RapidSvn – Strae

1

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

4

Также интересно сравнить файл текущей рабочей ревизии с тем же файлом другой версии.

можно сделать следующим образом:

$ svn diff -r34 file 
Смежные вопросы