亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1204 | 回復: 0
打印 上一主題 下一主題

版本控制之cvs安裝配置 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-03-12 17:45 |只看該作者 |倒序瀏覽
cvs安裝配置:
    可以查看是否安裝cvs
#rpm -qa|grep cvs
    如果未安裝,到
www.cvshome.org
下載一個最新的rpm安裝即可
一、創(chuàng)建系統(tǒng)帳號
假設(shè)目錄 /repos/project 作為多人共享項目的版本控制根目錄,需要用組權(quán)限控制;
         /repos/user    作為存放個人獨占地版本控制根目錄。
管理員帳號為 cvsroot
項目版本控制的公共帳號為 cvsproject
用戶版本控制的公共帳號為 cvsuser
相應的用戶組為 cvsroot, cvsproject, cvsuser。
# groupadd cvsroot
# groupadd cvsproject
# groupadd cvsuser
設(shè)置 cvsroot 屬于多個組,這樣 cvsroot 用戶除了進行系統(tǒng)維護外(如添加新的工程),還可以和其它組用戶一樣具有管理代碼的權(quán)限。
# useradd -g cvsroot -G cvsproject,cvsuser cvsroot
# useradd -g cvsproject -s /sbin/nologin cvsproject
# useradd -g cvsuser -s /sbin/nologin cvsuser
用來和CVS用戶帳號一一對應的系統(tǒng)帳號。系統(tǒng)帳號禁止登錄,密碼設(shè)置在相應的 CVS 對應帳號文件中設(shè)置。
# useradd -g cvsuser -s /sbin/nologin cvs_yan
# useradd -g cvsuser -s /sbin/nologin cvs_wen
二、創(chuàng)建CVS根目錄
# mkdir -p /repos/project
# mkdir -p /repos/user
# chown cvsroot.cvsroot /repos/project
# chown cvsroot.cvsroot /repos/user
# chmod 775 /repos
# chmod 2775 /repos/project  或 (  # chmod 775 /repos/project 然后 # chmod g+s /repos/project  )
# chmod 2775 /repos/user  或 (  # chmod 775 /repos/user 然后 # chmod g+s /repos/user  )
設(shè)置 g+s,是為了當設(shè)置一個用戶屬于多個時,操作不同工程時,能夠保障文件的組id維持不變。否則可能影響其它用戶的權(quán)限。
三、加入cvs服務(wù)(缺省安裝的通常缺省就有cvs服務(wù))
#vi /etc/services
#cvspserver 2401/tcp #pserver cvs service
#cvspserver 2401/udp #pserver cvs service
把cvs服務(wù)放到xinetd系統(tǒng)服務(wù)中
#cd /etc/xinetd.d
#vi cvspserver
文件內(nèi)容:
service cvspserver
{
disable           = no
port              = 2401
flags             = REUSE
socket_type       = stream
protocol          = tcp
wait              = no
user              = root
server            = /usr/bin/cvs
server_args       = -f --allow-root=/repos/project --allow-root=/repos/user  pserver
#log_on_success   += USERID
#log_on_failure   += USERID
}
或者,如果cvs倉庫比較多可以采用如下格式(server_args 有長度限制):
service cvspserver
{
disable           = no
port              = 2401
flags             = REUSE
socket_type       = stream
protocol          = tcp
wait              = no
user              = root
server            = /real/bin/cvs.run
#log_on_success   += USERID
#log_on_failure   += USERID
}
注意:#log_on_success   += USERID #log_on_failure   += USERID 加上這兩個屬性會導致win系統(tǒng)鏈接cvs服務(wù)器很慢,而在linux系統(tǒng)下沒有問題。
vi /real/bin/cvs.run
==============================
#!/bin/bash
/usr/bin/cvs -f \
--allow-root=/repos/project \
--allow-root=/repos/user \
pserver
==============================
四、初始化CVS
初始化CVS切換到cvsroot用戶,然后進行初始化
初始化cvs源代碼庫,此操作生成目錄/home/cvsroot/CVSROOT,其下為一些初始化文件
# su - cvsroot
# cvs -d /repos/project init
# cvs -d /repos/user init
在服務(wù)器端創(chuàng)建工程
# mkdir test
# chown -R cvsproject.cvsproject test
# chmod -R 2770 test
五、創(chuàng)建 CVS 用戶帳號
cvs用戶和服務(wù)器用戶可以是不一樣的
設(shè)置 CVSROOT目錄中config文件的 systemauth = no ,表示必須在passwd中存在用戶名稱和密碼的才可以使用cvs服務(wù)器。
# chmod 644 /repos/project/CVSROOT/config
# vi /repos/project/CVSROOT/config
設(shè)置 SystemAuth = no
# chmod 644 /repos/user/CVSROOT/config
# vi /repos/user/CVSROOT/config
設(shè)置 SystemAuth = no
使用配置文件 CVSROOT/passwd 來管理帳號。
用戶管理 CVS默認使用系統(tǒng)用戶登錄,為了系統(tǒng)安全性的考慮也可以使用獨立的用戶管理。
CVS用戶名和密碼保存在CVSROOT目錄下的passwd文件中,
格式為:   用戶名:密碼:系統(tǒng)用戶
也就是說,它把CVS用戶映射到系統(tǒng)用戶,這樣我們就可以通過系統(tǒng)用戶的權(quán)限設(shè)置來分配給用戶不同的權(quán)限,而不需要讓用戶知道系統(tǒng)用戶名和密碼。
passwd文件默認并不存在,我們必須自己創(chuàng)建。
文件中的密碼字段使用MD5加密,不幸的是CVS沒有提供添加用戶名的命令,所以我們借用Apache的命令來完成這項工作:
htpasswd命令不是為CVS而設(shè),它不能自動添加映射到的用戶名,我們設(shè)置好密碼后,自己把這部分加上。
創(chuàng)建一個新文件同時創(chuàng)建一個cvs用戶
# htpasswd -c /repos/project/CVSROOT/passwd cvs_yan
添加新的cvs用戶
# htpasswd /repos/project/CVSROOT/passwd cvs_wen
密碼也可以使用下列腳本生成:
vi /real/bin/passwdgen.pl
===================================
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";
===================================
# /real/bin/passwdgen.pl your_password
vi /repos/project/CVSROOT/passwd
===================================
cvs_yan:1rV3EIhq1NczU:cvsroot
cvs_wen:KIutquskGh4YU:cvsproject
anonymous::cvsproject
===================================
$ cat /repos/project/CVSROOT/readers
anonymous
密碼也可以使用Linux系統(tǒng)用戶的密碼,從 /etc/shadow 文件里拷貝出密碼
六、配置讀寫權(quán)限
使用CVSROOT目錄下的readers和writers文件進行這個工作。這2個文件默認也是沒有的,自己創(chuàng)建就可以了。
readers文件記錄擁有只讀權(quán)限的用戶名,每行一個用戶;
writers文件記錄擁有讀寫權(quán)限的用戶名,每行一個用戶。
注意,readers文件比writers優(yōu)先,也就是說出現(xiàn)在readers中的用戶將會是只讀的,不管writers文件中是否存在該用戶。
vi /home/cvsroot/wen/CVSROOT/readers
===================================
anonymous
===================================
vi /home/cvsroot/wen/CVSROOT/writers
===================================
cvs_yan
cvs_wen
===================================
七、啟動cvs
重新啟動xinetd服務(wù),CVS服務(wù)器應該能夠啟動了
# /etc/rc.d/init.d/xinetd restart
或者
# service xinetd restart
檢查cvspserver服務(wù)是否已經(jīng)啟動
#netstat -l |grep cvspserver
應該有如下結(jié)果,表明cvs服務(wù)器安裝成功:
tcp 0 0 *:cvspserver *:* LISTEN
八、modules文件
更進一步的管理 CVSROOT目錄下還有很多其他功能,其中最重要的就是modules文件。
這個文件定義了源代碼庫的模塊,下面是一個例子:
代碼:
Linux Linux
Kernel Linux/kernel
這個文件的內(nèi)容按行排列,每一行定義一個模塊,首先是模塊名,然后是模塊路徑,這是相對于CVS根目錄的路徑。
它定義了兩個模塊,第一個是Linux模塊,它位于Linux目錄中,第二個是Kernel模塊,這是Linux模塊的子模塊。 modules文件并非必須的,它的作用相當于一個索引,部分CVS客戶端軟件通過它可以快速找到相應的模塊,比如WinCVS。
九、源代碼倉庫的備份
完全可以用文件備份的方式進行備份。
需要注意的只是,應該確認備份的過程中沒有用戶提交修改,具體的做法可以是停止CVS服務(wù)器或者使用鎖等等。
恢復時只需要把這些文件按原來的目錄結(jié)構(gòu)存放好,因為CVS的每一個模塊都是單獨的一個目錄,與其他模塊和目錄沒有任何瓜葛。
甚至只需要在倉庫中刪除一個目錄或者文件,便可以刪除該模塊的一些內(nèi)容,不過并不建議這么做,使用CVS的刪除功能將會有一個歷史記錄,而對倉庫的直接刪除不留任何痕跡,這對項目管理是不利的。
十、移動倉庫
與備份相似,只需要把該模塊的目錄移動到新的路徑,便可以使用了。
=================================================================
CVS CVSROOT里的文件
=================================================================
文件 CVSROOT/val-tags 用來確定是否一個TAG是可用的;
文件 CVSROOT/history 用來記錄CVS的訪問記錄。
文件 CVSROOT/cvsignore 設(shè)置版本控制過程中,忽略的文件。更新文件時,這些文件將被隱藏,不在顯示為 "?" 類型文件。例如:
*.db
*.info
*.[Sp]o
*.core
*.aps
*.clw
*.exe
*.ncb
*.obj
*.opt
*.plg
Debug
Release
文件 CVSROOT/cvswrappers 匹配文件名,并作相應處理。如: -k b 即以二進制方式處理文件。
文件 CVSROOT/modules 設(shè)置數(shù)據(jù)倉庫中的模塊名,可以通過命令:“cvs co -c”察看當前數(shù)據(jù)倉庫(repository)中包含的模塊/工程名稱。也可以在調(diào)整服務(wù)器端目錄結(jié)構(gòu)時,設(shè)置 modules 來保持和以前設(shè)置的兼容性。
文件 CVSROOT/checkoutlist 列在 checkoutlist 中的文件,在 checkin 后,能夠自動在服務(wù)器 CVSROOT 目錄中重建。
文件 CVSROOT/commitinfo
Commit 事件要觸發(fā)三個腳本文件,依次是 commitinfo, verifymsg, loginfo。其中先遍歷整個目錄樹對所有需要 commit 的文件執(zhí)行 commitinfo文件。再分別針對每一個目錄執(zhí)行 verifymsg, loginfo 腳本。
commitinfo 完成的功能:通過用戶主機名、用戶名來檢查權(quán)限;確認CVS服務(wù)器的版本號不低于某個版本;將遍歷目錄樹的結(jié)果(最后一個目錄名)記錄下來,以便接下來運行 verifymsg, loginfo的腳本能夠確認運行結(jié)束等。
相關(guān)文件:CVSROOT/commitcheck,CVSROOT/cvs_acls.pl,CVSROOT/avail,CVSROOT/commit_prep.pl,CVSROOT/exclude,CVSROOT/cfg.pm,CVSROOT/cfg_local.pm
文件 CVSROOT/avail,用以精細控制權(quán)限。例如:
group|meisters|peter,jdp,markm,joe
# Pick up the list of bad users from ncvs/CVSROOT/badcommitters  See that
# file for details
group|penaltybox|!badcommitters
unavail
avail||CVSROOT
avail||distrib
avail||doc
avail||ports
avail||src
unavail||src/contrib/binutils,src/contrib/file
avail|obrien|src/contrib/binutils,src/contrib/file
unavail||src/contrib/tcpdump
avail|fenner,nectar|src/contrib/tcpdump
avail||www
avail|:meisters
unavail|:penaltybox
文件 CVSROOT/cfg.pm,是 perl腳本的核心包?梢愿鶕(jù)需要加入所需的代碼。
文件 CVSROOT/verifymsg
相關(guān)文件:CVSROOT/logcheck。
用于檢查和格式化 commit log。禁止在版本控制提交時,使用空的 commit log。對于 wincvs 在用戶不提交 commit log 時,會自動使用“no message”作為commit log。
文件 CVSROOT/loginfo
相關(guān)文件:CVSROOT/log_accum.pl,CVSROOT/cfg.pm ,CVSROOT/cfg_local.pm。
將 commit log 分門別類存儲在目錄 CVSROOT/commitlogs 下,并同時通過郵件外發(fā)。為了防止一次事件觸發(fā)多次的郵件外發(fā),該腳本利用到 commitinfo 的運行結(jié)果,只有確認到了目錄樹的最后,才發(fā)送郵件。 模塊和存儲日志文件以及用戶郵件列表在文件CVSROOT/cfg_local.pm中定義。

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/19489/showart_1860614.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP