Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1198 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
19 changed files with 829 additions and 693 deletions
@ -1,51 +0,0 @@
@@ -1,51 +0,0 @@
|
||||
<Components version="1.0"> |
||||
<System.Windows.Forms.Form> |
||||
<Name value="XmlForm1" /> |
||||
<ShowInTaskbar value="False" /> |
||||
<FormBorderStyle value="FixedDialog" /> |
||||
<ClientSize value="{Width=370, Height=216}" /> |
||||
<MinimizeBox value="False" /> |
||||
<DockPadding value="" /> |
||||
<Text value="Commit" /> |
||||
<AcceptButton value="okButton [System.Windows.Forms.Button], Text: OK" /> |
||||
<CancelButton value="cancelButton [System.Windows.Forms.Button], Text: Cancel" /> |
||||
<MaximizeBox value="False" /> |
||||
<Controls> |
||||
<System.Windows.Forms.TextBox> |
||||
<Name value="logMessageTextBox" /> |
||||
<TabIndex value="1" /> |
||||
<Location value="{X=8,Y=24}" /> |
||||
<AcceptsReturn value="True" /> |
||||
<Size value="{Width=352, Height=152}" /> |
||||
<Multiline value="True" /> |
||||
<WordWrap value="False" /> |
||||
<Text value="" /> |
||||
</System.Windows.Forms.TextBox> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="cancelButton" /> |
||||
<Location value="{X=288,Y=184}" /> |
||||
<Text value="Cancel" /> |
||||
<Anchor value="Bottom, Right" /> |
||||
<TabIndex value="3" /> |
||||
<DialogResult value="Cancel" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="okButton" /> |
||||
<Location value="{X=208,Y=184}" /> |
||||
<Text value="OK" /> |
||||
<Anchor value="Bottom, Right" /> |
||||
<TabIndex value="2" /> |
||||
<DialogResult value="OK" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="logMessageLabel" /> |
||||
<Text value="&Log message:" /> |
||||
<TextAlign value="BottomLeft" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="0" /> |
||||
<Size value="{Width=352, Height=23}" /> |
||||
<Location value="{X=8,Y=0}" /> |
||||
</System.Windows.Forms.Label> |
||||
</Controls> |
||||
</System.Windows.Forms.Form> |
||||
</Components> |
||||
@ -1,146 +0,0 @@
@@ -1,146 +0,0 @@
|
||||
<Components version="1.0"> |
||||
<System.Windows.Forms.Form> |
||||
<Name value="XmlForm1" /> |
||||
<ShowInTaskbar value="False" /> |
||||
<FormBorderStyle value="FixedDialog" /> |
||||
<StartPosition value="CenterParent" /> |
||||
<ClientSize value="{Width=338, Height=280}" /> |
||||
<MinimizeBox value="False" /> |
||||
<DockPadding value="" /> |
||||
<Text value="Export" /> |
||||
<AcceptButton value="okButton [System.Windows.Forms.Button], Text: OK" /> |
||||
<CancelButton value="cancelButton [System.Windows.Forms.Button], Text: Cancel" /> |
||||
<MaximizeBox value="False" /> |
||||
<Controls> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="label2" /> |
||||
<Text value="&Destination directory:" /> |
||||
<TextAlign value="BottomLeft" /> |
||||
<TabIndex value="7" /> |
||||
<Size value="{Width=344, Height=23}" /> |
||||
<Location value="{X=8,Y=176}" /> |
||||
</System.Windows.Forms.Label> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="urlLabel" /> |
||||
<Text value="URL/LocalDir:" /> |
||||
<TextAlign value="BottomLeft" /> |
||||
<TabIndex value="4" /> |
||||
<Size value="{Width=344, Height=23}" /> |
||||
<Location value="{X=8,Y=128}" /> |
||||
</System.Windows.Forms.Label> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="label1" /> |
||||
<Text value="&Revision:" /> |
||||
<TextAlign value="BottomLeft" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="1" /> |
||||
<Size value="{Width=320, Height=23}" /> |
||||
<Location value="{X=8,Y=80}" /> |
||||
</System.Windows.Forms.Label> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="cancelButton" /> |
||||
<Location value="{X=256,Y=248}" /> |
||||
<Text value="Cancel" /> |
||||
<Anchor value="Top, Right" /> |
||||
<TabIndex value="12" /> |
||||
<DialogResult value="Cancel" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="okButton" /> |
||||
<Location value="{X=176,Y=248}" /> |
||||
<Text value="OK" /> |
||||
<Anchor value="Top, Right" /> |
||||
<TabIndex value="11" /> |
||||
<DialogResult value="OK" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.CheckBox> |
||||
<Name value="nonRecursiveCheckBox" /> |
||||
<Location value="{X=8,Y=224}" /> |
||||
<Size value="{Width=320, Height=24}" /> |
||||
<Text value="&Non-recursive" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="10" /> |
||||
</System.Windows.Forms.CheckBox> |
||||
<System.Windows.Forms.GroupBox> |
||||
<Name value="groupBox1" /> |
||||
<TabIndex value="0" /> |
||||
<Location value="{X=8,Y=8}" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<Size value="{Width=322, Height=72}" /> |
||||
<Text value="Export source" /> |
||||
<Controls> |
||||
<System.Windows.Forms.RadioButton> |
||||
<Name value="fromUrlRadioButton" /> |
||||
<Location value="{X=8,Y=41}" /> |
||||
<Size value="{Width=306, Height=24}" /> |
||||
<Text value="Fr&om URL" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="1" /> |
||||
</System.Windows.Forms.RadioButton> |
||||
<System.Windows.Forms.RadioButton> |
||||
<Name value="fromLocalDirRadioButton" /> |
||||
<Location value="{X=8,Y=17}" /> |
||||
<Size value="{Width=306, Height=24}" /> |
||||
<Text value="&From local directory" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="0" /> |
||||
</System.Windows.Forms.RadioButton> |
||||
</Controls> |
||||
</System.Windows.Forms.GroupBox> |
||||
<System.Windows.Forms.ComboBox> |
||||
<Name value="revisionComboBox" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="2" /> |
||||
<Location value="{X=8,Y=104}" /> |
||||
<Size value="{Width=202, Height=21}" /> |
||||
</System.Windows.Forms.ComboBox> |
||||
<System.Windows.Forms.DateTimePicker> |
||||
<Name value="dateTimePicker" /> |
||||
<Anchor value="Top, Right" /> |
||||
<TabIndex value="3" /> |
||||
<Size value="{Width=104, Height=21}" /> |
||||
<Location value="{X=224,Y=104}" /> |
||||
</System.Windows.Forms.DateTimePicker> |
||||
<System.Windows.Forms.TextBox> |
||||
<Name value="sourceDirectoryTextBox" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="5" /> |
||||
<Location value="{X=8,Y=152}" /> |
||||
<Size value="{Width=280, Height=21}" /> |
||||
<Text value="" /> |
||||
</System.Windows.Forms.TextBox> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="sourceDirectoryBrowseButton" /> |
||||
<Location value="{X=296,Y=152}" /> |
||||
<Size value="{Width=32, Height=21}" /> |
||||
<Text value="..." /> |
||||
<Anchor value="Top, Right" /> |
||||
<TabIndex value="6" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.TextBox> |
||||
<Name value="urlTextBox" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="5" /> |
||||
<Location value="{X=8,Y=152}" /> |
||||
<Size value="{Width=320, Height=21}" /> |
||||
<Text value="" /> |
||||
</System.Windows.Forms.TextBox> |
||||
<System.Windows.Forms.TextBox> |
||||
<Name value="localDirectoryTextBox" /> |
||||
<Anchor value="Top, Left, Right" /> |
||||
<TabIndex value="8" /> |
||||
<Location value="{X=8,Y=200}" /> |
||||
<Size value="{Width=280, Height=21}" /> |
||||
<Text value="" /> |
||||
</System.Windows.Forms.TextBox> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="localDirectoryBrowseButton" /> |
||||
<Location value="{X=296,Y=200}" /> |
||||
<Size value="{Width=32, Height=21}" /> |
||||
<Text value="..." /> |
||||
<Anchor value="Top, Right" /> |
||||
<TabIndex value="9" /> |
||||
</System.Windows.Forms.Button> |
||||
</Controls> |
||||
</System.Windows.Forms.Form> |
||||
</Components> |
||||
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
<Components version="1.0"> |
||||
<System.Windows.Forms.Form> |
||||
<Name value="TortoiseSvnNotFoundForm" /> |
||||
<FormBorderStyle value="SizableToolWindow" /> |
||||
<AcceptButton value="okButton [System.Windows.Forms.Button], Text: OK" /> |
||||
<MinimizeBox value="False" /> |
||||
<StartPosition value="CenterParent" /> |
||||
<MinimumSize value="{Width=365, Height=147}" /> |
||||
<Text value="SharpDevelop" /> |
||||
<MaximizeBox value="False" /> |
||||
<ClientSize value="{Width=357, Height=121}" /> |
||||
<CancelButton value="okButton [System.Windows.Forms.Button], Text: OK" /> |
||||
<Controls> |
||||
<System.Windows.Forms.PictureBox> |
||||
<Name value="iconPictureBox" /> |
||||
<Location value="{X=10,Y=11}" /> |
||||
<Size value="{Width=32, Height=32}" /> |
||||
</System.Windows.Forms.PictureBox> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="okButton" /> |
||||
<DialogResult value="OK" /> |
||||
<Location value="{X=142,Y=82}" /> |
||||
<Text value="${res:Global.OKButtonText}" /> |
||||
<Anchor value="Bottom" /> |
||||
<UseVisualStyleBackColor value="True" /> |
||||
<Size value="{Width=73, Height=29}" /> |
||||
<TabIndex value="1" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.LinkLabel> |
||||
<Name value="linkLabel" /> |
||||
<Size value="{Width=93, Height=26}" /> |
||||
<TabIndex value="1" /> |
||||
<Text value="tortoisesvn.tigris.org" /> |
||||
<Location value="{X=12,Y=86}" /> |
||||
<Anchor value="Bottom, Left" /> |
||||
</System.Windows.Forms.LinkLabel> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="messageLabel" /> |
||||
<Location value="{X=48,Y=11}" /> |
||||
<Anchor value="Top, Bottom, Left, Right" /> |
||||
<Size value="{Width=302, Height=68}" /> |
||||
<TabIndex value="2" /> |
||||
</System.Windows.Forms.Label> |
||||
</Controls> |
||||
</System.Windows.Forms.Form> |
||||
</Components> |
||||
@ -1,52 +0,0 @@
@@ -1,52 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Threading; |
||||
using System.Windows.Forms; |
||||
|
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
public class CheckoutCommand : AbstractMenuCommand |
||||
{ |
||||
string from = String.Empty; |
||||
string to = String.Empty; |
||||
bool recurse; |
||||
Revision revision = null; |
||||
|
||||
void DoCheckoutCommand() |
||||
{ |
||||
try { |
||||
SvnClient.Instance.Client.Checkout(from, to, revision, recurse); |
||||
} catch (SvnClientException ex) { |
||||
MessageService.ShowError(ex.Message); |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Starts the command
|
||||
/// </summary>
|
||||
public override void Run() |
||||
{ |
||||
using (CheckoutDialog checkoutDialog = new CheckoutDialog()) { |
||||
if (checkoutDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { |
||||
from = checkoutDialog.Source; |
||||
to = checkoutDialog.Destination; |
||||
revision = checkoutDialog.Revision; |
||||
recurse = !checkoutDialog.NonRecursive; |
||||
SvnClient.Instance.OperationStart("Checkout", new ThreadStart(DoCheckoutCommand)); |
||||
SvnClient.Instance.WaitForOperationEnd(); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -1,36 +0,0 @@
@@ -1,36 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Reflection; |
||||
using System.Drawing; |
||||
using System.Text; |
||||
using System.Threading; |
||||
using System.IO; |
||||
using System.Windows.Forms; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
using ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
/// <summary>
|
||||
/// Description of Form1.
|
||||
/// </summary>
|
||||
public class CheckoutDialog : ExportDialog |
||||
{ |
||||
public CheckoutDialog() |
||||
{ |
||||
this.Text = "Checkout"; |
||||
ControlDictionary["groupBox1"].Text = "Repository location"; |
||||
Get<RadioButton>("fromLocalDir").Text = "&Local repository"; |
||||
Get<RadioButton>("fromUrl").Checked = true; |
||||
Get<RadioButton>("fromUrl").Text = "&Remote repository"; |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Created by SharpDevelop. |
||||
* User: Daniel Grunwald |
||||
* Date: 03.03.2006 |
||||
* Time: 20:46 |
||||
*/ |
||||
|
||||
using System; |
||||
using ICSharpCode.Core; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
public class ExportCommand : AbstractMenuCommand |
||||
{ |
||||
public override void Run() |
||||
{ |
||||
SvnGuiWrapper.ShowExportDialog(null); |
||||
} |
||||
} |
||||
|
||||
public class CheckoutCommand : AbstractMenuCommand |
||||
{ |
||||
public override void Run() |
||||
{ |
||||
SvnGuiWrapper.ShowCheckoutDialog(null); |
||||
} |
||||
} |
||||
} |
||||
@ -1,45 +0,0 @@
@@ -1,45 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Text; |
||||
using System.IO; |
||||
using System.Threading; |
||||
using System.Drawing; |
||||
using System.Drawing.Printing; |
||||
using System.Collections; |
||||
using System.ComponentModel; |
||||
using System.Windows.Forms; |
||||
using System.Diagnostics; |
||||
|
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop; |
||||
|
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
using ICSharpCode.Svn.Gui; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
|
||||
public class CommitCommand : SubversionCommand |
||||
{ |
||||
protected override bool StartOperation() |
||||
{ |
||||
using (CommitDialog commitDialog = new CommitDialog()) { |
||||
commitDialog.LogMessage = AddInOptions.DefaultLogMessage; |
||||
if (commitDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { |
||||
SvnClient.Instance.LogMessage = commitDialog.LogMessage; |
||||
MessageService.ShowMessage("Not implemented."); |
||||
//SvnClient.Instance.OperationStart("Commit", new ThreadStart(DoCommit));
|
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
} |
||||
} |
||||
@ -1,41 +0,0 @@
@@ -1,41 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Reflection; |
||||
using System.Drawing; |
||||
using System.Text; |
||||
using System.Threading; |
||||
using System.IO; |
||||
using System.Windows.Forms; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
using ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
/// <summary>
|
||||
/// Description of Form1.
|
||||
/// </summary>
|
||||
public class CommitDialog : BaseSharpDevelopForm |
||||
{ |
||||
public string LogMessage { |
||||
get { |
||||
return ControlDictionary["logMessageTextBox"].Text; |
||||
} |
||||
set { |
||||
ControlDictionary["logMessageTextBox"].Text = value; |
||||
} |
||||
} |
||||
|
||||
public CommitDialog() |
||||
{ |
||||
SetupFromXmlStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("ICSharpCode.Svn.Resources.CommitDialog.xfrm")); |
||||
} |
||||
} |
||||
} |
||||
@ -1,62 +0,0 @@
@@ -1,62 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Threading; |
||||
using System.Windows.Forms; |
||||
|
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
/// <summary>
|
||||
/// Description of ExportCommand
|
||||
/// </summary>
|
||||
public class ExportCommand : AbstractMenuCommand |
||||
{ |
||||
string from = String.Empty; |
||||
string to = String.Empty; |
||||
Revision revision = null; |
||||
|
||||
/// <summary>
|
||||
/// Creates a new ExportCommand
|
||||
/// </summary>
|
||||
public ExportCommand() |
||||
{ |
||||
// You can enable/disable the menu command using the
|
||||
// IsEnabled property of the AbstractMenuCommand class
|
||||
} |
||||
|
||||
void DoExportCommand() |
||||
{ |
||||
try { |
||||
SvnClient.Instance.Client.Export(from, to, revision, false); |
||||
} catch (SvnClientException ex) { |
||||
MessageService.ShowError(ex.Message); |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Starts the command
|
||||
/// </summary>
|
||||
public override void Run() |
||||
{ |
||||
using (ExportDialog exportDialog = new ExportDialog()) { |
||||
if (exportDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK) { |
||||
from = exportDialog.Source; |
||||
to = exportDialog.Destination; |
||||
revision = exportDialog.Revision; |
||||
SvnClient.Instance.OperationStart("Export", new ThreadStart(DoExportCommand)); |
||||
SvnClient.Instance.WaitForOperationEnd(); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -1,137 +0,0 @@
@@ -1,137 +0,0 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System; |
||||
using System.Reflection; |
||||
using System.Drawing; |
||||
using System.Text; |
||||
using System.Threading; |
||||
using System.IO; |
||||
using System.Windows.Forms; |
||||
using ICSharpCode.SharpDevelop.Gui; |
||||
using NSvn.Common; |
||||
using NSvn.Core; |
||||
using ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||
|
||||
namespace ICSharpCode.Svn.Commands |
||||
{ |
||||
/// <summary>
|
||||
/// Description of Form1.
|
||||
/// </summary>
|
||||
public class ExportDialog : BaseSharpDevelopForm |
||||
{ |
||||
|
||||
public Revision Revision { |
||||
get { |
||||
if (ControlDictionary["revisionComboBox"].Text == "Date") { |
||||
return Revision.FromDate(((DateTimePicker)ControlDictionary["dateTimePicker"]).Value); |
||||
} |
||||
return Revision.Parse(ControlDictionary["revisionComboBox"].Text); |
||||
} |
||||
} |
||||
|
||||
public bool SourceIsLocalDirectory { |
||||
get { |
||||
return ((RadioButton)ControlDictionary["fromLocalDirRadioButton"]).Checked; |
||||
} |
||||
} |
||||
|
||||
public string Source { |
||||
get { |
||||
return SourceIsLocalDirectory ? ConvertPathToURL(ControlDictionary["sourceDirectoryTextBox"].Text) : ControlDictionary["urlTextBox"].Text; |
||||
} |
||||
} |
||||
|
||||
string ConvertPathToURL(string path) |
||||
{ |
||||
if (path.Length == 0) |
||||
return ""; |
||||
return "file:///" + path.Replace('\\', '/'); |
||||
} |
||||
|
||||
public string Destination { |
||||
get { |
||||
return ControlDictionary["localDirectoryTextBox"].Text; |
||||
} |
||||
} |
||||
|
||||
public bool NonRecursive { |
||||
get { |
||||
return ((CheckBox)ControlDictionary["nonRecursiveCheckBox"]).Checked; |
||||
} |
||||
} |
||||
|
||||
public ExportDialog() |
||||
{ |
||||
SetupFromXmlStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("ICSharpCode.Svn.Resources.ExportDialog.xfrm")); |
||||
((ComboBox)ControlDictionary["revisionComboBox"]).Items.AddRange(new string[] { |
||||
"Head", |
||||
"Committed", |
||||
"Base", |
||||
"Previous", |
||||
"Working", |
||||
"Date" |
||||
}); |
||||
((ComboBox)ControlDictionary["revisionComboBox"]).Text = "Head"; |
||||
((ComboBox)ControlDictionary["revisionComboBox"]).TextChanged += new EventHandler(RevisionComboBoxTextChanged); |
||||
RevisionComboBoxTextChanged(this, EventArgs.Empty); |
||||
|
||||
Get<RadioButton>("fromLocalDir").Checked = true; |
||||
Get<RadioButton>("fromLocalDir").CheckedChanged += new EventHandler(FromLocalDirRadioButtonCheckedChanged); |
||||
FromLocalDirRadioButtonCheckedChanged(this, EventArgs.Empty); |
||||
|
||||
ControlDictionary["sourceDirectoryBrowseButton"].Click += new EventHandler(SourceDirectoryBrowseButtonClick); |
||||
ControlDictionary["localDirectoryBrowseButton"].Click += new EventHandler(LocalDirectoryBrowseButtonClick); |
||||
|
||||
ControlDictionary["sourceDirectoryTextBox"].TextChanged += UrlChanged; |
||||
ControlDictionary["urlTextBox"].TextChanged += UrlChanged; |
||||
ControlDictionary["localDirectoryTextBox"].TextChanged += UrlChanged; |
||||
UrlChanged(null, null); |
||||
} |
||||
|
||||
void UrlChanged(object sender, EventArgs e) |
||||
{ |
||||
Get<Button>("ok").Enabled = Source.Length > 0 && Destination.Length > 0; |
||||
} |
||||
|
||||
void RevisionComboBoxTextChanged(object sender, EventArgs e) |
||||
{ |
||||
ControlDictionary["dateTimePicker"].Enabled = ControlDictionary["revisionComboBox"].Text == "Date"; |
||||
} |
||||
|
||||
void FromLocalDirRadioButtonCheckedChanged(object sender, EventArgs e) |
||||
{ |
||||
ControlDictionary["urlTextBox"].Visible = !SourceIsLocalDirectory; |
||||
ControlDictionary["sourceDirectoryTextBox"].Visible = ControlDictionary["sourceDirectoryBrowseButton"].Visible = SourceIsLocalDirectory; |
||||
|
||||
if (SourceIsLocalDirectory) { |
||||
ControlDictionary["urlLabel"].Text = "&Source directory:"; |
||||
} else { |
||||
ControlDictionary["urlLabel"].Text = "&URL:"; |
||||
} |
||||
UrlChanged(null, null); |
||||
} |
||||
|
||||
void SourceDirectoryBrowseButtonClick(object sender, EventArgs e) |
||||
{ |
||||
FolderDialog fdiag = new FolderDialog(); |
||||
|
||||
if (fdiag.DisplayDialog("Select source directory.") == DialogResult.OK) { |
||||
ControlDictionary["sourceDirectoryTextBox"].Text = fdiag.Path; |
||||
} |
||||
} |
||||
|
||||
void LocalDirectoryBrowseButtonClick(object sender, EventArgs e) |
||||
{ |
||||
FolderDialog fdiag = new FolderDialog(); |
||||
|
||||
if (fdiag.DisplayDialog("Select destination directory.") == DialogResult.OK) { |
||||
ControlDictionary["localDirectoryTextBox"].Text = fdiag.Path; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,227 @@
@@ -0,0 +1,227 @@
|
||||
/* |
||||
* Created by SharpDevelop. |
||||
* User: Daniel Grunwald |
||||
* Date: 03.03.2006 |
||||
* Time: 20:27 |
||||
*/ |
||||
|
||||
using System; |
||||
using System.IO; |
||||
using System.Text; |
||||
using System.Diagnostics; |
||||
using System.Windows.Forms; |
||||
using Microsoft.Win32; |
||||
using ICSharpCode.Core; |
||||
|
||||
namespace ICSharpCode.Svn |
||||
{ |
||||
/// <summary>
|
||||
/// Wraps commands opening a dialog window.
|
||||
/// The current implementation launches TortoiseSVN.
|
||||
/// </summary>
|
||||
public static class SvnGuiWrapper |
||||
{ |
||||
static string GetPathFromRegistry(RegistryKey key, string valueName) |
||||
{ |
||||
if (key == null) return null; |
||||
using (key) { |
||||
return key.GetValue(valueName) as string; |
||||
} |
||||
} |
||||
|
||||
static string GetPathFromRegistry(string valueName) |
||||
{ |
||||
string r = GetPathFromRegistry(Registry.CurrentUser.OpenSubKey("SOFTWARE\\TortoiseSVN"), valueName); |
||||
if (r != null) return r; |
||||
return GetPathFromRegistry(Registry.LocalMachine.OpenSubKey("SOFTWARE\\TortoiseSVN"), valueName); |
||||
} |
||||
|
||||
static void Proc(string command, string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc(command, fileName, callback, null); |
||||
} |
||||
|
||||
static void Proc(string command, string fileName, MethodInvoker callback, string argument) |
||||
{ |
||||
string path = GetPathFromRegistry("ProcPath"); |
||||
if (path == null) { |
||||
using (TortoiseSvnNotFoundForm form = new TortoiseSvnNotFoundForm()) { |
||||
form.ShowDialog(); |
||||
} |
||||
} else { |
||||
try { |
||||
StringBuilder arguments = new StringBuilder(); |
||||
arguments.Append("/command:"); |
||||
arguments.Append(command); |
||||
if (fileName != null) { |
||||
arguments.Append(" /notempfile "); |
||||
arguments.Append(" /path:\""); |
||||
arguments.Append(fileName); |
||||
arguments.Append('"'); |
||||
} |
||||
if (argument != null) { |
||||
arguments.Append(' '); |
||||
arguments.Append(argument); |
||||
} |
||||
Process p = new Process(); |
||||
p.StartInfo.FileName = path; |
||||
p.StartInfo.Arguments = arguments.ToString(); |
||||
p.StartInfo.RedirectStandardError = true; |
||||
p.StartInfo.RedirectStandardOutput = true; |
||||
p.StartInfo.UseShellExecute = false; |
||||
p.EnableRaisingEvents = true; |
||||
p.Exited += delegate { |
||||
p.Dispose(); |
||||
if (callback != null) { callback(); } |
||||
}; |
||||
p.OutputDataReceived += delegate(object sender, DataReceivedEventArgs e) { |
||||
SvnClient.Instance.SvnCategory.AppendText(e.Data); |
||||
}; |
||||
p.ErrorDataReceived += delegate(object sender, DataReceivedEventArgs e) { |
||||
SvnClient.Instance.SvnCategory.AppendText(e.Data); |
||||
}; |
||||
p.Start(); |
||||
} catch (Exception ex) { |
||||
MessageService.ShowError(ex.Message); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public static void ShowCheckoutDialog(MethodInvoker callback) |
||||
{ |
||||
Proc("checkout", null, callback); |
||||
} |
||||
|
||||
public static void ShowExportDialog(MethodInvoker callback) |
||||
{ |
||||
Proc("export", null, callback); |
||||
} |
||||
|
||||
public static void Update(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("update", fileName, callback); |
||||
} |
||||
|
||||
public static void ApplyPatch(string fileName, MethodInvoker callback) |
||||
{ |
||||
//Proc("applypatch", fileName, callback);
|
||||
// TODO: Applying patches is not implemented.
|
||||
MessageService.ShowMessage("Applying patches is not implemented."); |
||||
} |
||||
|
||||
public static void CreatePatch(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("createpatch", fileName, callback); |
||||
} |
||||
|
||||
public static void Revert(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("revert", fileName, callback); |
||||
} |
||||
|
||||
public static void Commit(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("commit", fileName, callback); |
||||
} |
||||
|
||||
public static void Add(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("add", fileName, callback); |
||||
} |
||||
|
||||
public static void Ignore(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("ignore", fileName, callback); |
||||
} |
||||
|
||||
public static void ShowSvnHelp() |
||||
{ |
||||
Proc("help", null, null); |
||||
} |
||||
|
||||
public static void ShowSvnSettings() |
||||
{ |
||||
Proc("settings", null, null); |
||||
} |
||||
|
||||
public static void ShowSvnAbout() |
||||
{ |
||||
Proc("about", null, null); |
||||
} |
||||
|
||||
public static void Diff(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("diff", fileName, callback); |
||||
} |
||||
|
||||
public static void ConflictEditor(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("conflicteditor", fileName, callback); |
||||
} |
||||
|
||||
public static void ResolveConflict(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("resolve", fileName, callback); |
||||
} |
||||
|
||||
public static void ShowLog(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("log", fileName, callback); |
||||
} |
||||
|
||||
public static void Cleanup(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("cleanup", fileName, callback); |
||||
} |
||||
|
||||
public static void RevisionGraph(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("revisiongraph", fileName, callback); |
||||
} |
||||
|
||||
public static void RepoStatus(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("repostatus", fileName, callback); |
||||
} |
||||
|
||||
public static void RepoBrowser(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("repobrowser", fileName, callback); |
||||
} |
||||
|
||||
public static void UpdateToRevision(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("update", fileName, callback, "/rev"); |
||||
} |
||||
|
||||
public static void Export(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("export", fileName, callback); |
||||
} |
||||
|
||||
public static void Branch(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("copy", fileName, callback); |
||||
} |
||||
|
||||
public static void Blame(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("blame", fileName, callback); |
||||
} |
||||
|
||||
public static void Switch(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("switch", fileName, callback); |
||||
} |
||||
|
||||
public static void Merge(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("merge", fileName, callback); |
||||
} |
||||
|
||||
public static void Relocate(string fileName, MethodInvoker callback) |
||||
{ |
||||
Proc("relocate", fileName, callback); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop; |
||||
using ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||
using System; |
||||
using System.Diagnostics; |
||||
using System.Windows.Forms; |
||||
|
||||
namespace ICSharpCode.Svn |
||||
{ |
||||
public class TortoiseSvnNotFoundForm : XmlForm |
||||
{ |
||||
public TortoiseSvnNotFoundForm() |
||||
{ |
||||
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("ICSharpCode.Svn.Resources.TortoiseSvnNotFoundForm.xfrm")); |
||||
|
||||
((Label)ControlDictionary["messageLabel"]).Text = StringParser.Parse("TortoiseSVN needs to be installed to execute this action."); |
||||
((PictureBox)ControlDictionary["iconPictureBox"]).Image = ResourceService.GetBitmap("Icons.32x32.Information"); |
||||
((LinkLabel)ControlDictionary["linkLabel"]).Click += LinkLabelClicked; |
||||
} |
||||
|
||||
void LinkLabelClicked(object sender, EventArgs e) |
||||
{ |
||||
Process.Start("http://tortoisesvn.tigris.org"); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,121 @@
@@ -0,0 +1,121 @@
|
||||
/* |
||||
* Created by SharpDevelop. |
||||
* User: Daniel Grunwald |
||||
* Date: 03.03.2006 |
||||
* Time: 20:54 |
||||
*/ |
||||
|
||||
using System; |
||||
using System.IO; |
||||
using System.Text; |
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
using ICSharpCode.Svn.Commands; |
||||
using NSvn.Core; |
||||
using NSvn.Common; |
||||
|
||||
namespace ICSharpCode.Svn |
||||
{ |
||||
/// <summary>
|
||||
/// Gets if a folder is under version control
|
||||
/// </summary>
|
||||
public class SubversionIsControlledCondition : IConditionEvaluator |
||||
{ |
||||
public bool IsValid(object caller, Condition condition) |
||||
{ |
||||
FileNode node = ProjectBrowserPad.Instance.SelectedNode as FileNode; |
||||
if (node != null) { |
||||
return RegisterEventsCommand.CanBeVersionControlled(node.FileName); |
||||
} |
||||
DirectoryNode dir = ProjectBrowserPad.Instance.SelectedNode as DirectoryNode; |
||||
if (dir != null) { |
||||
return Directory.Exists(Path.Combine(dir.Directory, ".svn")); |
||||
} |
||||
SolutionNode sol = ProjectBrowserPad.Instance.SelectedNode as SolutionNode; |
||||
if (sol != null) { |
||||
return Directory.Exists(Path.Combine(sol.Solution.Directory, ".svn")); |
||||
} |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
public class SubversionStateCondition : IConditionEvaluator |
||||
{ |
||||
public bool IsValid(object caller, Condition condition) |
||||
{ |
||||
FileNode node = ProjectBrowserPad.Instance.SelectedNode as FileNode; |
||||
if (node != null) { |
||||
if (condition.Properties["item"] == "Folder") { |
||||
return false; |
||||
} |
||||
return Test(condition, node.FileName); |
||||
} |
||||
DirectoryNode dir = ProjectBrowserPad.Instance.SelectedNode as DirectoryNode; |
||||
if (dir != null) { |
||||
if (condition.Properties["item"] == "File") { |
||||
return false; |
||||
} |
||||
if (condition.Properties["state"].Contains("Modified")) { |
||||
// Directories are not checked recursively yet.
|
||||
return true; |
||||
} |
||||
return Test(condition, dir.Directory); |
||||
} |
||||
SolutionNode sol = ProjectBrowserPad.Instance.SelectedNode as SolutionNode; |
||||
if (sol != null) { |
||||
if (condition.Properties["item"] == "File") { |
||||
return false; |
||||
} |
||||
if (condition.Properties["state"].Contains("Modified")) { |
||||
// Directories are not checked recursively yet.
|
||||
return true; |
||||
} |
||||
return Test(condition, sol.Solution.Directory); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
static string lastTestFileName; |
||||
static string lastTestStatus; |
||||
|
||||
internal static void ResetCache() |
||||
{ |
||||
lastTestFileName = null; |
||||
} |
||||
|
||||
bool Test(Condition condition, string fileName) |
||||
{ |
||||
string[] allowedStatus = condition.Properties["state"].Split(';'); |
||||
if (allowedStatus.Length == 0) { |
||||
return true; |
||||
} |
||||
string status; |
||||
if (fileName == lastTestFileName) { |
||||
status = lastTestStatus; |
||||
} else { |
||||
status = SvnClient.Instance.Client.SingleStatus(fileName).TextStatus.ToString(); |
||||
if (status == "Unversioned") { |
||||
PropertyDictionary pd = SvnClient.Instance.Client.PropGet("svn:ignore", Path.GetDirectoryName(fileName), Revision.Working, false); |
||||
if (pd != null) { |
||||
string shortFileName = Path.GetFileName(fileName); |
||||
foreach (Property p in pd.Values) { |
||||
using (StreamReader r = new StreamReader(new MemoryStream(p.Data))) { |
||||
string line; |
||||
while ((line = r.ReadLine()) != null) { |
||||
if (string.Equals(line, shortFileName, StringComparison.InvariantCultureIgnoreCase)) { |
||||
status = "Ignored"; |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
LoggingService.Debug("Status of " + fileName + " is " + status); |
||||
lastTestFileName = fileName; |
||||
lastTestStatus = status; |
||||
} |
||||
return Array.IndexOf(allowedStatus, status) >= 0; |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue