Tout dépend de la façon dont vous vous connectez à votre référentiel, car le référentiel est responsable de l'ajout d'un nom d'utilisateur à la révision. (Il copie généralement les informations d'identification pour les connexions, mais il n'a pas à le faire). Lorsque vous utilisez un dépôt: /// (ce qui n'est généralement pas recommandé - voir The Subversion Book), vous pouvez contourner ce problème directement sur le commit.
using (SvnClient client = new SvnClient())
{
client.Authentication.Clear(); // Clear predefined handlers
// Install a custom username handler
client.Authentication.UserNameHandlers +=
delegate(object sender, SvnUserNameEventArgs e)
{
e.UserName = "MyName";
};
SvnCommitArgs ca = new SvnCommitArgs { LogMessage = "Hello" }
client.Commit(dir, ca);
}
Si vous vous connectez à un dépôt distant, vous pouvez modifier l'auteur d'une révision quand un crochet pré-revprop changement est installé dans le référentiel (Voir The Subversion Book)
using (SvnClient client = new SvnClient())
{
client.SetRevisionProperty(new Uri("http://my/repository"), 12345,
SvnPropertyNames.SvnAuthor,
"MyName");
// Older SharpSvn releases allowed only the now obsolete syntax
client.SetRevisionProperty(
new SvnUriTarget(new Uri("http://my/repository"), 12345),
SvnPropertyNames.SvnAuthor,
"MyName");
}
[2009-08 -14] versions plus récentes de SharpSvn permettent également ceci:
using (SvnRepositoryClient rc = new SvnRepositoryClient())
{
SvnSetRevisionPropertyRepositoryArgs ra;
ra.CallPreRevPropChangeHook = false;
ra.CallPostRevPropChangeHook = false;
rc.SetRevisionProperty(@"C:\Path\To\Repository", 12345,
SvnPropertyNames.SvnAuthor, "MyName", ra);
}
ce dernier exemple suppose l'accès aux fichiers dans le référentiel, mais il contourne r crochets de dépôt pour des performances optimales.
Vous devez utiliser .SetRevisionProperty() pour modifier les propriétés de révision. –