Cómo establecer el autor del compromiso SVN utilizando la biblioteca SharpSVN en c #

Uso la biblioteca SharpSvn de CollabNET. Me gustaría establecer el autor de la revisión mientras me comprometo, pero siempre termino con una confirmación con mi nombre de usuario de Windows.

Esto no funciona para mi:

System.Net.NetworkCnetworkingential oCnetworking = new System.Net.NetworkCnetworkingential("user"​, "pass"); client.Authentication.DefaultCnetworkingentials = oCnetworking; 

Lo he intentado también:

 client.SetProperty("", "svn:author", "user"); 

Pero me da un error que el objective (primer argumento) es malo.

Entonces, ¿podría decirme cómo configurar usuario (autor) de commit para el repository de subversión en c #?

Todo esto depende de cómo se conecte a su repository, ya que el repository es responsable de agregar un nombre de usuario a la revisión. (Por lo general, copy las cnetworkingenciales para las conexiones pero no tiene que hacer eso).

Cuando utiliza un file: /// repository (que generalmente no se recomienda – Consulte El libro de Subversion ) puede solucionar esto directamente en la confirmación.

 using (SvnClient client = new SvnClient()) { client.Authentication.Clear(); // Clear pnetworkingefined 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 se conecta a un repository remoto, puede cambiar el autor de una revisión cuando se instala un gancho de cambio de preprogtwigción en el repository (Consulte el Libro de Subversion ).

 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] Las versiones más recientes de SharpSvn también permiten esto:

 using (SvnRepositoryClient rc = new SvnRepositoryClient()) { SvnSetRevisionPropertyRepositoryArgs ra; ra.CallPreRevPropChangeHook = false; ra.CallPostRevPropChangeHook = false; rc.SetRevisionProperty(@"C:\Path\To\Repository", 12345, SvnPropertyNames.SvnAuthor, "MyName", ra); } 

Este último ejemplo asume el acceso directo al file en el repository, pero evita los enganches del repository para un performance óptimo.