Вызов Tortoise из командной строки и сборка нового кода (как узнать, обновила ли черепаха что-нибудь)? - PullRequest
0 голосов
/ 31 мая 2010

Я пишу командный файл, который должен обновить исходные файлы от черепахи и - если что-то новое было получено - построить решение. Должно быть очень простым заданием.

Мой пакетный файл выглядит так (я удалил ненужные файлы)

set updatepath=%1
set solution=%2
set output=%3.txt

call TortoiseProc.exe /command:update /path:%updatepath% /closeonend:2    
call %devenv% %solution% /Build Debug /Out %output%

Теперь я хотел бы знать, действительно ли черепаха получила новый код для меня, а не сборку, если она этого не сделала. Как мне это сделать?

Я использую Windows Vista

(Пакетный скрипт вызывается из другого пакетного скрипта примерно 7 раз - по одному для каждого проекта, который мне нужно обновить и - возможно - построить).

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

TortoiseProc не предназначен для этого вида автоматизации:

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

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html

Итак, сначала получите клиент командной строки (SlikSVN - мой любимый). Обратите внимание, что update в TortoiseProc не выводит диалог так, как вы используете, но вызывая его семь раз, вам лучше использовать клиент командной строки svn.

Во-вторых, используйте svn status -u, чтобы увидеть, есть ли обновления в репо. --show-updates или -u ставит звездочку рядом с устаревшими элементами. Вы можете, вероятно, grep это.

Если это так, используйте svn update для обновления вашей рабочей копии.

1 голос
/ 31 мая 2010

Использование черепахи, вероятно, не лучший способ решения проблемы.

Для начала, это поможет узнать, какой SCM вы используете (Mercurial, Subversion, CVS ...). Большинство (все?) Инструментов SCM поставляются с интерфейсом командной строки, в отличие от расширения панциря черепахи. Если вы использовали, например, mercurial, вот как вы должны проверить, нужно ли обновлять локальные файлы:

d:\projects\myproj> hg incoming <main repository path>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...