Svn安装与配置(详细)以及在MyEclipse中的配置
我的机器环境是WIN7,32bit,与本文相关的安装程序我也已经打包上传,大家可以去直接下载使用http://download.csdn.net/detail/qwewegfd/4544574
一、 SVN的安装
SVN分为服务器端与客户端,需要各自安装
a) 下载服务器端
下载页面:http://subversion.apache.org/packages.html,由于我是32位的系统所以选择Windows列表下的Win32Svn (32-bit client, server and bindings, MSI and ZIPs; maintained by David Darj)
b) 安装服务器端
安装路径可以自己改,我的安装路径是D:\Program Files\Subversion
c) 下载客户端
下载地址:http://tortoisesvn.net/downloads.html并下载对应版本的语言包
下载的客户端所支持的服务器端软件的版本号要与你下载的服务器端软件的版本号一致
d) 安装客户端
安装路径也可以自己改,我的安装路径是D:\Program Files\TortoiseSVN。
e) 安装语言包
安装下载的语言包,安装程序会自动运行,安装完毕后在桌面上右键单击,打开TortoiseSVN的setting选项,会出现语言选项。
f) 安装版本控制库
路径自己定,我的做法是在F盘上新建一个mySVN文件夹,双击打开它,然后在里面点击右键,[TotoiseSVN]->[Create Repository here]进行创建,版本库模式指定为默认的即可。Repository创建完毕后会在目录下生成若干个文件和文件夹,conf目录是用来设置管理的目录;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
(本步骤也可以用命令行来完成:svnadmin create F:\mySVN)
g) 设置版本控制库权限
打开版本控制库F:\mySVN的/conf/目录,打开svnserve.conf找到一下两句:
# [general]
# password-db = passwd
去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件
同样打开passwd文件,将
# [users]
# harry = harryssecret
# sally = sallyssecret
这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 =密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户
修改配置文件时,一定要把#以及#后的空格(如果有空格的话)一起删除!!
h) 启动服务
有两种启动方式。一种是手动启动方式,此种方式是通过命令行的模式进行单次启动,每次启动计算机后都需要进行手动启动服务,比较繁琐,故不推荐此种方式。
另一种方式是把svn服务设置为系统服务,每次可以自动启动。
启动服务器端并将svn设为系统服务,由于win7的安全权限问题,安装系统服务时会出现“[sc] openSCManager失败 5 拒绝”错误。
解决方案:
新建一个新文件svnSetup.bat.
内容:
sc create SVNService binPath= "\"C:\program files\Subversion\bin\svnserve.exe\" --service -r e:\svn --listen-port 3691" DisplayName= "SVNService" depend= Tcpip start= auto
保存。
上面代码有三个地方必须注意分别为1.服务名(代码里为:SVNService,可以自己取);2.subversion bin目录的路径(代码里为:C:\program files\Subversion\bin\svnserve.exe\,这里必须是你安装Subversion的路径,如我上面是D:\program files\Subversion\bin\svnserve.exe\);3.所建库的位置(代码里为:e:\svn,这里必须是你安装版本控制库的路径,如我上面是F:\mySVN)右键选择以“管理员方式运行”,OK!
注:“=”前不得有空格,后必须有空格。
(也可以将上面内容部分直接在cmd.exe输入并回车,启动后在计算机->管理->服务和应用程序->服务->找到SVNService,右键属性找到启动类型改为自动,这样每次开机它都会自动运行了)
i) 访问svn
在桌面上点右键[TotoiseSVN]->[Repo-browser]在地址栏里输入svn://localhost/,这样就可以访问svn了,到这里也就完成了本地svn服务器端和客户端的安装。
j) 如果要删除计算机-管理-服务里面的SVNService
请在命令行窗口输sc delete SVNService
二、 MyEclipse中配置SVN
本文介绍如何在MyEclipse各个版本比较通用的配置方式。
a) 下载svn插件
最新的已经是1.8版本了。svn插件网站:http://subclipse.tigris.org/,插件下载地址:http://subclipse.tigris.org/files/documents/906/49209/site-1.8.8.zip
b) 解压svn包
找到其中的两个文件夹features和plugins目录,在Myeclipse目录下面新建一个文件夹,名称随意,可以就叫svn,将解压的两个文件夹放在这个新建的目录中
c) 修改bundles.info文件
找到Myeclipse的安装目录,在安装目录下的configuration\org.eclipse.equinox.simpleconfigurator这个目录中有个bundles.info文件,需要在这个文件中增加插件的相关信息Myeclipse才会去加载。
添加的内容使用下面的类生成:
package com.yang.test.chapter1;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class PluginConfigCreator
{
public PluginConfigCreator()
{
}
public void print(String path)
{
List<String> list = getFileList(path);
if (list == null)
{
return;
}
int length = list.size();
for (int i = 0; i < length; i++)
{
String result = "";
String thePath = getFormatPath(getString(list.get(i)));
File file = new File(thePath);
if (file.isDirectory())
{
String fileName = file.getName();
if (fileName.indexOf("_") < 0)
{
print(thePath);
continue;
}
String[] filenames = fileName.split("_");
String filename1 = filenames[0];
String filename2 = filenames[1];
result = filename1 + "," + filename2 + ",file:/" + path + "/"
+ fileName + "//,4,false";
System.out.println(result);
} else if (file.isFile())
{
String fileName = file.getName();
if (fileName.indexOf("_") < 0)
{
continue;
}
int last = fileName.lastIndexOf("_");//最后一个下划线的位置
String filename1 = fileName.substring(0, last);
String filename2 = fileName.substring(last + 1, fileName
.length() - 4);
result = filename1 + "," + filename2 + ",file:/" + path + "/"
+ fileName + ",4,false";
System.out.println(result);
}
}
}
public List<String> getFileList(String path)
{
path = getFormatPath(path);
path = path + "/";
File filePath = new File(path);
if (!filePath.isDirectory())
{
return null;
}
String[] filelist = filePath.list();
List<String> filelistFilter = new ArrayList<String>();
for (int i = 0; i < filelist.length; i++)
{
String tempfilename = getFormatPath(path + filelist[i]);
filelistFilter.add(tempfilename);
}
return filelistFilter;
}
public String getString(Object object)
{
if (object == null)
{
return "";
}
return String.valueOf(object);
}
public String getFormatPath(String path)
{
path = path.replaceAll("", "/");
path = path.replaceAll("//", "/");
return path;
}
public static void main(String[] args)
{
String plugin = "D:/laogong/tools/myeclipse10/svn";
new PluginConfigCreator().print(plugin);
}
}
最后就是在bundles.info文件后增加上面代码生成的内容,然后重启下Myeclipse即可。