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
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2012-01-19 11:52:46 +0400
committerMike Krüger <mkrueger@xamarin.com>2012-01-19 11:52:46 +0400
commit63a7837c796d7e29f4401ea2369302e6e9462aeb (patch)
tree8dd0590255e56d27969323a1840a9203dafec499 /main/src/addins/VersionControl/MonoDevelop.VersionControl.Git
parent6a4b50b5e965b983bb9bec1c26de891ded16ad2e (diff)
parent29f45fe8d8697d3347e5e826b42088bc0a10e2ca (diff)
Merge branch 'master' into newresolver
Diffstat (limited to 'main/src/addins/VersionControl/MonoDevelop.VersionControl.Git')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs38
1 files changed, 23 insertions, 15 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs
index f9bb1b5ca4..2b21cd1348 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git/MonoDevelop.VersionControl.Git/GitRepository.cs
@@ -802,26 +802,34 @@ namespace MonoDevelop.VersionControl.Git
return GetCommitTextContent (c, repositoryPath);
}
+ public override DiffInfo GenerateDiff (FilePath baseLocalPath, VersionInfo vi)
+ {
+ try {
+ if ((vi.Status & VersionStatus.ScheduledAdd) != 0) {
+ var ctxt = GetFileContent (vi.LocalPath);
+ return new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (EmptyContent, ctxt));
+ } else if ((vi.Status & VersionStatus.ScheduledDelete) != 0) {
+ var ctxt = GetCommitContent (GetHeadCommit (), vi.LocalPath);
+ return new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (ctxt, EmptyContent));
+ } else if ((vi.Status & VersionStatus.Modified) != 0 || (vi.Status & VersionStatus.Conflicted) != 0) {
+ var ctxt1 = GetCommitContent (GetHeadCommit (), vi.LocalPath);
+ var ctxt2 = GetFileContent (vi.LocalPath);
+ return new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (ctxt1, ctxt2));
+ }
+ } catch (Exception ex) {
+ LoggingService.LogError ("Could not get diff for file '" + vi.LocalPath + "'", ex);
+ }
+ return null;
+ }
+
public override DiffInfo[] PathDiff (FilePath baseLocalPath, FilePath[] localPaths, bool remoteDiff)
{
List<DiffInfo> diffs = new List<DiffInfo> ();
VersionInfo[] vinfos = GetDirectoryVersionInfo (baseLocalPath, localPaths, false, true);
foreach (VersionInfo vi in vinfos) {
- try {
- if ((vi.Status & VersionStatus.ScheduledAdd) != 0) {
- var ctxt = GetFileContent (vi.LocalPath);
- diffs.Add (new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (EmptyContent, ctxt)));
- } else if ((vi.Status & VersionStatus.ScheduledDelete) != 0) {
- var ctxt = GetCommitContent (GetHeadCommit (), vi.LocalPath);
- diffs.Add (new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (ctxt, EmptyContent)));
- } else if ((vi.Status & VersionStatus.Modified) != 0 || (vi.Status & VersionStatus.Conflicted) != 0) {
- var ctxt1 = GetCommitContent (GetHeadCommit (), vi.LocalPath);
- var ctxt2 = GetFileContent (vi.LocalPath);
- diffs.Add (new DiffInfo (baseLocalPath, vi.LocalPath, GenerateDiff (ctxt1, ctxt2)));
- }
- } catch (Exception ex) {
- LoggingService.LogError ("Could not get diff for file '" + vi.LocalPath + "'", ex);
- }
+ var diff = GenerateDiff (baseLocalPath, vi);
+ if (diff != null)
+ diffs.Add (diff);
}
return diffs.ToArray ();
}