Как я могу просмотреть изменения, сделанные после внесения изменений, и проанализировать их для комментариев? - PullRequest
6 голосов
/ 16 ноября 2008

Я надеялся автоматизировать некоторые задачи, связанные с SubVersion, поэтому я получил SharpSvn. К сожалению, я не могу найти много документации для этого.

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

Ответы [ 3 ]

3 голосов
/ 16 ноября 2008

Если вы просто хотите просмотреть SharpSvn, вы можете использовать http://docs.sharpsvn.net/. Документация там далека от завершения, поскольку основное внимание уделяется предоставлению функций. Любая помощь по улучшению документации (или самого SharpSvn) приветствуется; -)

Чтобы использовать сообщения журнала для вашего трекера, вы можете использовать два маршрута:

  1. Хук после фиксации, который обрабатывает изменения по одному
  2. Запланированная служба, которая время от времени вызывает 'svn log -r : HEAD'.

В последних ежедневных сборках SharpSvn есть некоторая поддержка хуков коммитов, но эта часть еще не является действительно стабильной.

Вы можете создать хук post commit (post-commit.exe) с помощью:

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)
    {
       //
    }
  }
}

(Для полного решения вам также необходимо подключить post-revprop-change, поскольку ваши пользователи могут изменить сообщение журнала после первого коммита)

2 голосов
/ 16 ноября 2008
0 голосов
/ 16 ноября 2008

Интересно, не могут ли хуки subversion (на сервере svn) быть другим подходом здесь? Я не пробовал, но CaptainHook предлагает интеграцию с SVN -> .NET.

...