首先,我不確定這是甚至可能的,但是我需要知道它是如何完成的,如果不是,爲什麼不呢?SVN - 如何攔截,修改或添加預先提交的文件?
我想創建一個C#應用程序,它在Subversion存儲庫的提交過程中的相應時間運行(預先承諾我相信),然後將添加另一個文件提交。
例如,我對Program.cs和Main.cs進行了更改,但不是 AssemblyInfo.cs。我希望能夠對AssemblyInfo.cs或任何文件進行更改。
我使用SharpSVN編寫了一個控制檯應用程序,它在提交後觸發,然後替換了一個文件,但是這導致了修訂號的增加。顯然這並不理想。
我隨後發現SvnLookClient內上運行SharpSVN預提交,並已開始寫東西,但進入了死衚衕,當我意識到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#控制檯應用程序中這樣做,這樣我也可以告訴我的存儲庫服務器執行其他任務,如在數據庫腳本中運行等。
爲什麼你想強制改變一個沒有改變的文件? – bluebrother 2009-08-29 09:51:26
正常情況下,您想傳遞可以通過SvnHookArguments類獲取的SvnLookOrigin,而不僅僅是SvnLookOrigin(@「...」),因爲它看起來在HEAD。雖然你可能想看看當前的交易。 – 2009-09-26 07:07:33