Browse Source

GitAddin: Fixed removing files with status 'Added'

pull/1/head
Daniel Grunwald 15 years ago
parent
commit
5746f2f7a5
  1. 11
      src/AddIns/VersionControl/GitAddIn/Src/Git.cs
  2. 6
      src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs

11
src/AddIns/VersionControl/GitAddIn/Src/Git.cs

@ -61,6 +61,17 @@ namespace ICSharpCode.GitAddIn @@ -61,6 +61,17 @@ namespace ICSharpCode.GitAddIn
RunGit(wcRoot, "add " + AdaptFileName(wcRoot, fileName), callback);
}
public static void Remove(string fileName, bool indexOnly, Action<int> callback)
{
string wcRoot = FindWorkingCopyRoot(fileName);
if (wcRoot == null)
return;
if (indexOnly)
RunGit(wcRoot, "rm --cached " + AdaptFileName(wcRoot, fileName), callback);
else
RunGit(wcRoot, "rm " + AdaptFileName(wcRoot, fileName), callback);
}
public static string AdaptFileName(string wcRoot, string fileName)
{
return '"' + AdaptFileNameNoQuotes(wcRoot, fileName) + '"';

6
src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs

@ -34,6 +34,12 @@ namespace ICSharpCode.GitAddIn @@ -34,6 +34,12 @@ namespace ICSharpCode.GitAddIn
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName)
);
};
FileService.FileRemoved += (sender, args) => {
if (GitStatusCache.GetFileStatus(args.FileName) == GitStatus.Added) {
Git.Remove(args.FileName, true,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName));
}
};
FileUtility.FileSaved += (sender, e) => {
ClearStatusCacheAndEnqueueFile(e.FileName);
};

Loading…
Cancel
Save