How can I view the changes made after a revision is committed and parse it for comments?

StackOverflow https://stackoverflow.com/questions/293582

  •  08-07-2019
  •  | 
  •  

Question

I was hoping to automate some tasks related to SubVersion, so I got SharpSvn. Unfortunately I cant find much documentation for it.

I want to be able to view the changes after a user commits a new revision so I can parse the code for special comments that can then be uploaded into my ticket system.

Was it helpful?

Solution

If you just want to browse SharpSvn you can use http://docs.sharpsvn.net/. The documentation there is far from complete as the focus is primarily on providing features. Any help on enhancing the documentation (or SharpSvn itself) is welcome ;-)

To use log messages for your issue tracker you can use two routes:

  1. A post-commit hook that processes changes one at a time
  2. A scheduled service that calls 'svn log -r <last-retrieved>:HEAD' every once in a while.

The last daily builds of SharpSvn have some support for commit hooks, but that part is not really api-stable yet.

You could create a post commit hook (post-commit.exe) with:

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

(For a complete solution you would also have to hook the post-revprop-change, as your users might change the log message after the first commit)

OTHER TIPS

I wonder whether subversion hooks (at the svn server) might not be another approach here? I have not tried it, but CaptainHook appears to offer svn->.NET hook integration.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top