Browse Source

created SvnBaseVersionProvider

pull/15/head
Siegfried Pammer 16 years ago
parent
commit
8219101226
  1. 8
      src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewDisplayBinding.cs
  2. 17
      src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs
  3. 36
      src/AddIns/VersionControl/SubversionAddIn/Src/SvnDiffProvider.cs

8
src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewDisplayBinding.cs

@ -34,12 +34,8 @@ namespace ICSharpCode.Svn
if (file == null || file.IsUntitled || !File.Exists(file.FileName)) { if (file == null || file.IsUntitled || !File.Exists(file.FileName)) {
return false; return false;
} }
if (Commands.RegisterEventsCommand.CanBeVersionControlledFile(file.FileName)) {
StatusKind status = OverlayIconManager.GetStatus(file.FileName); return SvnClientWrapper.IsInSourceControl(file.FileName);
return status != StatusKind.None && status != StatusKind.Unversioned && status != StatusKind.Ignored;
} else {
return false;
}
} }
} }
} }

17
src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs

@ -443,6 +443,23 @@ namespace ICSharpCode.Svn
} }
} }
public Stream OpenBaseVersion(string fileName)
{
MemoryStream stream = new MemoryStream();
this.client.Write(fileName, stream, new SvnWriteArgs() { Revision = SvnRevision.Base });
return stream;
}
public static bool IsInSourceControl(string fileName)
{
if (Commands.RegisterEventsCommand.CanBeVersionControlledFile(fileName)) {
StatusKind status = OverlayIconManager.GetStatus(fileName);
return status != StatusKind.None && status != StatusKind.Unversioned && status != StatusKind.Ignored;
} else {
return false;
}
}
static StatusKind ToStatusKind(SvnStatus kind) static StatusKind ToStatusKind(SvnStatus kind)
{ {
switch (kind) { switch (kind) {

36
src/AddIns/VersionControl/SubversionAddIn/Src/SvnDiffProvider.cs

@ -3,44 +3,22 @@
using System; using System;
using System.IO; using System.IO;
using System.Threading;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.Svn.Commands; using ICSharpCode.Svn.Commands;
using SharpSvn.Diff; using SharpSvn;
namespace ICSharpCode.Svn namespace ICSharpCode.Svn
{ {
/// <summary>
/// Description of SvnDiffProvider.
/// </summary>
public class SvnDiffProvider : IDiffProvider
{
public Stream GetDiff(string fileName, ITextBuffer modifiedBuffer)
{
if (!RegisterEventsCommand.CanBeVersionControlledFile(fileName))
return null;
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 class SvnBaseVersionProvider : IDocumentBaseVersionProvider
{ {
public Stream OpenBaseVersion(string fileName) public Stream OpenBaseVersion(string fileName)
{ {
throw new NotImplementedException(); if (!SvnClientWrapper.IsInSourceControl(fileName))
return null;
using (SvnClientWrapper client = new SvnClientWrapper()) {
return client.OpenBaseVersion(fileName);
}
} }
} }
} }

Loading…
Cancel
Save