2013-04-11 6 views
0

Я пишу небольшой консольный инструмент на C#, который должен знать номер версии каталога рабочей копии SVN для обработки других данных с этим номером. У меня уже есть поддержка SVN 1.4 до 1.6, напрямую просматривая файл записей во всех каталогах .svn. Но SVN 1.7 изменил это, чтобы использовать в нем один .svn-каталог с базой данных SQLite.Определить версию рабочей копии SVN с C#

Каков наилучший метод определения номера версии рабочего каталога?

Я только что попытался использовать SharpSVN, но это в значительной степени недокументировано, и я не могу понять, как его использовать. Он также очень большой с 5 МБ и потенциально несколькими DLL.

Я не могу найти простой клиент командной строки SVN, который можно свободно скачивать. Кроме того, в прошлый раз, когда я видел его, он был огромным и состоял из множества файлов, которые не совсем переносимы. (Было бы здорово, если бы мой инструмент появился только как один файл .exe.)

Другой вариант - использовать библиотеку SQLite (доступную как отдельную отдельную DLL) и самостоятельно вносить в базу данных. Я уже провел фундаментальные исследования по этому вопросу, но я не уверен, как обнаружить незавершенные изменения.

TortoiseSVN, который, скорее всего, уже установлен на машинах, которые будут использовать мой инструмент, не может использоваться, поскольку он содержит все в одном приложении GUI, а не DLL, которые я мог бы повторно использовать.

+0

Проверьте страницу инструментов командной строки: http://www.visualsvn.com/downloads/ – bahrep

ответ

1

Если вы не хотите SharpSVN и работаете с рабочей копией, то на 99% хосте могут быть SVN-инструменты SVN.

Проверка на svnversion право истребования долга и называют его svnversion <PATH-TO-WC>, выход перехватывать

+0

До сегодняшнего дня я использовал только TortoiseSVN и Ankh, и на моем компьютере не было CLI CLI. Но я заметил, что есть опция настройки для включения двоичных файлов CLI с TortoiseSVN 1.7, поэтому я могу просто придерживаться этого и использовать CLI. Это будет простой процесс установки. Таким образом, вы предлагаете использовать внешний инструмент CLI, это лучший способ, не так ли? – ygoe

+0

@LonelyPixel - не самый лучший из моих POV (внешние зависимости, которые вы не можете решить), но проще всего –

1

Я использую инструмент командной строки Tortoise SVN под названием «SubWCRev» для этой цели (http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html). Он позволяет определять последние версии, дату фиксации и многое другое ... Недостатком этого решения является то, что этот инструмент работает с файлами, поэтому вам нужно будет определить выходной файл файла шаблона и синтаксического анализа. Это работает хорошо для меня.

+1

Без шаблонов и файлов назначения SubWCRev вывод в stdout –

+0

это хороший намек –

Смежные вопросы