2010-06-23 8 views
5

J'utilise la fonction membre Export() pour obtenir des fichiers à des révisions spécifiques qui fonctionnent, mais pour d'autres, ce n'est pas le cas. Pour tous les chemins modifiés, il semble cependant fonctionner avec les fichiers supprimés et parfois ajoutés dans cette révision. J'obtiens l'exception indiquant qu'il n'y a pas de fichier à l'URL utilisée. Lorsque j'utilise le TurtoiseSVNs "Copy Revision to ..." sur ces chemins, cela fonctionne très bien et je me demande juste s'il me manque quelque chose avec SharpSVN, je voudrais les versions complètes à la révision de tous les fichiers modifiés. Heres l'idée générale de mon code:Pourquoi SharpSVN SvnClient.Export (...) ne trouve pas toujours les fichiers qui devraient être 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); 
    } 
} 

Toute aide ou suggestion serait appréciée, merci.

Répondre

2

J'ai trouvé que l'utilisation d'un SvnUriTarget au lieu de seulement l'URI avec le SvnExportArgs m'a permis d'obtenir les informations correctes. Pas trop sûr de pourquoi ils sont différents mais ça marche.

donc au lieu de l'exportation ci-dessus j'ai utilisé:

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

La réponse que j'ai trouvé à link text

2

Le client de ligne de commande a le même comportement. Qu'est-ce qui se passe, c'est que les URL pointant vers un fichier peuvent aller et venir. Cela signifie que l'URL pointant sur un fichier supprimé est invalide, sauf si vous spécifiez que vous souhaitez utiliser une ancienne URL. C'est ce qu'on appelle une révision de cheville.

Lire sur peg revisions dans le svnbook.

Questions connexes