Come posso Diff un repository SVN usando SharpSvn
Domanda
La mia domanda è molto semplice e con la SharpSvn Api, dovrebbe essere facile come bene. Ecco quello che ho fatto:
path = "c:\project";
using (SvnLookClient client = new SvnLookClient())
{
SvnLookOrigin o = new SvnLookOrigin(path);
Collection<SvnChangedEventArgs> changeList;
client.GetChanged(o, out changeList); // <-- Exception
}
e quando chiamo il GetChanged, ottengo un'eccezione:
Impossibile aprire il file 'c: \ progetto \ format':. Il sistema non può trovare il file specificato
Quindi, forse c'è qualcosa che mi manca? O forse non è il modo giusto per fare scoprire l'elenco dei file e delle cartelle che sono stati modificati nel repository locale?
Grazie in anticipo.
Soluzione
La classe SvnLookClient nel SharpSvn è l'equivalente per l'applicazione console 'svnlook'. E 'uno strumento di basso livello che consente ai ganci repository per esaminare le operazioni specifiche di un repository utilizzando accesso diretto ai file.
Probabilmente si desidera utilizzare la classe SvnClient di guardare un WorkingCopy e molto probabilmente il suo status () o in alcuni casi più semplice GetStatus (funzione per vedere cosa è cambiato).
Altri suggerimenti
Il percorso che il costruttore SvnLookOrigin vuole in realtà è:
path = "c:\project\.svn\";
Cioè, vuole che speciale ".svn" directory non solo la radice in cui la sorgente è estratto da.
Anche se che probabilmente non vuole ascoltare Bert e fare qualcosa di simile:
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.
}