Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMike Krüger <mikkrg@microsoft.com>2019-08-09 14:22:08 +0300
committerMike Krüger <mikkrg@microsoft.com>2019-08-15 10:04:55 +0300
commit71ef59b2f913e1df6ec0217922af7209452f03e2 (patch)
tree611663cc3b474cf42d0804dc6c695454625b2677 /main
parentbe455e0970743c4c7085fcdd7ef83412cfdb0165 (diff)
Fixes VSTS Bug 963968: Avoid deleting user content by accident (svn
checkout, maybe others) https://devdiv.visualstudio.com/DevDiv/_workitems/edit/963968
Diffstat (limited to 'main')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs7
-rw-r--r--main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs4
2 files changed, 6 insertions, 5 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
index e636edb686..3d2eb4b297 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
@@ -804,18 +804,19 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
nb = new notify_baton ();
IntPtr localpool = IntPtr.Zero;
+ string npath = null;
try {
localpool = TryStartOperation (monitor);
// Using Uri here because the normalization method doesn't remove the redundant port number when using https
url = NormalizePath (new Uri(url).ToString(), localpool);
- string npath = NormalizePath (path, localpool);
+ npath = NormalizePath (path, localpool);
CheckError (svn.client_checkout (IntPtr.Zero, url, npath, ref rev, recurse, ctx, localpool));
} catch (SubversionException e) {
if (e.ErrorCode != 200015)
throw;
- if (Directory.Exists (path.ParentDirectory))
- FileService.DeleteDirectory (path.ParentDirectory);
+ if (npath != null && Directory.Exists (npath))
+ FileService.DeleteDirectory (npath);
} finally {
TryEndOperation (localpool);
}
diff --git a/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs b/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs
index 60b0675b39..57170d6a33 100644
--- a/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs
+++ b/main/src/addins/VersionControl/Subversion.Win32/SvnSharpClient.cs
@@ -251,8 +251,8 @@ namespace SubversionAddinWindows
try {
client.CheckOut (new SvnUriTarget (url, GetRevision (rev)), path, args);
} catch (SvnOperationCanceledException) {
- if (Directory.Exists (path.ParentDirectory))
- FileService.DeleteDirectory (path.ParentDirectory);
+ if (Directory.Exists (path))
+ FileService.DeleteDirectory (path);
}
}
}