Wie verwende ich SharpSVN, um programmatisch einen Ordner der Ignorierliste hinzuzufügen?Wie benutze ich SharpSVN, um programmatisch "hinzufügen, um Liste zu ignorieren" für einen Ordner
EDIT: Versuchte:
Hier ist, was ich
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);
habe versucht, aber ich weiß nicht, wie die BaseRevision bekommen (ich kann es manuell bekommen, und das funktioniert, aber alle Kombinationen von GetProperty ich habe versucht, scheinen nicht, es mir zu geben)
. LÖSUNG: Basierend auf Antwort Berts
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);
Sie sollten nur die Eigenschaft in Ihrer lokalen Arbeitskopie abrufen und festlegen und dann die Änderung im Repository festschreiben. (Ersetzen Sie dazu einfach das UriTarget durch einen lokalen Pfad). –
Nicht wirklich verwandt (da lokale Pfade viel einfacher sind): Statt die SvnUriTarget-Klasse direkt zu verwenden, können Sie einfach eine normale System.Uri-Instanz übergeben. Es gibt automatische Konvertierungen für die Zeichenfolge -> SvnPathTarget und Uri -> SvnUriTarget definiert. –