sharpsvn的LogMessage编辑sharpsvn?(sharpsvn logmessage

2019-09-01 10:13发布

使用sharpsvn。 具体修订的LogMessage要改变。

它实现像“[显示日志] - [编辑的LogMessage]” SVN的。

我的英语很尴尬。 因此,为了帮助大家理解。 我的代码附后。

        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> ());

    }

Answer 1:

Subversion中的每个日志信息被存储为一个版本属性,即每个版本去的元数据。 见颠覆性质的完整列表 。 也看看这个相关答案和Subversion的常见问题 。 相关答案表明你想要做的是一样的东西:

svn propedit -r 277 --revprop svn:log "new log message" <path or url>

在一个标准的仓库,因为默认行为是版本属性不能修改这会导致错误。 见FAQ条目关于如何改变这种不断变化的日志消息pre-revprop-change库钩。

翻译成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);

        }
    }
}


Answer 2:

据我所知,SharpSvn(以及一般SVN客户端)主要提供只读访问,并且不会让你编辑在资源库中的日志信息。 但是,如果您有管理权限,需要编辑日志信息你都不可能自己做 。



文章来源: sharpsvn logmessage edit sharpsvn?
标签: c# sharpsvn