SVN插件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Runtime.Remoting.Messaging; namespace CN100.SVNHelper
{
public class Operation
{ public delegate void ShowWaitingDialog(); public static event ShowWaitingDialog OnWaiting; public static event ShowWaitingDialog OnCompleted; public static void Update(string localUrl)
{
string cmd = string.Format("svn {0} {1} ", "update", localUrl);
ExcuteSVNCommand(cmd);
} public static void Update(string localUrl, string userName, string password)
{
string cmd = string.Format("svn {0} --username {2} --password {3} {1} ", "update", localUrl, userName, password);
ExcuteSVNCommand(cmd);
} public static void UpdateToVersion(string localUrl, long version)
{
string cmd = string.Format("svn {0} -r {1} {2}", "update", localUrl, version);
ExcuteSVNCommand(cmd);
} public static void UpdateToVersion(string localUrl, long version, string userName, string password)
{
string cmd = string.Format("svn {0} -r {1} --username {2} --password {3} {4}", "update", version, userName, password, localUrl);
ExcuteSVNCommand(cmd);
} public static void CheckOut(string serverUrl, string localUrl, string userName, string password)
{
string cmd = string.Format("svn {0} --ignore-externals --username {1} --password {2} {3} {4}", "co", userName, password, serverUrl, localUrl);
ExcuteSVNCommand(cmd);
} public static void CheckOutToVersion(string serverUrl, string localUrl, long version, string userName, string password)
{
string cmd = string.Format("svn {0} -r {5} --ignore-externals --username {1} --password {2} {3} {4}", "co", userName, password, serverUrl, localUrl, version);
ExcuteSVNCommand(cmd);
} public static void Commit(string serverUrl, string localUrl, string userName, string password)
{
string cmd = string.Format("svn {0} {1} --force | svn {2} --username {4} --password {5} {1} -m'{3}'", "add", localUrl, "ci", "add:" + DateTime.Now.ToString("MM/dd/yyyyHH:mm:ss"), userName, password);
ExcuteSVNCommand(cmd);
} public static void CleanUp(string path)
{
string cmd = "svn cleanup " + path;
ExcuteSVNCommand(cmd);
} public static void Export(string serverUrl, string localUrl)
{
string cmd = string.Format("svn export {0} {1}", serverUrl, localUrl);
ExcuteSVNCommand(cmd);
} public static void Import(string serverUrl, string localUrl)
{
string cmd = string.Format(" svn import -m 'New import' {0} {1}", localUrl, serverUrl);
ExcuteSVNCommand(cmd);
} public static void ExecuteCommad(params string[] cmd)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";//要执行的程序名称
p.StartInfo.UseShellExecute = false;
//p.StartInfo.RedirectStandardInput = true;//可能接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
p.StartInfo.CreateNoWindow = true;//不显示程序窗口
p.Start();//启动程序 foreach (string c in cmd)
{
p.StandardInput.WriteLine(c);
Thread.Sleep(50);
} p.StandardInput.WriteLine(@"exit");
p.WaitForExit(15 * 60 * 1000); string result = p.StandardOutput.ReadToEnd();
p.Close();
} public static void ExcuteSVNCommand(string cmd)
{
string exePath = Path.Combine(Environment.CurrentDirectory, "lib");
string dirCmd = string.Format(@"chdir /d {0}", exePath);
cmd = dirCmd + "|" + cmd;
string[] cm = cmd.Split(new char[] { '|' }); if (OnWaiting != null)
{
OnWaiting.BeginInvoke(Callback, null);
} ExecuteCommad(cm); if (OnCompleted != null)
{
OnCompleted();
}
} public static void Callback(IAsyncResult result)
{
ShowWaitingDialog handler = (ShowWaitingDialog)((AsyncResult)result).AsyncDelegate;
handler.EndInvoke(result);
}
}
}
需要在程序集下面subvesion组件,可以从网上下载一个最新版本安装好之后copy到项目下面!
SVN插件的更多相关文章
- myeclipse学习总结二(myeclipse安装svn插件)
1.在myeclipse中要安装svn插件,首先是下载svn插件. 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?fold ...
- Eclipse安装SVN插件
Eclipse 安装最新SVN插件 下载地址 下载最新的Eclipse,我使用的是eclipse-jee-kepler-SR2-win32-x86_64.zip(Eclipse IDE for Jav ...
- sublime text3 使用SVN插件
Simon在项目中经常使用SVN,每次都要切换提交,很麻烦,有了这个SVN插件就很方便了,使用快捷方式提交,更新. 安装: Ctrl + Shift + P 调用出Sublime Text的包管理工具 ...
- Sublime 3 如何配置SVN插件
在sublime里面安装svn的插件,就可以在sublime的操作界面里面进行相关svn操作,这样就不用再回到文件系统中,进行相关svn的操作. 1.在进入sublime界面后,点击顶部菜单“Pref ...
- 解决eclipse中svn插件总是提示输入密码的问题
一.背景 最近在eclipse中使用svn插件进行远程仓库代码管理时,老是出现提示让输入密码,特别烦人,经过努力,终于解决该问题,拿来和大家分享~ 二.svn插件密码机制以及出现问题的原因分析 当我们 ...
- 在eclipse安装svn插件
1.在“帮助--安装新软件”中选中.我这个是中文版的,英文版的是“install new software”
- MyEclipse使用心得:SVN插件安装方法
1.在线安装,打开myeclipse,help--->MyEclipse Configuration Center 2.点击Add Site 打开对话框,在对话框Name输入Svn,URL中输入 ...
- myEclipse svn插件安装
方法一(liuyou在安装时报空指针异常) 1.打开HELP->MyEclipse Configuration Center,切换到SoftWare标签页. 2.点击Add Site 打开对话框 ...
- Eclipse安装svn插件的几种方式
Eclipse安装svn插件的几种方式 1.在线安装: (1).点击 Help --> Install New Software... (2).在弹出的窗口中点击add按钮,输入Name(任意) ...
- MyEclipse10安装Svn插件的几种方法
http://blog.sina.com.cn/s/blog_4f925fc30102e9xe.html 方法一:直接解压 下载SVN插件:site-1.6.18.zip 解压后将其全部文件拷贝至:D ...
随机推荐
- a链接bug
<a href=”javascript:void(0);” class="btn" id="btn"></a> 在ios系统中(andr ...
- C语言字符串操作函数集
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
- leetcode第七题--Reverse Integer
Problem: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 ...
- C语言运算符表(优先级)
http://www.is.pku.edu.cn/~qzy/c/operator.htm
- Office文档在线编辑的实现之一
因为项目的关系,研究了一下Office的在线编辑功能,写出来共享一下. Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件. IIS(6.0)支持webdav ...
- mvc+EF比较好的框架
个人看了传智播客的一位讲师搭建的框架感觉很好,就自己通过模仿划了一下很不讲究的类图来学习之间的关系(有些地方可能有自己理解不对的地方).很感激那位讲师,我会把这个框架用在我自己的项目中.
- w5cValidator【AngularJS】 2.0 版本发布
w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些错误提示的功能,让大家不用在每个表单上写一些提示信息的模板,专心的去实现业务逻辑. 代码地址:https://g ...
- Web层后端权限模块
从零开始编写自己的C#框架(19)——Web层后端权限模块 不知不觉本系统写了快三个月了,最近写页面的具体功能时感觉到有点吃力,很多地方如果张嘴来讲的话可以说得很细,很全面,可写成文字的话,就不太 ...
- 一个逗比web前端的理想
加入博客园也5年多了.平时博客也写的少,但是每天都会上来“偷窥”,你们的一举一动我都知道.呵呵~ 最近看了些小伙伴们写的一些文章自己也难免有些感触.最近也精神有些萎靡,也想写点什么记录下个人的成长经历 ...
- C#控件怎样获取,和失去焦点的处理
publicForm1() { InitializeComponent(); textBox1.Enter+=newEventHandler(textBox1_Enter);//获得焦点事件 text ...