diff options
author | Therzok <teromario@yahoo.com> | 2013-08-27 13:01:17 +0400 |
---|---|---|
committer | Therzok <teromario@yahoo.com> | 2013-08-27 13:01:17 +0400 |
commit | 7beaaa6995c80e8b3a51eb4d19fc88b73be67eac (patch) | |
tree | f5429ef40a13d0ed467c085ca5e981ce208e06f4 /main/src/addins/VersionControl/Subversion.Win32 | |
parent | 45b07bda3b3eeb4d9313ee8f5ba4f59b490511fb (diff) |
[Version Control] Win32 Subversion Cancel for Checkout.
Diffstat (limited to 'main/src/addins/VersionControl/Subversion.Win32')
-rw-r--r-- | main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs b/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs index f0de966632..c17dd231cf 100644 --- a/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs +++ b/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs @@ -115,6 +115,9 @@ namespace SubversionAddinWindows client.Progress += delegate (object sender, SvnProgressEventArgs e) {
ProgressWork (e, progressData, updateMonitor);
};
+ client.Cancel += delegate (object o, SvnCancelEventArgs a) {
+ a.Cancel = updateMonitor.IsCancelRequested;
+ };
}
void AuthenticationUserNamePasswordHandlers (object sender, SvnUserNamePasswordEventArgs e)
@@ -188,8 +191,14 @@ namespace SubversionAddinWindows SvnCheckOutArgs args = new SvnCheckOutArgs ();
BindMonitor (args, monitor);
args.Depth = recurse ? SvnDepth.Infinity : SvnDepth.Empty;
- lock (client)
- client.CheckOut (new SvnUriTarget (url, GetRevision (rev)), path);
+ lock (client) {
+ try {
+ client.CheckOut (new SvnUriTarget (url, GetRevision (rev)), path);
+ } catch (SvnOperationCanceledException e) {
+ if (Directory.Exists (path.ParentDirectory))
+ FileService.DeleteDirectory (path.ParentDirectory);
+ }
+ }
}
public override void Commit (FilePath[] paths, string message, IProgressMonitor monitor)
@@ -606,9 +615,6 @@ namespace SubversionAddinWindows args.Notify += delegate (object o, SvnNotifyEventArgs e) {
Notify (e, data, monitor);
};
- args.Cancel += delegate (object o, SvnCancelEventArgs a) {
- a.Cancel = monitor.IsCancelRequested;
- };
args.SvnError += delegate (object o, SvnErrorEventArgs a) {
monitor.ReportError (a.Exception.Message, a.Exception.RootCause);
};
|