java程式設計師菜鳥進階(九)windows下搭建SVN伺服器及配置myeclipse SVN客戶端

iteye_21202發表於2013-05-12


1.下載SVN最新版本安裝檔案,官網下載地址是:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100,選擇最新發布的SVN安裝檔案進行下載。最新版本是Setup-Subversion-1.6.5.msi,大小7.4MB安裝SVN至我的電腦。最好使用中文路徑,而且路徑中不要有空格。雙擊Setup-Subversion-1.6.5.msi->進入SVN安裝歡迎介面,點選“Next”->進入版權相關宣告介面,點選“Next”->進入安裝目錄選擇介面,作者選擇的是F:\ProgramFiles\Subversion,點選“Next”->進入安裝確認介面,點選“Install”->安裝結束介面,點選“Finish”結束安裝。

2.建立SVN儲存庫。命令列執行以下命令:
svnadmincreateF:\Subversion\repository這時候svn安裝目錄下有repository資料夾生成。

這裡還可以用另一種方法建立SVN儲存庫:

比如我把原始碼庫放在F:\Subversion\repository(注意,確保不能刪除),然後在此資料夾上右鍵,選擇TortoiseSVN->Createrepositoryhere,建立完後,在這個目錄下會自動產生一些目錄和檔案,如下圖:


3.SVN伺服器相關配置。開啟F:\tools\svn\repository\conf目錄,開啟svnserve.conf找到以下兩行:
#[general]
#password-db=passwd
去掉每行開頭的#,第二行是指定身份驗證的檔名,即passwd檔案。儲存。同樣開啟同目錄下的passwd檔案,找到以下幾行,新增幾個使用者:




4.啟動伺服器端服務

可以用命令列svnserve.exe-d-rF:\Subversion\repository,回車後沒有什麼反應,但是不能把命令列視窗關掉,如果關掉服務就終止了。

啟動服務後我們可以測試一下,開啟一個檔案瀏覽器,右鍵TortoiseSVN->Repo-browser,當然客戶端程式TortoiseSVN要裝好。

鍵入伺服器端的Repository地址




單擊OK,如果能看到如下視窗就證明安裝配置成功了




這樣就可以在客戶端用前面配置的三個使用者進行訪問了,注意在其它機器上訪問的時候要把localhost改成本機IP

如果想開機就啟動SVN服務的話,可以建立批處理檔案,開機執行SVN服務。新建一notepad檔案,重新命名其名為“svnserver.bat”,儲存在F:\tools\svn\svnBat目錄下,編輯其內容如下:
@echooff
echoXXX專案SVN伺服器已經啟動......
svnserve--daemon--rootF:\tools\svn\repository
echoXXX專案SVN服務結束!

開啟登錄檔編輯器,找到

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run項,點開型別為“REG_SZ”,名稱為(預設)的那個選項,數值資料輸入"F:\tools\svn\svnBat\svnserver.bat"。注意一定要帶上引號,儲存。再次啟動計算機時,myprojects專案樹SVN服務即啟動。

還可以:

先下載一個SVNService.exe,並將其copyC:\ProgramFiles\Subversion\bin\目錄下(不拷也可以,但為了方便使用,還是放到這裡比較好),然後在命令列視窗並進入到SVNService.exe所在目錄,執行如下圖



然後我們就可以在WindowsService中看到該服務了,將其改成自動啟動,這樣每次開機就會自動啟動svnservice了。

myeclipse安裝svn外掛

在myeclipse安裝svn外掛有很多方式,我也試過其他幾種方式,但是都沒成功,下面這種方式安裝成功了。所以就只介紹這種方式了:

1.下載最新的SVN包:
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
2、在你的磁碟上任意位置建立資料夾:“myplugins/svn”。名字可以任取,為了方便外掛管理,建議名稱為“myplugins”
3、將解壓的svn裡的兩個資料夾拷貝到“myplugins/svn”下。
4、複製下列java程式碼,修改路徑並執行:

package csh.bzu.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
 * MyEclipse9 外掛配置程式碼生成器
 *
 *
 */
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)
    {
        /*你新建的含有svn壓縮檔案的目錄*/
            String plugin = "改成含有svn壓縮檔案的目錄";
        new PluginConfigCreator().print(plugin);
    }
}


這裡需要注意的是修改成為剛才svn所在路徑,建議改為絕對路徑。比如d:/myplugins/svn/。。。
5.找到

“$myeclipse_home/configuration/org.eclipse.equinox.simpleconfigurator/”,開啟其中的“bundles.inf”檔案,為了防止分不清是不是我們自己後加的東西,在最後面多回幾次車,然後貼上第4步執行後的程式碼,儲存
6、重啟myeclipse

二、使用。。

右鍵點選一個專案


選擇Team下的ShareProject

選擇SVN


因為我已經提交過某個專案,所以他自動記住了url,我的url形式如下:


如果你使用於選擇了https協議,可能會涉及到證照問題。那樣的話就要輸入使用者名稱和密碼來驗證




相關文章