Je voudrais ajouter tous les fichiers non versionnés dans un répertoire à SVN en utilisant SharpSVN.Ajouter un fichier en utilisant SharpSVN
J'ai essayé commandes régulières svn sur la ligne de commande abord:
C:\temp\CheckoutDir> svn status -v
Je vois tous subdirs, tous les fichiers qui sont déjà enregistré quelques nouveaux fichiers étiquetée, rien avec le « L « ? » "indication de verrouillage
C:\temp\CheckoutDir> svn add . --force
Il en résulte dans tous les nouveaux fichiers dans les sous-répertoires, qui sont déjà en eux-mêmes le contrôle de version, à ajouter.
Je voudrais faire la même chose avec SharpSVN. Je copie quelques fichiers supplémentaires dans le même répertoire et exécuter ce code:
...
using (SharpSvn.SvnClient svn = new SvnClient())
{
SvnAddArgs saa = new SvnAddArgs();
saa.Force = true;
saa.Depth = SvnDepth.Infinity;
try
{
svn.Add(@"C:\temp\CheckoutDir\." , saa);
}
catch (SvnException exc)
{
Log(@"SVN Exception: " + exc.Message + " - " + exc.File);
}
}
Mais un SvnException est élevé:
- SvnException.Message: copie de travail 'C: \ temp \ CheckoutDir' verrouillé
- SvnException.File: .. \ .. \ .. \ subversion \ libsvn_wc \ lock.c »
Aucune autre instance svnclient est en cours d'exécution dans mon code, je aussi essayé d'appeler
svn.cleanup()
juste avant l'ajout, mais en vain.
Depuis le documentation est plutôt vague;), Je me demandais si quelqu'un ici connaissait la réponse.
Merci d'avance!
Jan
Avez-vous essayé de demander sur les forums de discussion SharpSVN? Vous pourriez probablement obtenir une meilleure réponse là-bas. – hao
Je vais, dans le même temps j'ai regardé dans le code de tests unitaires: http://sharpsvn.open.collab.net/source/browse/sharpsvn/trunk/src/SharpSvn.Tests/Commands/AddTests.cs TestAddDirectoryRecursively fait quelque chose de similaire, mais Ajoute un nouveau dir1 sous WorkingcopyPath et everyting dedans. Je voudrais ajouter tout sous WorkingCopyPath lui-même. – jan