2016-03-02 5 views
0

Je suis en train de faire diff - summumize en forte svn via date. MAIS la révision de début ne devrait pas être la première révision après la date de début (au moins c'est ma compréhension de la commande diff avec des dates comme drapeaux) mais avec la première révision avant la date de début.SharpSvn obtenir les changements entre les révisions par date, avec start -1/Svn diff --summarize/

pour la syntaxe de getdiffsummary (sharpsvn équivalent à diff --summarize) qoutesource

using (var client = new SvnClient()) 
{ 
    var location = new Uri("http://my.example/repos/trunk"); 
    client.DiffSummary(new SvnUriTarget(location, 12), new SvnUriTarget(location, SvnRevision.Head), 
         delegate(object sender, SvnDiffSummaryEventArgs e) 
         { 
         // TODO: Handle result 
         }); 
} 

Le problème est, je ne sais pas comment obtenir la révision avant la date donnée.

Le ObjectBrowser m'a donné:

SharpSvn.SvnUriTarget.SvnUriTarget (System.Uri, System.DateTime)

Le problème est, à la différence d'un objet de révision où je pouvais le faire « révision b - 1 " la date changerait juste.

Des idées?

+0

Oh désolé, je comprends mal. Vous voulez que la révision en cours que vous regardez à la précédente de cet endroit, pas de la révision tête en arrière 1. Je n'ai aucune idée, d'autant plus que l'utilisation de SvnRevision.Previous ne semble pas fonctionner du tout pour DiffSummary. – icepicker

+0

Je suis actuellement en train de tester par blame, -> obtenir révision après date, revenir en arrière 1 révision et en utilisant celui-là pour le blâme. – gismo

Répondre

0

Ceci est ma solution jusqu'à présent. J'ai oublié de le poster =)

 private static SharpSvn.SvnRevision TimeToPreRevision(DateTime date, Uri link, SharpSvn.SvnClient client) 
    { 
     SvnRevision retr = new SvnRevision(); 
     DateTime retr_date = new DateTime(); 
     SvnLogArgs args = new SvnLogArgs { Start = date}; 
     client.Log(link, args, delegate (object sender3, SvnLogEventArgs e) 
     { 
      if (e.Time.Date < date.Date) 
      { 
       if(retr.Time < e.Time) 
       { 
        retr = e.Revision; 
        retr_date = e.Time; 
       } 
      } 
     }); 
     return retr; 
    }