2010-06-23 12 views
5

Używam funkcji członka Export(), aby uzyskać pliki w konkretnych wersjach, które działają, ale z jakiegoś powodu w innych przypadkach tak nie jest. Dla wszystkich zmodyfikowanych ścieżek wydaje się działać jednak z usuniętymi, a czasami dodanymi plikami w tej wersji, otrzymuję wyjątek stwierdzający, że nie ma pliku przy użyciu adresu URL. Kiedy używam TurtoiseSVN "Copy Revision to ..." na tych ścieżkach, to działa dobrze i zastanawiam się, czy brakuje mi czegoś z SharpSVN, chciałbym pełne wersje na rewizję wszystkich zmodyfikowanych plików. Herezje ogólna idea mojego kodu:Dlaczego SharpSVN SvnClient.Export (...) nie zawsze znajduje pliki, które powinny tam być?

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); 
    } 
} 

Każda pomoc lub sugestie będą mile widziane, dzięki.

Odpowiedz

2

Znalazłem, że używanie SvnUriTarget zamiast tylko uri z SvnExportArgs pozwoliło mi uzyskać prawidłowe informacje. Nie jestem pewien, dlaczego są różne, ale działa.

więc zamiast Export powyżej użyłem:

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

Odpowiedź znalazłem w link text

2

Klient linii poleceń ma takie samo zachowanie. Co się dzieje, że adresy URL wskazujące na plik mogą przychodzić i odchodzić. Oznacza to, że adres URL wskazujący plik, który został usunięty, jest nieprawidłowy, chyba że określisz, że chcesz używać starszego adresu URL. Nazywa się to rewizją peg.

Przeczytaj na peg revisions w svnbook.

Powiązane problemy