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 ...
随机推荐
- jq toggle1.9版本后不支持解决方案
<script type="text/javascript"> $(document).ready(function(){ $("button"). ...
- VS2015安装
VS2015安装 Secondary Installer Setup Failed求解决方案 看到微软最近的一系列变化,着实让我等兴奋不已.VS2015下载地址就不说了.先来记录一下微软的几个变化吧. ...
- 使用vsnprintf后链接错误及解决方法
/home/merlin/swinstall/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/../lib//../../../../a ...
- 分享12款经典时尚的HTML5应用
分享伟大,呵呵.今天给大家分享一下收集的12个HTML5小特效. 我整理一下源码,给大家打包一下,我博客园上传文件大小有限,传不了了. 需要的请留下邮箱就行了,觉得好的话,不要忘了点赞哦~ 1.CSS ...
- extern用法汇总
extern 在源文件A里定义的函数,在其他源文件中是看不见的(即不能訪问).为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明: extern 函数原型: 这样,在源文件B里也能够调 ...
- 轨道sql谈话 dbms_monitor
经常会遇到一个会话存在sql性能问题,但找不到哪一个sql导致DB更高的性能问题,这是我们需要在此session通过监测dbms_monitor软件包来实现. 首先确定要监控的会话sid及serial ...
- 使用Java编写的B*算法
package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; import java.util.Itera ...
- bash下几个替换运算符的区分
bash下几个替换运算符的区分 2012-03-21 22:20:54 分类: Python/Ruby 一直对四个替换运算符比较的迷惑,分布太清楚,记下来避免再次遗忘: ${name:-word} ...
- EasyUi的快速开发框架
基于EasyUi的快速开发框架 先看图,下边这个简单的增.删.改.查,如果自己写代码实现,这两个页需要多少行代码? 如果再有类似的增.删.改.查,又需要多少行代码? 我最近搞的这个快速开发框架中, ...
- CEGUI添加自定义控件
用CEGUI做界面将近3个月了,比较忙,而且自己懒了许多,没能像以前那样抽出大量时间研究CEGUI,查阅更多的资料书籍,只是在工作间隙,将官网上的一些资料和同事推荐的<CEGUI深入解析> ...