Как оформить конкретную версию Subversion из командной строки?
Я хочу оформить конкретную ревизию папки в Subversion с помощью командной строки.
Я не вижу опции для указания номера ревизии в TortoiseProc.exe
,
TortoiseProc.exe /command:checkout <url>
Как получить ревизию, которую я хочу? Является TortoiseProc.exe
правильный инструмент для того, что я хочу сделать?
10 ответов
Если вы уже проверили его на месте, вы можете cd
где это проверено, затем используйте этот синтаксис:
$ svn up -rXXXX
ref: извлечение определенной ревизии из subversion из командной строки
Или
svn checkout url://repository/path@1234
или же
svn checkout -r 1234 url://repository/path
Любая причина для использования TortoiseProc вместо обычной командной строки SVN?
Я бы использовал:
svn checkout svn://somepath@1234 working-directory
(чтобы получить ревизию 1234)
Вы никогда не должны использовать TortoiseProc.exe в качестве клиента Subversion для командной строки! TortoiseProc следует использовать только для автоматизации TortoiseSVN GUI. Смотрите примечание в руководстве TortoiseSVN:
Помните, что TortoiseSVN является клиентом с графическим интерфейсом, и в этом руководстве по автоматизации показано, как сделать так, чтобы диалоговые окна TortoiseSVN отображали вводимые пользователем данные. Если вы хотите написать скрипт, который не требует ввода, вам следует использовать официальный клиент командной строки Subversion.
Используйте клиент Subvsion командной строки svn.exe. С помощью клиента командной строки вы можете запустить
Оформить рабочую копию в редакции REV:
svn checkout --revision REV https://svn.example.com/svn/MyRepo/trunk/
svn checkout https://svn.example.com/svn/MyRepo/trunk/@REV
Обновите вашу локальную рабочую копию до версии REV:
svn update --revision REV
Экспортируйте (то есть загрузите) файл или ветку разработки в редакции REV:
svn export --revision REV https://svn.example.com/svn/MyRepo/trunk/
svn export https://svn.example.com/MyRepo/trunk/@REV
Вы можете заметить, что с svn checkout
а также svn export
Вы можете ввести номер REV как --revision REV
аргумент и как конечный @REV
после URL. Первый называется оперативной ревизией, а второй называется ревизией колышка. Прочтите SVNBook для получения дополнительной информации о концепции колышков и оперативных ревизий.
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 извлекается в текущий каталог.
Я считаю, что синтаксис для этого /rev:<revisionNumber>
Документацию для этого можно найти здесь
Вы могли бы попробовать
TortoiseProc.exe /command:checkout /rev:1234
получить ревизию 1234.
Я не уверен на 100% /rev
опция совместима с checkout
, но я получил идею из некоторой документации TortoiseProc.
Вы должны будете использовать SVN напрямую:
svn checkout URL[@REV]... [PATH]
а также
svn help co
дает вам немного больше помощи.
Похоже, вы можете использовать браузер хранилища. Нажмите кнопку ревизии в правом верхнем углу и измените ее на нужную вам ревизию. Затем щелкните правой кнопкой мыши свой файл в браузере и используйте "Копировать в рабочую копию...", но измените имя файла, которое он выберет, чтобы избежать конфликта.