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

364

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

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

TortoiseProc.exe /command:checkout <url>

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

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
источник

Ответы:

469

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

$ svn up -rXXXX

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

rogerdpack
источник
По какой-то причине это ничего не делает для меня. Все еще в старой ревизии.
Игорь Ганапольский
2
@IgorGanapolsky Вы локально изменили файл, который пытаетесь обновить?
Как вы делаете hard reset? (Игнорирование конфликтов?)
Дилип Радж Барал
313

Или

svn checkout url://repository/path@1234

или

svn checkout -r 1234 url://repository/path
pix0r
источник
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 для получения дополнительной информации о концепции колышков и оперативных ревизий .

bahrep
источник
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 в текущий каталог.

Эрик Лещинский
источник
6

Я считаю, что синтаксис для этого /rev:<revisionNumber>

Документацию для этого можно найти здесь

Стюарт Томпсон
источник
3

Вы могли бы попробовать

TortoiseProc.exe /command:checkout /rev:1234

получить ревизию 1234.

Я не уверен на 100%, /revсовместим ли этот вариант checkout, но я понял эту идею из некоторой документации TortoiseProc .

системная пауза
источник
2

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

user1240259
источник
1

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

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

а также

svn help co

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

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

Перейдите в папку и используйте команду:

svn co {url}
jsduniya
источник