首先,我不确定这是否可能,但是我需要知道如何做到这一点,如果没有,为什么不呢?
我想创建一个 C# 应用程序,该应用程序在 subversion 存储库的提交过程中的适当时间运行(我相信是预提交),然后将添加另一个要提交的文件。
例如,我对 Program.cs 和 Main.cs 进行了更改,但没有更改AssemblyInfo.cs。我希望能够强制更改 AssemblyInfo.cs 或任何文件。
我使用 SharpSVN 编写了一个控制台应用程序,该应用程序在提交后触发,然后替换了一个文件,但这导致修订号增加。显然这并不理想。
然后我在 SharpSVN 中找到了 SvnLookClient,它在预提交时运行并开始编写一些东西,但是当我意识到 CopyFromPath 并不意味着我所期望的时,我遇到了死胡同:
using (SvnLookClient client = new SvnLookClient())
{
SvnLookOrigin o = new SvnLookOrigin(@"\\server\repository");
SvnChangedArgs changedArgs = new SvnChangedArgs();
Collection<SvnChangedEventArgs> changeList;
client.GetChanged(o, changedArgs, out changeList);
}
或者,我将满足于在 C# 之外执行此操作,但理想情况下,我希望在 C# 控制台应用程序中执行此操作,以便我还可以告诉我的存储库服务器执行其他任务,例如在数据库脚本中运行等。