Browse Source

fix DirectoryNotFoundException in GitVersionProvider, which occurs if a file was moved or deleted

4.1
Siegfried Pammer 14 years ago
parent
commit
2aeb80b192
  1. 7
      src/AddIns/VersionControl/GitAddIn/Src/GitVersionProvider.cs

7
src/AddIns/VersionControl/GitAddIn/Src/GitVersionProvider.cs

@ -88,6 +88,9 @@ namespace ICSharpCode.GitAddIn
internal static string GetBlobHash(string gitExe, string fileName) internal static string GetBlobHash(string gitExe, string fileName)
{ {
if (!File.Exists(fileName))
return null;
ProcessRunner runner = new ProcessRunner(); ProcessRunner runner = new ProcessRunner();
runner.WorkingDirectory = Path.GetDirectoryName(fileName); runner.WorkingDirectory = Path.GetDirectoryName(fileName);
runner.Start(gitExe, "ls-tree HEAD " + Path.GetFileName(fileName)); runner.Start(gitExe, "ls-tree HEAD " + Path.GetFileName(fileName));
@ -107,6 +110,8 @@ namespace ICSharpCode.GitAddIn
Stream OpenOutput(string gitExe, string fileName, string blobHash) Stream OpenOutput(string gitExe, string fileName, string blobHash)
{ {
if (!File.Exists(fileName))
return null;
if (blobHash == null) if (blobHash == null)
return null; return null;
@ -140,6 +145,8 @@ namespace ICSharpCode.GitAddIn
public IDisposable WatchBaseVersionChanges(string fileName, EventHandler callback) public IDisposable WatchBaseVersionChanges(string fileName, EventHandler callback)
{ {
if (!File.Exists(fileName))
return null;
if (!Git.IsInWorkingCopy(fileName)) if (!Git.IsInWorkingCopy(fileName))
return null; return null;

Loading…
Cancel
Save