[英]sharpsvn logmessage edit sharpsvn?
使用sharpsvn。 特定的修訂logmessage想要改變。
它的實現類似於svn的'[show log] - [edit logmessage]'。
我用英語很尷尬。 所以,幫助你理解。 我的代碼已附上。
public void logEdit()
{
Collection<SvnLogEventArgs> logitems = new Collection<SvnLogEventArgs>();
SvnRevisionRange range = new SvnRevisionRange(277, 277);
SvnLogArgs arg = new SvnLogArgs( range ) ;
m_svn.GetLog(new System.Uri(m_targetPath), arg, out logitems);
SvnLogEventArgs logs;
foreach (var logentry in logitems)
{
string autor = logentry.LogMessage; // only read ..
// autor += "AA";
}
// m_svn.Log( new System.Uri(m_targetPath), new System.EventHandler<SvnLogEventArgs> ());
}
Subversion中的每條日志消息都存儲為修訂版屬性,即與每個修訂版一起使用的元數據。 查看subversion屬性的完整列表 。 另請參閱此相關答案和Subversion 常見問題解答 。 相關答案顯示您想要做的是:
svn propedit -r 277 --revprop svn:log "new log message" <path or url>
在標准存儲庫上,這會導致錯誤,因為默認行為是無法修改修訂屬性。 有關如何使用pre-revprop-change
存儲庫掛鈎更改日志消息的信息,請參閱FAQ條目 。
翻譯為SharpSvn:
public void ChangeLogMessage(Uri repositoryRoot, long revision, string newMessage)
{
using (SvnClient client = new SvnClient())
{
SvnSetRevisionPropertyArgs sa = new SvnSetRevisionPropertyArgs();
// Here we prevent an exception from being thrown when the
// repository doesn't have support for changing log messages
sa.AddExpectedError(SvnErrorCode.SVN_ERR_REPOS_DISABLED_FEATURE);
client.SetRevisionProperty(repositoryRoot,
revision,
SvnPropertyNames.SvnLog,
newMessage,
sa);
if (sa.LastException != null &&
sa.LastException.SvnErrorCode ==
SvnErrorCode.SVN_ERR_REPOS_DISABLED_FEATURE)
{
MessageBox.Show(
sa.LastException.Message,
"",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}
據我所知,SharpSvn(以及一般的SVN客戶端)主要提供只讀訪問權限,不允許您編輯存儲庫中的日志消息。 但是,如果您具有管理員權限並需要編輯日志消息,則可以自己執行此操作 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.