5 changed files with 102 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using ICSharpCode.SharpDevelop; |
||||||
|
using ICSharpCode.SharpDevelop.Editor; |
||||||
|
using SharpSvn.Diff; |
||||||
|
|
||||||
|
namespace ICSharpCode.Svn |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Description of SvnDiffProvider.
|
||||||
|
/// </summary>
|
||||||
|
public class SvnDiffProvider : IDiffProvider |
||||||
|
{ |
||||||
|
public Stream GetDiff(string fileName, ITextBuffer modifiedBuffer) |
||||||
|
{ |
||||||
|
SvnFileDiff diff; |
||||||
|
string tempFile = Path.GetTempFileName(); |
||||||
|
MemoryStream stream = new MemoryStream(); |
||||||
|
|
||||||
|
File.WriteAllText(tempFile, modifiedBuffer.Text); |
||||||
|
SvnFileDiff.TryCreate(fileName, tempFile, new SvnFileDiffArgs(), out diff); |
||||||
|
diff.WriteDifferences(stream, new SvnDiffWriteDifferencesArgs()); |
||||||
|
File.Delete(tempFile); |
||||||
|
|
||||||
|
return stream; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public class SvnBaseVersionProvider : IDocumentBaseVersionProvider |
||||||
|
{ |
||||||
|
public Stream OpenBaseVersion(string fileName) |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,51 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using System.IO; |
||||||
|
using ICSharpCode.Core; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Editor |
||||||
|
{ |
||||||
|
public interface IDocumentBaseVersionProvider |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Provides the BASE-Version for a file. This can be either the file saved
|
||||||
|
/// to disk or a base version provided by any VCS.
|
||||||
|
/// </summary>
|
||||||
|
Stream OpenBaseVersion(string fileName); |
||||||
|
} |
||||||
|
|
||||||
|
public interface IDiffProvider |
||||||
|
{ |
||||||
|
Stream GetDiff(string fileName, ITextBuffer modifiedBuffer); |
||||||
|
} |
||||||
|
|
||||||
|
public class VersioningServices |
||||||
|
{ |
||||||
|
public static readonly VersioningServices Instance = new VersioningServices(); |
||||||
|
|
||||||
|
List<IDocumentBaseVersionProvider> baseVersionProviders; |
||||||
|
|
||||||
|
public List<IDocumentBaseVersionProvider> BaseVersionProviders { |
||||||
|
get { |
||||||
|
if (baseVersionProviders == null) |
||||||
|
baseVersionProviders = AddInTree.BuildItems<IDocumentBaseVersionProvider>("/Workspace/BaseVersionProviders", this, false); |
||||||
|
|
||||||
|
return baseVersionProviders; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
List<IDiffProvider> diffProviders; |
||||||
|
|
||||||
|
public List<IDiffProvider> DiffProviders { |
||||||
|
get { |
||||||
|
if (diffProviders == null) |
||||||
|
diffProviders = AddInTree.BuildItems<IDiffProvider>("/Workspace/DiffProviders", this, false); |
||||||
|
|
||||||
|
return diffProviders; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue