Come posso visualizzare le modifiche apportate dopo il commit di una revisione e analizzarle per i commenti?

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

  •  08-07-2019
  •  | 
  •  

Domanda

Speravo di automatizzare alcune attività relative a SubVersion, quindi ho SharpSvn. Purtroppo non riesco a trovare molta documentazione per questo.

Voglio essere in grado di visualizzare le modifiche dopo che un utente ha eseguito una nuova revisione in modo da poter analizzare il codice per commenti speciali che possono essere caricati nel mio sistema di ticket.

È stato utile?

Soluzione

Se vuoi semplicemente navigare su SharpSvn puoi usare http://docs.sharpsvn.net/ . La documentazione è tutt'altro che completa in quanto l'attenzione è principalmente sulla fornitura di funzionalità. Qualsiasi aiuto per migliorare la documentazione (o SharpSvn stesso) è il benvenuto ;-)

Per utilizzare i messaggi di registro per il tracker dei problemi, puoi utilizzare due percorsi:

  1. Un hook post-commit che elabora le modifiche una alla volta
  2. Un servizio programmato che chiama 'svn log -r < last-recupered >: HEAD' ogni tanto.

Le ultime build giornaliere di SharpSvn hanno un po 'di supporto per gli hook di commit, ma quella parte non è ancora api-stabile.

È possibile creare un hook 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)
    {
       //
    }
  }
}

(Per una soluzione completa dovresti anche agganciare il post-revprop-change, poiché i tuoi utenti potrebbero cambiare il messaggio di log dopo il primo commit)

Altri suggerimenti

Mi chiedo se gli hook di sovversione (sul server svn) potrebbero non essere un altro approccio qui? Non l'ho provato, ma CaptainHook sembra offrire svn - > integrazione hook .NET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top