如何使用sharpsvn clinet类将属性设置为svn目录中的文件?

时间:2017-02-06 19:49:44

标签: c# properties sharpsvn

我正在使用Sharpsvn客户端类在svn目录中的文件上设置属性。我想继续使用新的时间戳重置属性,并且在这样做时,带有新日志消息的新修订将在存储库历史记录中更新。我不想做的是对文件进行更改,然后将其提交回目录。现在,我一直在努力弄清楚如何连接到目录上的文件。这是我目前的代码:

System.Uri uri = new System.Uri("url link");

using (SvnClient client = new SvnClient())
{
  try
  {
    // Get new timestamp
    DateTime dt = DateTime.Now;
    string time = String.Format("{0:G}", dt);

    // Set property to file in the svn directory
    client.RemoteSetProperty(uri, "svn:time", time);
  }
  catch (Svnexception ex)
  {
    MessageBox.show(ex.Message + "Check out error!");
  }
}

我也尝试使用client.SetProperty方法,但是当我在本地工作副本上尝试并直接使用url时,这不起作用。帮助会很棒!

1 个答案:

答案 0 :(得分:0)

修改代码的某些部分,使其按要求运行。请看一下:

                System.Uri uri = new System.Uri("url link");

                using (SvnClient client = new SvnClient())
                {
                    try
                    {
                        // Get new timestamp
                        DateTime date = DateTime.Now;
                        string time = String.Format("{0:G}", date);

                        // To Get the Latest Revision on the Required SVN Folder
                        SvnInfoEventArgs info;
                        client.GetInfo(uri, out info);

                        // Prepare a PropertyArgs object with latest revision and a commit message;
                        SvnSetPropertyArgs args = new SvnSetPropertyArgs() { BaseRevision = info.Revision, LogMessage = "Sample msg for SVN commit" };

                        // Set property to file in the svn directory
                        client.RemoteSetProperty(uri, "svn:time", time, args);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message + "Check out error!");
                    }
                }

希望这会有所帮助;