¿Cómo puedo ver los cambios realizados después de confirmar una revisión y analizarla para obtener comentarios?

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

  •  08-07-2019
  •  | 
  •  

Pregunta

Esperaba automatizar algunas tareas relacionadas con SubVersion, así que obtuve SharpSvn. Lamentablemente no puedo encontrar mucha documentación para ello.

Deseo poder ver los cambios después de que un usuario confirme una nueva revisión para poder analizar el código en busca de comentarios especiales que luego se pueden cargar en mi sistema de tickets.

¿Fue útil?

Solución

Si solo desea navegar por SharpSvn, puede usar http://docs.sharpsvn.net/ . La documentación allí está lejos de ser completa ya que el enfoque se centra principalmente en proporcionar funciones. Cualquier ayuda para mejorar la documentación (o SharpSvn en sí) es bienvenida ;-)

Para usar mensajes de registro para su rastreador de problemas, puede usar dos rutas:

  1. Un enlace posterior a la confirmación que procesa los cambios de uno en uno
  2. Un servicio programado que llama 'svn log -r < last-recuperado >: HEAD' de vez en cuando.

Las últimas compilaciones diarias de SharpSvn tienen algún soporte para commit hooks, pero esa parte aún no es api-estable.

Puede crear un enlace post commit (post-commit.exe) con:

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

(Para una solución completa, también debería conectar el post-revprop-change, ya que sus usuarios podrían cambiar el mensaje de registro después de la primera confirmación)

Otros consejos

Me pregunto si los enlaces de subversión (en el servidor svn) podrían no ser otro enfoque aquí. No lo he probado, pero CaptainHook parece ofrecer svn - > integración de enganche .NET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top