Клиент SvnLook специально предназначен для использования в хуках репозитория. Это позволяет получить доступ к незафиксированным ревизиям и поэтому требует других аргументов. (Это эквивалент SharpSvn команды 'svnlook'. Если вам нужен эквивалент 'svn', вам стоит взглянуть на SvnClient).
Происхождение вида:
* Путь к хранилищу и имя транзакции
* или путь к хранилищу и номер редакции
например. в хуке перед фиксацией ревизия еще не зафиксирована, поэтому вы не можете получить к ней доступ по общедоступному URL, как вы это обычно делаете.
Документация гласит (в pre-commit.tmpl):
# The pre-commit hook is invoked before a Subversion txn is
# committed. Subversion runs this hook by invoking a program
# (script, executable, binary, etc.) named 'pre-commit' (for which
# this file is a template), with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] TXN-NAME (the name of the txn about to be committed)
SharpSvn поможет вам, предложив:
SvnHookArguments ha;
if (!SvnHookArguments.ParseHookArguments(args, SvnHookType.PostCommit, false, out ha))
{
Console.Error.WriteLine("Invalid arguments");
Environment.Exit(1);
}
Который разбирает эти аргументы для вас. (Что в этом случае очень просто, но есть более продвинутые хуки. И хуки могут получать новые аргументы в более новых версиях Subversion). Нужное вам значение находится в свойстве .LookOrigin объекта ha.
Если вы просто хотите получить сообщение журнала для определенного диапазона ревизий (1234-4567), вам не следует смотреть на SvnLookClient.
using(SvnClient cl = new SvnClient())
{
SvnLogArgs la = new SvnLogArgs();
Collection<SvnLogEventArgs> col;
la.Start = 1234;
la.End = 4567;
cl.GetLog(new Uri("http://svn.collab.net/repos/svn"), la, out col))
}