Comment puis-je Diff un dépôt SVN en utilisant SharpSvn
Question
Ma question est tout à fait simple et avec le SharpSvn Api, il devrait être facile aussi bien. Voici ce que je faisais:
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, peut-être il y a quelque chose qui me manque? Ou peut-être pas la bonne façon de faire connaître la liste des fichiers et des dossiers qui ont été modifiés dans le référentiel local?
Merci à l'avance.
La solution
La classe SvnLookClient dans SharpSvn est l'équivalent à l'application de la console 'svnlook'. Il est un outil de bas niveau qui permet de regarder des crochets du référentiel des opérations spécifiques d'un dépôt en utilisant un accès direct aux fichiers.
Vous voulez probablement utiliser la classe SvnClient pour regarder un workingcopy et très probablement son statut () ou, dans certains cas plus simple fonction GetStatus () pour voir ce qui a changé.
Autres conseils
Le chemin que le constructeur veut SvnLookOrigin est en fait:
path = "c:\project\.svn\";
Autrement dit, il veut que spécial « svn » répertoire non seulement la racine de l'endroit où la source est extrait à.
Bien 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.
}