Browse Source

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

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

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

@ -14,16 +14,16 @@ namespace ICSharpCode.GitAddIn @@ -14,16 +14,16 @@ namespace ICSharpCode.GitAddIn
{
public override void Run()
{
FileService.FileCreated += (sender, args) => {
Git.Add(args.FileName,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName)
);
FileService.FileCreated += (sender, e) => {
Git.Add(e.FileName,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, e.FileName)
);
};
FileService.FileRemoved += (sender, args) => {
if (GitStatusCache.GetFileStatus(args.FileName) == GitStatus.Added) {
Git.Remove(args.FileName, true,
exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, args.FileName));
}
FileService.FileRemoved += (sender, e) => {
RemoveFile(e.FileName);
};
FileService.FileRenamed += (sender, e) => {
RenameFile(e.SourceFile, e.TargetFile);
};
FileUtility.FileSaved += (sender, e) => {
ClearStatusCacheAndEnqueueFile(e.FileName);
@ -31,6 +31,22 @@ namespace ICSharpCode.GitAddIn @@ -31,6 +31,22 @@ namespace ICSharpCode.GitAddIn
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)
{
SolutionNode sn = e.Node as SolutionNode;

Loading…
Cancel
Save