顯示具有 版本控制 標籤的文章。 顯示所有文章
顯示具有 版本控制 標籤的文章。 顯示所有文章

2011年3月1日 星期二

Acer aspire revo 應用(2) - Git over SSH


-實驗機器:
Acer aspire revo 3700
-目的與架構:
在機器上安裝Git over SSH

-作業系統:
Ubuntu 10.10 Server Edition(32-bit)
-參考文件:
http://progit.org/book/zh/
-所需相關軟體
Git
OpenSSH Server
-過程:
1. 在Git Server機器上建立Repository.

#建立專案目錄
mkdir /project
cd /project
#建立一個基本的Repository!如果未設定GIT_DIR環境變數,則建立在目前工作目錄上.
git --bare init

2. 從遠端將Repository取出
git clone ssh://10.1.1.1/project

2010年11月3日 星期三

為何選擇Mercurial?

大家都知道在版本控制SVN有著很棒的表現,可是卻不能滿足我們的貪婪.
在軟體設計上所有人都期望著one stop shopping.可以一套軟體滿足所有的需求!

在此之前我用了SVN很久了,不論是個人或在公司!但他一直有著一些麻煩的小缺點,讓我開始尋找另一個替代品.
我先說遇到的一些小問題吧:
  • 想要合併兩個不同Repository時, 得先把其中一個dump出來再load到另一個上才能開始合併!大家都知道SVN的速度是出了名的,尤其是資料龐大時...
  • 當我想臨時測試某個新的idea時, 要branch出來還得連上server.
  • 我也很希望可以真正的砍掉那些無用的branchs,不過這樣就違反了版本控制的精神,所以這我不care
我想這是我最常遇到的問題.

所以我開始找尋新的方案,那就是--分散式版本控制-Mercurial.
其實在這之前我也用過Git,但他強大的功能與複雜的指令.真是讓我的頭腦無法負荷,常常會用著SVN的work flow來思考,而把指令給搞混!再加上他跨平台跨的不是那麼漂亮,Linux上跑得真的是嚇嚇叫,速度真的無法挑剔.

而之前看到了Mercurial,從官網上看起來
1. 指令與用法跟SVN非常相似.
2. 跨平台又是用Python開發.
3. Google project也支援,目前還未試過,之前都使用SVN的方式存取.

參考網站:
http://sp1.wikidot.com/versioncontrol

Linux SVN+SSH


A. 需求:
1. 建立SVN server透過SSH來登入存取
2. 建立public/private key來登入
B. 步驟:
1. 建立SVN server透過SSH來登入存取
[a]. 建立SVN repository.
REPOSITORY=/opt/svn/repository
mkdir -p $REPOSITORY
svnadmin create $REPOSITORY
ln -s $REPOSITORY /svn

[b]. 修改 conf/svnserve.conf
1). #anon-access = read --> anon-access = none
2). #auth-access = write --> auth-access = write
3). #authz-db = authz --> authz-db = authz

[c]. 修改 conf/authz
[group]
Administrators = user1,user2
[/]
@Administrators = rw

2. 建立public/private key來登入
[a]. 產生 public/private key(由User或由管理人員統一產生均可)
ssh-keygen -t dsa --> 產生使用 DSA 演算法的Key
ssh-keygen -t rsa --> 產生使用 RSA 演算法的Key
[b]. 將 public key(一般副檔名為.pub) 放置 SVN server上
cat id_dsa.pub >> ~/.ssh/authorized_keys
記得使用 >> (附加)方式,
因為authorized_keys可能放置多把 public key
[c]. 將 private key由使用者自行保管

C. 其他: ssh-agent, ssh-add 的使用