這一切都取決於您如何連接到您的存儲庫,因爲存儲庫負責爲修訂添加用戶名。 (它通常會複製連接的憑證,但不必這樣做)。
當您使用file:/// repository(通常不推薦 - 請參閱The Subversion Book)時,您可以直接在提交上解決此問題。
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);
}
如果您連接到遠程倉庫,您可以更改時的pre-revprop-change鉤子安裝在庫一個修訂版本的作者(見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] 最近SharpSvn版本還允許這樣的:
using (SvnRepositoryClient rc = new SvnRepositoryClient())
{
SvnSetRevisionPropertyRepositoryArgs ra;
ra.CallPreRevPropChangeHook = false;
ra.CallPostRevPropChangeHook = false;
rc.SetRevisionProperty(@"C:\Path\To\Repository", 12345,
SvnPropertyNames.SvnAuthor, "MyName", ra);
}
最後一個例子假設到倉庫直接文件訪問,但它繞過[R epository掛鉤以獲得最佳性能。
您應該使用.SetRevisionProperty()更改修訂版屬性。 – 2009-05-05 13:44:21