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即可。