Получить данные журнала для определенного номера ревизии в хуке после фиксации с SharpSVN? - PullRequest
5 голосов
/ 07 августа 2009

Я пытаюсь написать хук после фиксации, используя SharpSVN, но не могу понять, как получить информацию о наборе изменений, используя SharpSVN, учитывая номер ревизии и путь к репо. Любые идеи очень ценятся.

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

В подключаемых клиентах вы, скорее всего, захотите использовать SvnLookClient, который напрямую обращается к хранилищу. В этом примере (скопировано из другого вопроса здесь) я также использую класс SvnHookArguments для анализа аргументов хука.

static void Main(string[] args)
{
  SvnHookArguments ha;
  if (!SvnHookArguments.ParseHookArguments(args, SvnHookType.PostCommit, false, out ha))
  {
    Console.Error.WriteLine("Invalid arguments");
    Environment.Exit(1);
  }

  using (SvnLookClient cl = new SvnLookClient())
  {
    SvnChangeInfoEventArgs ci;
    cl.GetChangeInfo(ha.LookOrigin, out ci);

    // ci contains information on the commit e.g.
    Console.WriteLine(ci.LogMessage); // Has log message

    foreach(SvnChangeItem i in ci.ChangedPaths)
    {
       //
    }
  }
}
0 голосов
/ 08 августа 2009

Требуется метод GetLog .

SvnRevision rev(123);
client.GetLog(uri, new SvnLogArgs(rev), out logitems); // uri is your url to the repo.

Это может быть не совсем точно (нет смысла! Как я могу написать C # без этого :(), но это примерно то, что вы хотите.

...