Comment utiliser SharpSVN pour ajouter par programme un dossier à la liste des ignorés?Comment utiliser SharpSVN pour programmer "ajouter à la liste d'ignorés" pour un dossier
EDIT: Tentative:
Voici ce que j'ai essayé
svnClient.GetProperty(new SvnUriTarget("svn://svn.foo.com/" + DatabaseName + "/"), SvnPropertyNames.SvnIgnore, out ignores);
ignores += " Artifacts";
var args = new SvnSetPropertyArgs() { BaseRevision = ???, LogMessage = "update ignore list" };
svnClient.SetProperty(new Uri("svn://svn.foo.com/" + DatabaseName + "/"), SvnPropertyNames.SvnIgnore, ignores, args);
Mais je ne sais pas comment obtenir le BaseRevision (je peux le faire manuellement, et cela fonctionne, mais tous les combinaisons de GetProperty j'ai essayé ne semblent pas me le donner)
SOLUTION:. Basé sur la réponse de Bert
SvnGetPropertyArgs getArgs = new SvnGetPropertyArgs(){};
string ignores = "Artifacts";
string result;
if(svnClient.GetProperty(new SvnUriTarget("svn://svn.foo.com/" + ProjectName + "/trunk/"), SvnPropertyNames.SvnIgnore,out result))
{
ignores = result + " Artifacts"; //TODO: check for existing & tidy formatting.
}
svnClient.SetProperty(UncPath.TrimEnd('\\'), SvnPropertyNames.SvnIgnore, ignores);
SvnCommit(svnClient);
Vous devez simplement récupérer et définir la propriété sur votre copie de travail locale, puis valider la modification dans le référentiel. (Pour ce faire, remplacez simplement UriTarget par un chemin local). –
Pas vraiment lié (car les chemins locaux sont beaucoup plus faciles): Mais au lieu d'utiliser directement la classe SvnUriTarget, vous pouvez simplement passer une instance normale de System.Uri. Il y a des conversions automatiques pour string-> SvnPathTarget et Uri-> SvnUriTarget définies. –