Вызовите библиотеку SVN, установленную версию TortoiseSVN использует программно - PullRequest
5 голосов
/ 31 августа 2010

Я пишу утилиту, которая автоматизирует некоторые процессы SVN. На всех машинах, на которых будет развернута эта утилита, установлен TortoiseSVN, однако они могут отличаться от указанных версий. Я понимаю, что TortoiseSVN статически связан с определенной версией библиотеки SVN и часто обновляется.

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

Есть ли способ получить прямой доступ к библиотеке SVN, которую TortoiseSVN использует внутри себя? Или проверки SVN гарантированно (вперед и назад) совместимы между незначительными различиями версий? Обновление бинарных файлов SVN, которые использует моя утилита для основной версии SVN, не будет большой проблемой. Я просто не хочу поручать каждому пользователю использовать определенную версию TortoiseSVN.

Для тех, кто предлагает использовать инструменты командной строки для SVN:

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

Ответы [ 4 ]

2 голосов
/ 01 сентября 2010

Вы можете использовать API sharpsvn для прямого доступа к серверу SVN.

Это xcopy, развертываемый и изолированный от других двоичных файлов svn или tortoisesvn.

1 голос
/ 01 сентября 2010

Я привык к установке, в которой используется TortoiseSVN, а также к некоторым сценариям, использующим отдельный клиент командной строки svn.

Как правило, у нас нет проблем.

Основная совместимостьбеспокойство, если формат рабочей копии изменяется.Это произошло между svn 1.5 и 1.6.

Клиент svn 1.5 не мог работать с проверкой 1.6.

См .: http://subversion.apache.org/docs/release-notes/1.6.html

В прошлых проектах, которые я также использовалинструмент командной строки TortoiseProc - обратите внимание, что его можно вызывать способом, который устраняет взаимодействие с пользователем, если не возникает ошибок, см. / closeonend в http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html

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

0 голосов
/ 01 сентября 2010

Для установки TortoiseSVN используется инструмент командной строки TortoiseProc.exe. См. Раздел «Приложение D. Автоматизация TortoiseSVN» в справочной книге TortoiseSVN (которая также включена в установку TortoiseSVN).

0 голосов
/ 31 августа 2010

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

Если ваши приложения просты, возможно, вы сможете выполнить инструкции командной строки?

Другой вариант - попытаться написать свой код для чтения версии SVN, а затем обработать различия в вашем коде.Это было бы кошмарным ИМХО.

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