Как получить конкретную версию Subversion из командной строки?


364

Я хочу оформить конкретную версию папки в Subversion с помощью командной строки.

Я не вижу опции для указания номера ревизии в TortoiseProc.exe,

TortoiseProc.exe /command:checkout <url>

Как получить ревизию, которую я хочу? Является ли TortoiseProc.exeправильный инструмент для того, что я хочу сделать?

Ответы:


469

Если вы уже проверили его локально, то вы можете найти cdего там, а затем использовать этот синтаксис:

$ svn up -rXXXX

ref: извлечение определенной ревизии из subversion из командной строки


По какой-то причине это ничего не делает для меня. Все еще в старой ревизии.
Игорь Ганапольский

2
@IgorGanapolsky Вы локально изменили файл, который пытаетесь обновить?

Как вы делаете hard reset? (Игнорирование конфликтов?)
Дилип Радж Барал

313

Или

svn checkout url://repository/path@1234

или

svn checkout -r 1234 url://repository/path

3
Я должен был удалить пробел после -r, чтобы "-r1234" работал для меня.
Элайджа Лофгрен

257

Любая причина для использования TortoiseProc вместо обычной командной строки SVN?

Я бы использовал:

svn checkout svn://somepath@1234 working-directory

(чтобы получить ревизию 1234)


36

Никогда не используйте TortoiseProc.exe в качестве клиента Subversion для командной строки! TortoiseProc следует использовать только для автоматизации графического интерфейса TortoiseSVN. Смотрите примечание в Руководстве TortoiseSVN :

Помните, что TortoiseSVN является клиентом с графическим интерфейсом, и в этом руководстве по автоматизации показано, как заставить диалоговые окна TortoiseSVN отображать вводимые пользователем данные. Если вы хотите написать скрипт, который не требует ввода, вам следует использовать официальный клиент командной строки Subversion.

Используйте клиент svn.exe из командной строки Subversion . С клиентом командной строки вы можете

Вы можете заметить, что с помощью, svn checkoutи svn exportвы можете ввести номер REV в качестве --revision REVаргумента и в конце @REVпосле URL. Первый называется оперативной ревизией, а второй называется ревизией колышка. Читайте SVNBook для получения дополнительной информации о концепции колышков и оперативных ревизий .


8

SVN Checkout для проверки, где ваш репозиторий находится на другом сервере

Используйте svn logкоманду, чтобы узнать, какие ревизии доступны:

svn log

Какие отпечатки:

------------------------------------------------------------------------
r762 | machines | 2012-12-02 13:00:16 -0500 (Sun, 02 Dec 2012) | 2 lines

------------------------------------------------------------------------
r761 | machines | 2012-12-02 12:59:40 -0500 (Sun, 02 Dec 2012) | 2 lines

Обратите внимание на номер r761. Вот описание команды:

svn export http://url-to-your-file@761 /tmp/filename

Я использовал эту команду специально:

svn export svn+ssh://machines@mywebsite.com/home1/oct/calc/calcFeatures.m@761 calcFeatures.m

Что приводит к извлечению версии 761 calcFeatures.m в текущий каталог.




2

Кажется, вы можете использовать браузер хранилища. Нажмите кнопку ревизии в правом верхнем углу и измените ее на нужную вам ревизию. Затем щелкните правой кнопкой мыши свой файл в браузере и используйте «Копировать в рабочую копию ...», но измените имя файла, которое он выберет, чтобы избежать конфликта.


1

Вам придется использовать SVN напрямую:

svn checkout URL[@REV]... [PATH]

а также

svn help co

дает вам немного больше помощи.


2
насколько я вижу, я думаю, что пример может помочь. Вы включаете или не включаете скобки? как насчет 3 периодов? как насчет пространства после 3-х периодов? Какие символы являются буквальными, а какие заполнителями, а какие являются добавленными символами для заполнителей?
Анбизкад

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