2010-06-23 5 views
5

Sto utilizzando la funzione membro Export() per ottenere file a revisioni specifiche che funzionano ma per qualche motivo in altri casi non lo è. Per tutti i percorsi modificati sembra funzionare comunque con i file cancellati ea volte aggiunti in quella revisione ottengo l'eccezione affermando che non è presente alcun file nell'URL utilizzato. Quando uso TurtoiseSVNs "Copia Revisione in ..." su questi percorsi funziona bene e mi chiedo se mi manca qualcosa con SharpSVN, mi piacerebbe le versioni complete alla revisione di tutti i file modificati. Ecco l'idea generale del mio codice:Perché SharpSVN SvnClient.Export (...) non trova sempre i file che dovrebbero essere lì?

if (logentry.ChangedPaths != null) 
{ 
    foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths) 
    { 
     SvnExportArgs ex = new SvnExportArgs(); 
     ex.Revision = revisionNum; 
     client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex); 
    } 
} 

Qualsiasi aiuto o suggerimento sarebbe apprezzato, grazie.

risposta

2

Ho scoperto che l'utilizzo di SvnUriTarget anziché solo l'uri con SvnExportArgs mi ha consentito di ottenere le informazioni corrette. Non troppo sicuro sul perché sono diversi ma funziona.

così invece di esportazione di cui sopra ho usato:

client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex); 

La risposta che ho trovato è stato in link text

2

Il client a riga di comando ha lo stesso comportamento. Quello che sta succedendo è che gli URL che puntano a un file possono andare e venire. Ciò significa che l'url che punta a un file che viene ora eliminato non è valido, a meno che non si specifichi di voler utilizzare un url meno recente. Questa è chiamata una revisione di pegging.

Leggere su peg revisions nello svnbook.

Problemi correlati