2010-04-11 17 views
1

Ma question est assez simple et avec le SharpSvn Api, il devrait être facile aussi bien. Voici ce que je faisais:Comment puis-je Différer un référentiel Svn en utilisant SharpSvn

path = "c:\project"; 
using (SvnLookClient client = new SvnLookClient()) 
{ 
    SvnLookOrigin o = new SvnLookOrigin(path); 
    Collection<SvnChangedEventArgs> changeList; 
    client.GetChanged(o, out changeList); // <-- Exception 
} 

et quand je l'appelle le GetChanged, je reçois une exception:

Impossible d'ouvrir le fichier « c: \ projet format \ »: Le système ne peut pas trouver le fichier spécifié.

Alors, il y a peut-être quelque chose qui me manque? Ou peut-être que ce n'est pas la bonne façon de trouver la liste des fichiers et dossiers qui ont été modifiés dans le dépôt local?

Merci d'avance.

Répondre

2

La classe SvnLookClient dans SharpSvn est l'équivalent de l'application console 'svnlook'. C'est un outil de bas niveau qui permet aux hameçons du référentiel d'examiner des transactions spécifiques d'un référentiel en utilisant un accès direct aux fichiers.

Vous souhaiterez probablement utiliser la classe SvnClient pour consulter une feuille de travail et, très probablement, sa fonction Status() ou, dans certains cas, la fonction plus simple GetStatus() pour voir ce qui a changé.

0

Le chemin que le constructeur veut SvnLookOrigin est en réalité:

path = "c:\project\.svn\"; 

C'est, il veut que le répertoire « .svn » spécial non seulement la racine de l'endroit où est vérifié la source vers.

Bien que vous ne voulez probablement écouter Bert et faire quelque chose comme:

path = "c:\project"; 
using (SvnLookClient client = new SvnLookClient()) 
{ 
    SvnLookOrigin o = new SvnLookOrigin(path); 
    Collection<SvnChangedEventArgs> changeList; 
    client.GetStatus(o, out changeList); // Should now return the differences between this working copy and the remote status. 
}