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

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

Ответ 1

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

svn update -r 666 file

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

svn cat -r 666 file | less

Ответ 2

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

Вы можете сделать следующее:

$ svn diff -r34 file

Ответ 3

Обновить до определенной версии:

svn up -r1234 file

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

Чтобы прямо ответить на вопрос о том, как "получить копию этого файла":

svn cat -r 666 file > file_r666

затем вы можете просмотреть вновь созданный file_r666 с помощью любой программы просмотра или сравнения, например,

kompare file_r666 file

красиво показывает различия.

Я опубликовал ответ, потому что принятые команды ответа фактически не дают копию файла и потому что svn cat -r 666 file | vim не работает с моей системой (Vim: Error reading input, exiting...)