Browse Source

Fix SD-1730 - Renamed file not under Git source control

pull/14/head
Matt Ward 15 years ago
parent
commit
b82d3e6f50
  1. 32
      src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs

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

@ -14,16 +14,16 @@ namespace ICSharpCode.GitAddIn
{ {
public override void Run() public override void Run()
{ {
FileService.FileCreated += (sender, args) => { FileService.FileCreated += (sender, e) => {
Git.Add(args.FileName, Git.Add(e.FileName,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName) exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, e.FileName)
); );
}; };
FileService.FileRemoved += (sender, args) => { FileService.FileRemoved += (sender, e) => {
if (GitStatusCache.GetFileStatus(args.FileName) == GitStatus.Added) { RemoveFile(e.FileName);
Git.Remove(args.FileName, true, };
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName)); FileService.FileRenamed += (sender, e) => {
} RenameFile(e.SourceFile, e.TargetFile);
}; };
FileUtility.FileSaved += (sender, e) => { FileUtility.FileSaved += (sender, e) => {
ClearStatusCacheAndEnqueueFile(e.FileName); ClearStatusCacheAndEnqueueFile(e.FileName);
@ -31,6 +31,22 @@ namespace ICSharpCode.GitAddIn
AbstractProjectBrowserTreeNode.OnNewNode += TreeNodeCreated; AbstractProjectBrowserTreeNode.OnNewNode += TreeNodeCreated;
} }
void RemoveFile(string fileName)
{
if (GitStatusCache.GetFileStatus(fileName) == GitStatus.Added) {
Git.Remove(fileName, true,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, fileName));
}
}
void RenameFile(string sourceFileName, string targetFileName)
{
Git.Add(targetFileName,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(RemoveFile, sourceFileName)
);
WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, targetFileName);
}
void TreeNodeCreated(object sender, TreeViewEventArgs e) void TreeNodeCreated(object sender, TreeViewEventArgs e)
{ {
SolutionNode sn = e.Node as SolutionNode; SolutionNode sn = e.Node as SolutionNode;

Loading…
Cancel
Save