涔熸鏄敱浜嶤VS浜х敓鍜屽簲鐢ㄤ簬寮婧愪笘鐣岋紝浣垮緱瀹冨湪浠g爜鐨勮闂帶鍒舵柟闈㈠瓨鍦ㄥ厛澶╂х殑涓嶈凍錛屽湪搴旂敤浜庡ぇ涓瀷鐨勫晢涓氶」鐩殑浠g爜綆$悊涓敹鍒頒竴瀹氱殑闄愬埗銆傚洜涓鴻繖綾誨瀷 鐨勯」鐩氬父閮介渶瑕佹瘮杈冪粏鑷寸殑鍒嗗伐錛屼笉鍚岀殑灝忕粍鍒嗗埆璐熻矗涓嶅悓妯″潡鐨勫紑鍙戯紝浠g爜闇瑕佹瘮杈冧弗鏍肩殑璁塊棶鎺у埗錛屼笉鍚岀殑寮鍙戜漢鍛樺彧鑳借闂巿鏉冪殑浠g爜銆?/p>
騫歌繍鐨勬槸錛孋VS鏄竴涓紑婧愮殑杞歡錛屾垜浠湁浠涔堥渶瑕佺殑璇濆彲浠ラ氳繃淇敼瀹冪殑婧愪唬鐮佹潵瀹炵幇銆侰VSACL灝辨槸瀹炵幇璁塊棶鎺у埗鐨凜VS琛ヤ竵銆傚畠鏈韓涔熸槸涓涓紑婧愮殑欏圭洰錛岄」鐩富欏墊槸http://cvsacl.sourceforge.net/index.html 銆傚畠鎻愪緵浜?jiǎn)瀵笴VS鐨勬ā鍧楋紝鐩綍鍜屾枃浠朵互鍙?qiáng)鍒嗘敮鍜宼ag鐨勯珮綰ц闂帶鍒躲侰VSACL瀹氫箟浜?綰т笉鍚岀殑璁塊棶鏉冮檺,鍒嗗埆鏄?
鏉冮檺 | 鍏抽敭瀛?/p> | 璇存槑 |
娌℃湁鏉冮檺 | n | 鐢ㄦ埛涓嶈兘鍋氫換浣昪vs鎿嶄綔 |
璇繪潈闄?/p> | r | 鍙互鎵цannotate, checkout, diff, export, log, rannotate, rdiff, rlog, status鍛戒護(hù) |
鍐欐潈闄?/p> | w | 鍙互鎵цcommit/checkin鍛戒護(hù) |
tag | t | 鍙互鎵цtag/rtag鍛戒護(hù),渚濊禆璇繪潈闄? |
鍒涘緩 | c | 鍙互鎵цadd import 鍛戒護(hù) |
鍒犻櫎 | d | 鍙互鎵цrm鍛戒護(hù) |
鍏ㄩ儴鏉冮檺 | a | 鍙互鎵ц鎵鏈塩vs鍛戒護(hù)澶勭悊cvsacl綆$悊鍛戒護(hù) |
綆$悊鏉冮檺 | p | 鍙互鎵ц鎵鏈夊懡浠?/p> |
1錛?nbsp; 涓嬭澆CVSACL錛?/p>
閫氳繃濡備笅緗戝潃鍙互涓嬭澆鍒癈VSACL鐩稿叧紼嬪簭錛岀洰鍓嶆渶鏂扮増鏈槸cvsacl-1.2.5錛?/p>
https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655
cvsacl-1.2.5-for-cvs-1.11.22.tar.gz
cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
2錛?nbsp; 瀹夎CVSACL錛?/p>
瀹夎鏂規(guī)硶錛歝vs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# tar -zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
//瑙e帇緙ヽvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# mv cvs-1.11.22-cvsacl-1.2.5-patched cvs-1.11.22
//淇敼cvs-1.11.22-cvsacl-1.2.5-patched鐩綍鍚嶇О涓?cvs-1.11.22
[root@localhost setup_cvs]# cd cvs-1.11.22 //榪涘叆cvs-1.11.22
[root@localhost cvs-1.11.22]# ./configure //緙栬瘧瀹夎
[root@localhost cvs-1.11.22]# make
[root@localhost cvs-1.11.22]# make install
[root@localhost setup_cvs]# cvs –version //鏌ョ湅cvs鐗堟湰
Concurrent Versions System (CVS) 1.11.22 (client/server)
with CVSACL Patch 1.2.5 (cvsacl.sourceforge.net)
娉細(xì)涓嶉渶瑕佺壒鎰忓垹闄ゆ棫鐗堟湰鐨凜VS銆?/p>
3錛?nbsp; CVS鏈嶅姟鍣ㄧ殑閰嶇疆錛?/p>
錛?錛?淇敼閰嶇疆鏂囦歡錛?/p>
[root@localhost /]# vi /etc/services
鏌ョ湅鏄惁鏈夛細(xì)
cvspserver 2401/tcp #CVS client/server operations
cvspserver 2401/udp #CVS client/server operations
娉細(xì)緋葷粺鑷甫浜?jiǎn)CVS鏃訛紝榪?琛屼篃宸茬粡鏈変簡(jiǎn)錛屽彧闇瑕佺‘璁や竴涓嬨傚鏋滄病鏈夛紝璇瘋嚜宸卞姞涓婂幓銆?
錛?錛?鍒涘緩CVS鍚姩鑴氭湰錛?/p>
[root@localhost /]# vi /etc/xinetd.d/cvspserver
鍐呭濡備笅錛?/p>
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_success += USERID
log_on_failure += USERID
}
娉細(xì)鍏朵腑錛宻erver鎸囧畾CVS鍙墽琛屾枃浠惰礬寰勶紝榛樿瀹夎灝辨槸/usr/bin/cvs錛宻erver_args鎸囧畾婧愪唬鐮佸簱璺緞鍙?qiáng)璁よ瘉鏂瑰紡绛夊Q?渚嬪瓙涓妸婧愪唬鐮佸瓨鏀懼湪cvsroot鐨勪富鐩綍涓紝涔熷彲浠ュ彟澶栨寚瀹氳礬寰勶紝浣嗗繀欏繪敞鎰忔潈闄愯緗紝pserver鏄瘑鐮佽璇佹柟寮忥紝榪欑鏂瑰紡鐨勫畨鍏ㄦц宸竴浜涳紝浣?鎿嶄綔璧鋒潵姣旇緝綆鍗曘傝娉ㄦ剰姣忚絳夊彿宸﹀彸閮芥湁涓涓┖鏍鹼紝鍚﹀垯鏃犳硶鍚姩鏈嶅姟銆?/p>
錛?錛?閲嶆柊鍚姩xinetd鏈嶅姟錛?/p>
[root@localhost /]# service xinetd restart
鏌ョ湅鏄惁鍚姩錛歔root@localhost /]# netstat -l | grep cvspserver
灞忓箷鏄劇ず錛歵cp 0 0 *:cvspserver *:* LISTEN
璇存槑宸茬粡姝e父鍚姩錛屽鏋滄病鏈夎鍋氬涓嬫鏌ワ細(xì)
<1>璇鋒鏌i /etc/xinetd.d/cvspserver鏂囦歡涓殑server = /usr/bin/cvs璺緞鍜屽疄闄呮墽琛屾枃浠舵墍鍦ㄤ綅緗槸鍚︿竴鑷達(dá)紱(涓鑸繖姝ラ鍗沖彲瑙e喅璇ラ棶棰?
<2>璇烽噸鏂版鏌ラ厤緗繃紼嬫槸鍚︽湁閿欒鎴栬呴仐婕忥紱
<3>鏈鍚庤繕蹇呴』媯(gè)鏌ラ槻鐏鐨勮緗紝鎶?401绔彛鎵撳紑銆?/p>
4錛?nbsp; CVSACL鏉冮檺璁劇疆錛?/p>
錛?錛?鍒涘緩鐢ㄤ簬CVS鐨勪笓鐢ㄧ郴緇熺粍鍜岀敤鎴鳳細(xì)
[root@localhost /]# groupadd cvsroot
[root@localhost /]# useradd –g cvsroot cvsadmin
錛?錛?鍒濆鍖朿vs鏈嶅姟鍣ㄧ幆澧冿細(xì)
[root@localhost /]# cvs -d /cvstest init
錛?錛?璁劇疆CVS閰嶇疆搴撳綊灞炲強(qiáng)鏉冮檺錛?/p>
[root@localhost /]# chown –R cvsadmin.cvsroot /cvstest
[root@localhost /]# chmod –R 770 /cvsroot
錛?錛?淇敼CVSROOT/CVSROOT/aclconfig閰嶇疆鏂囦歡錛?/p>
[root@localhost /]# vi /cvstest/CVSROOT/aclconfig
UseSystemGroups=yes 琛岄娣誨姞“#”錛岃〃紺烘敞閲婃帀銆?/p>
UseCVSGroup=yes 鍘婚櫎琛岄鐨?#8220;#”錛岃〃紺哄惎鐢ㄦ鍙ャ?/p>
錛?錛?鍒涘緩CVS鐢ㄦ埛鍙?qiáng)缁勫Q?/p>
[root@localhost /]# cd /cvstest/CVSROOT
[root@localhost /]# htpasswd –c passwd yueyx
[root@localhost /]# vi passwd
yueyx:*******:cvsadmin
灝唒asswd鏂囦歡涓殑鎵鏈塩vs鐢ㄦ埛鏄犲皠鍒板悓涓涓郴緇熺敤鎴穋vsadmin涓娿?/p>
[root@localhost /]# vi group
鏂囦歡鏍煎紡錛?/p>
group1:x:1:yueyx,test1
鐢ㄦ埛涔嬮棿鐢?“,”鍒嗗壊銆?/p>
娉細(xì)cvsacl鏈変釜bug錛屽繀欏誨湪緇勭敤鎴鋒渶鍓嶈竟娣誨姞涓涓笉瀛樺湪鐨刢vs鐢ㄦ埛錛実roup鏂囦歡鎵嶄細(xì)鐢熸晥銆傚師鍥犱笉鏄庯紝浣嗘鏂規(guī)硶紜疄綆$敤銆?/p>
錛?錛?浣跨敤cvsacl緇嗗寲鏉冮檺錛?/p>
[root@localhost /]# cvs -d /cvstest racl yueyx:wcd –R Project/doc
璇存槑錛?cvstest錛氶厤緗簱璺緞 yueyx錛氱敤鎴?wcd錛氬弬瑙佹湰鏂?#8220;CVSACL瀹氫箟浜?綰т笉鍚岀殑璁塊棶鏉冮檺”琛ㄦ牸銆?Project 錛氶厤緗簱涓殑Module(妯″潡)錛宒oc錛歁odule(妯″潡)涓嬬殑鐩綍
鏍煎紡錛歝vs –d 閰嶇疆搴撲綅緗?racl [鐢ㄦ埛||緇?鏉冮檺] [-Rl] [-r tag] [妯″潡…] [鏂囦歡…]
- R 榪涜鐩綍閫掑綊
- r rev 璁懼畾鐗堟湰/鏍囩
- l鍒楀嚭宸插畾涔夌殑ACLs鏉冮檺
1銆?nbsp; CVS綆榪?/span>
2銆?nbsp;
CVS鏈嶅姟鍣ㄧ殑瀹夎
榛樿鎯呭喌涓嬶紝CVS鍦≧edhat Linux涓凡緇忓畨瑁咃紝榪欎竴鐐瑰彲浠ラ氳繃鍦↙inux鍛戒護(hù)琛岀殑鎯呭喌涓嬭繍琛岋細(xì)
rpm –q
cvs
濡傛灉鍑虹幇CVS鐨勭増鏈俊鎭氨璇佹槑宸茬粡瀹夎鎴愬姛浜?jiǎn)銆?br />
CVS鏈嶅姟鍣ㄥ畨瑁呭寘鍙互浠庣綉涓婄殑寰堝鍦版柟涓嬭澆錛屼篃鍙互鍒癈VS鐨勫畼鏂圭綉绔欒繘琛屼笅杞姐傛牴鎹綘鎵浣跨敤鐨勭郴緇燂紝涓嬭澆鐩稿簲鐨勭増鏈紝鐒跺悗榪涜瀹夎銆傚洜涓烘垜浠殑欏圭洰鏄湪Redhat
Linux涓嬩嬌鐢–VS鏈嶅姟鍣ㄨ繘琛岀増鏈鐞嗭紝鎵浠ユ湰鏂囧皢涓昏鍩轟簬Redhat
Linux榪涜浠嬬粛銆傞鍏堜笅杞紺VS鏈嶅姟鍣ㄧ殑rpm鍖咃紝褰撶劧涔熷彲浠ヤ笅杞藉叾瀹冩柟寮忕殑鍖呭婧愮▼搴忓寘錛岀劧鍚庨噰鐢ㄤ互涓嬪懡浠よ繘琛屽畨瑁咃細(xì)
rpm -ivh cvs-1.11.7-1.i386.rpm
3銆?nbsp; CVS鏈嶅姟鍣ㄧ殑閰嶇疆
瀹夎瀹屼箣鍚庣殑絎竴浠朵簨灝辨槸瑕侀厤緗瓹VS鏈嶅姟鍣ㄧ殑閰嶇疆鏂囦歡錛屼嬌鍏惰兘姝e父鐨勫伐浣溿傞鍏堝湪/etc/services鏂囦歡涓坊鍔燾vspserver錛屼嬌鍏舵垚涓篖inux鐨勪竴縐嶆湇鍔′篃灝辨槸cvs鏈嶅姟鍣ㄤ緥紼嬬殑鍏ュ彛錛岄厤緗涓嬶細(xì)
cvspserver 2401/tcp # cvs client/server
operations
cvspserver 2401/udp # cvs
client/server operations
濡傛灉鏂囦歡涓凡緇忓瓨鍦ㄤ笂闈㈢殑涓よ鏂囧瓧錛屽氨涓嶇敤娣誨姞浜?jiǎn)銆?br />
4銆?nbsp;
閰嶇疆xinetd錛岀敤xinetd鏉ュ惎鍔–VS楠岃瘉鏈嶅姟鍣細(xì)
榪涘叆鍒?etc/xinetd.d/鐩綍錛岀劧鍚庣紪杈戜竴涓枃鏈枃浠訛紝鍚嶅瓧涓瀹氳涓?etc/services涓殑鍏ュ彛鍚嶅瓧cvspserver涓鑷達(dá)紝鎵浠ヨ繖閲岀敤cvspserver浣滀負(fù)鏂囦歡鍚嶏紝鏂囦歡鐨勫唴瀹瑰涓嬫墍紺猴細(xì)
service cvspserver
{
disable = no
flags =
REUSE
socket_type = stream
wait = no
user =
root
server = /usr/bin/cvs
server_args = -f
--allow-root=/usr/cvsroot pserver
log_on_failure +=
USERID
}
緙栬緫鏂囦歡涔嬪悗嫻嬭瘯cvspserver鏈嶅姟鏄惁閰嶇疆鎴愬姛銆?br />
鎵ц
/etc/init.d/xinetd
restart
閲嶆柊鍚姩鏈嶅姟錛屽惎鍔ㄦ垚鍔熶箣鍚庯紝鎵ц涓嬮潰鐨勮鍙ワ紝楠岃瘉鏈嶅姟鏄惁鍚姩姝e父錛?br />
telnet localhost
2401
濡傛灉鍑虹幇濡備笅瀛楁牱錛?br />
Trying 127.0.0.1...
Connected to localhost.
Escape
character is '^]'.
杈撳叆hi錛屼細(xì)緇х畫杈撳嚭濡備笅瀛楁牱
cvs [pserver aborted]: bad auth protocol
start: hi
Connection closed by foreign
host.
鍑虹幇浠ヤ笂鐨勭幇璞¤〃紺篊VS鐢ㄦ埛楠岃瘉鏈嶅姟鍣ㄥ凡緇忛厤緗垚鍔熴?br />
濡傛灉鍑虹幇濡備笅瀛楁牱錛岃〃紺洪厤緗笉鎴愬姛錛岃閲嶆柊媯(gè)鏌ヤ互涓婄殑閰嶇疆錛?br />
Trying
127.0.0.1...
telnet: connect to address 127.0.0.1: Connection
refused
5銆?nbsp;
閰嶇疆CVS鐢ㄦ埛錛?br />
棣栧厛寤虹珛涓涓敤鎴風(fēng)粍cvs錛屽彲浠ヤ嬌鐢╣roupadd鎴栬卆ddgroup鍛藉悕錛屼篃鍙互鐩存帴緙栬緫/etc/group鏂囦歡娣誨姞榪欎釜緇勶紝鐒跺悗娣誨姞涓涓敤鎴穋vsuser錛?br />
groupadd
cvs
useradd cvsuser –g cvs
passwd
cvsuser
璁劇疆鏂扮殑瀵嗙爜銆?br />
鍦?usr鐩綍涓嬪緩绔媍vsroot鐩綍錛堜篃鍙互鍦ㄥ叾瀹冪殑鐩綍涓嬪緩錛屼絾鏄簲璇ュ拰cvspserver鏂囦歡涓殑閫夐」涓鑷達(dá)級(jí)錛岀劧鍚庝慨鏀?usr/cvsroot鐨勫睘涓誨強(qiáng)灞炴э細(xì)
cd
/usr
mkdir cvsroot
chown –R cvsuser.cvs cvsroot
chmod –R 771
cvsroot
6銆?nbsp;
鍒濆鍖朇VS鏈嶅姟鍣?br />
瀹夎瀹孋VS鏈嶅姟鍣ㄤ箣鍚庣殑鍙︿竴浠墮噸瑕佺殑浜嬫儏灝辨槸瑕佸垵濮嬪寲CVS鏈嶅姟鍣ㄧ殑鏍圭洰褰曪紝浠ュ悗鍒涘緩鐨凜VS欏圭洰閮藉皢寤虹珛鍦ㄨ繖涓洰褰曚笅錛岄噰鐢ㄧ殑鍛戒護(hù)濡備笅錛?br />
cvs
–d /usr/cvsroot
init
濡傛灉娌℃湁浠諱綍鎻愮ず錛岃〃紺哄垵濮嬪寲鎴愬姛銆傚垵濮嬪寲鎴愬姛涔嬪悗錛屼細(xì)鍦?usr/cvsroot鐩綍涓垱寤篊VSROOT鐩綍錛岀洰褰曚腑鏈夊涓嬫枃浠訛細(xì)
-r--r--r--
1 root root 493 Apr 5 20:19 checkoutlist
-r--r--r-- 1
root root 693 Apr 5 20:19 checkoutlist,v
-r--r--r-- 1
root root 760 Apr 5 20:19 commitinfo
-r--r--r-- 1 root
root 960 Apr 5 20:19 commitinfo,v
-r--r--r-- 1 root
root 527 Apr 5 20:19 config
-r--r--r-- 1 root root
727 Apr 5 20:19 config,v
-r--r--r-- 1 root root 753 Apr 5
20:19 cvswrappers
-r--r--r-- 1 root root 953 Apr 5 20:19
cvswrappers,v
-r--r--r-- 1 root root 1025 Apr 5 20:19
editinfo
-r--r--r-- 1 root root 1225 Apr 5 20:19
editinfo,v
drwxrwxr-x 2 root root 4096 Apr 5 20:19
Emptydir
-rw-rw-rw- 1 root root 0 Apr 5 20:19
history
-r--r--r-- 1 root root 1141 Apr 5 20:19
loginfo
-r--r--r-- 1 root root 1341 Apr 5 20:19
loginfo,v
-r--r--r-- 1 root root 1151 Apr 5 20:19
modules
-r--r--r-- 1 root root 1351 Apr 5 20:19
modules,v
-r--r--r-- 1 root root 564 Apr 5 20:19
notify
-r--r--r-- 1 root root 764 Apr 5 20:19
notify,v
-r--r--r-- 1 root root 649 Apr 5 20:19
rcsinfo
-r--r--r-- 1 root root 849 Apr 5 20:19
rcsinfo,v
-r--r--r-- 1 root root 879 Apr 5 20:19
taginfo
-r--r--r-- 1 root root 1079 Apr 5 20:19
taginfo,v
-rw-rw-rw- 1 root root 0 Apr 5 20:19
val-tags
-r--r--r-- 1 root root 1026 Apr 5 20:19
verifymsg
-r--r--r-- 1 root root 1226 Apr 5 20:19
verifymsg,v
榪欐牱鐩綍/usr/cvsroot灝辨垚涓篊VS鏈嶅姟鍣ㄧ殑鏍圭洰褰曪紝浠ュ悗鍒涘緩鐨勭洰褰曢兘灝嗛粯璁ょ殑瀛樻斁鍦ㄨ繖涓洰褰曚笅銆?br />
7銆?nbsp;
鐧誨綍cvs鏈嶅姟鍣紙鍦↙inux鎴栧叾瀹僓nix緋葷粺涓嬭繘琛岀櫥褰曠殑鎯呭喌錛夛細(xì)
杈撳叆濡備笅鍛戒護(hù)錛?br />
cvs -d
:pserver:cvsuser@localhost:/usr/cvsroot
login
鎻愮ず杈撳叆瀵嗙爜錛岃緭鍏ヤ笂闈㈣緗殑瀵嗙爜錛屽鏋滄病鏈変換浣曟彁紺猴紝灝辮瘉鏄庢垚鍔熺櫥褰曚簡(jiǎn)
絎竴嬈$櫥閷勬渻鏈塩vs login: warning: failed to open /home/cvsuser/.cvspass for reading: No such file or directory欏炰技鐨勬彁紺轟俊鎭?浠ュ悗鐧婚寗灝變笉鏈冩湁浜?
鐧誨綍鎴愬姛涔嬪悗鍦ㄥ綋鍓嶇敤鎴風(fēng)殑$HOME鐩綍涓敓鎴?cvspass鏂囦歡錛屽彲浠ュ埄鐢╲i瀵規(guī)枃浠惰繘琛屽療鐪嬨?br />
鐢變簬浠?#8220;.”寮澶寸殑鏂囦歡鍦↙inux涓槸闅愯棌鐨勶紝鎵浠ュ彲浠ュ埄鐢ㄥ涓嬪懡浠よ繘琛屽療鐪嬶細(xì)
ls
–a
榪欎釜鏂囦歡璁拌澆浜?jiǎn)鐢ㄦ堬L(fēng)殑鐧誨綍淇℃伅銆傛墽琛屾敞閿鍛戒護(hù)鍙互鍒犻櫎璇ユ枃浠朵腑鐨勭櫥褰曚俊鎭?br />
cvs -d
:pserver:cvsuser@localhost:/usr/cvsroot logout
涓嬮潰瀵圭櫥褰曞懡浠ょ殑璇硶榪涜璇存槑錛?
鍏朵腑錛?pserver琛ㄧず閲囩敤pserver鏂瑰紡榪涜鐢ㄦ埛鐧誨綍璁よ瘉錛屼竴鑸殑CVS鏈嶅姟鍣ㄩ兘閲囩敤榪欑鏂瑰紡錛屽綋鐒朵篃鍙互閲囩敤鍏跺畠鏂瑰紡錛屽叿浣撳弬鑰冪浉搴旂殑璧勬枡錛?
:cvsuser琛ㄧず瑕佺櫥褰曠殑鐢ㄦ埛鍚嶏紝鍙鏄痗vs緇勭殑鎴愬憳閮藉彲浠ワ紝濡傦細(xì)cvsuser錛?
@host琛ㄧず瑕佺櫥褰曠殑鏈嶅姟鍣紝鍙互鏄疍NS鍚嶏紝涔熷彲浠ユ槸IP鍦板潃錛屽錛?92.168.0.1錛?
:/usr/cvsroot琛ㄧずCVS鍦ㄦ湇鍔″櫒涓婄殑鐩綍錛屼篃鍙互鏄叾瀹冪洰褰曪紙鐢辯6涓綘鎵鎸囧畾鐨勭敤鏉ュ仛init鍒濆鍖栫殑鐩綍鍐沖畾錛夛紱
鎻愮ず錛?br />
a銆佷篃鍙互鎶奺xport
CVSROOT=:pserver:cvsuser@192.168.0.1:/usr/cvsroot榪欎竴鍙ョ洿鎺ュ啓鍦ㄧ敤鎴風(fēng)殑鍒濆鍖栨枃浠朵腑錛堝錛?bash_profile錛夛紝榪欐牱鐢ㄦ埛姣忔鐧誨綍鏃訛紝鍙渶杈撳叆錛?
cvs login
鐒跺悗杈撳叆鐩稿簲鐨勫彛浠ゅ氨鍙互鐧誨綍鍒癱vs鏈嶅姟鍣ㄤ笂銆?
b銆佸鏋滄槸鏈湴鐧誨綍錛屽彲浠ョ洿鎺ユ妸export
CVSROOT=/usr/cvsroot榪欎竴鍙ュ啓鍦ㄧ敤鎴風(fēng)殑鍒濆鍖栨枃浠跺錛?etc/profile涓紱鐒跺悗鎵ц濡備笅鍛戒護(hù)浣跨幆澧冨彉閲忕敓鏁堬細(xì)
source
/etc/profile
8銆?nbsp;
鍚慍VS娣誨姞鏂扮殑欏圭洰妯″潡
涓鑸垜浠兘宸茬粡鏈変竴涓垨澶氫釜欏圭洰浜?jiǎn)锛寴q欐牱鎴戜滑鍙互鐢ㄤ笅闈㈡楠ょ敓鎴愪竴涓柊鐨凜VS欏圭洰銆傚皢涓涓伐紼嬫枃浠剁疆浜嶤VS涓繘琛岀増鏈帶鍒訛紝鍦–VS
鏈涓О浣滃鍏?import)銆備粠鍚嶅瓧涓婂氨鍙互鐪嬪嚭錛屽湪瀵煎叆鍓嶉渶瑕佷負(fù)姝や綔浜涘噯澶囧伐浣溿?br />
杈撳叆鎿嶄綔鐨勫熀鏈姹傛槸鏈変釜"騫插噣"鐨勭洰褰曠粨鏋勩?騫插噣"鐨勬剰鎬濇槸涓嶉渶瑕佺増鏈帶鍒剁殑鏂囦歡閮借縐昏蛋浜?jiǎn)锛堝缂栬瘧鐢熸垚鐨勬枃錃g錛屽浠芥枃浠剁瓑絳夛級(jí)銆傚鏋滃伐紼嬪凡緇忓紑濮嬩竴孌墊椂闂翠簡(jiǎn)錛岃繖灝辨樉寰楀緢閲嶈銆傚湪鐩綍涓篃璁告湁浜涙槸涓嶆墦綆楀皢鍏剁疆浜庣増鏈帶鍒朵笅鐨勬枃浠訛紝浣嗘槸鍙堟兂灝嗕粬浠斁鍦ㄨ繖閲岋紝榪欑鎯呭喌涓嬶紝浣犺鍦ㄨ緭鍏ヤ箣鍓嶅皢瀹冧滑縐昏蛋錛岀劧鍚庡啀縐誨洖鏉ャ?br />
娉ㄦ剰鐨勬槸CVS
璁や負(fù)絀虹洰褰曟槸涓嶅瓨鍦ㄧ殑銆傚鏋滄兂澧炲姞涓涓棦涓嶅寘鍚枃浠跺張涓嶅寘鍚瓙鐩綍鐨勭洰褰曪紝闇瑕佸湪鍏朵笅鍒涘緩涓涓搼鏂囦歡銆傚緩璁綘鍒涘緩涓涓悕涓?README.txt
鐨勬枃浠訛紝鍏跺唴瀹逛負(fù)瀵圭洰褰曠殑綆瑕佽鏄庛?br />
榪涘叆鍒板凡鏈夐」鐩殑鐩綍錛屾瘮濡傚彨 cvstest錛?br />
cd
/home/cvsuser/cvstest
榪愯鍛戒護(hù)灝嗛」鐩枃浠跺鍏ュ埌cvs浠撳簱涓細(xì)
cvs import -m "this is a cvstest
project" cvstest tengtu
start
璇存槑錛歩mport 鏄痗vs鐨勫懡浠や箣涓錛岃〃紺哄悜cvs浠撳簱杈撳叆欏圭洰鏂囦歡錛?
-m鍙傛暟鍚庨潰鐨勫瓧涓叉槸鎻忚堪鏂囨湰錛屽欏圭洰榪涜鎻忚堪錛屽鏋滀笉鍔?-m
鍙傛暟錛岄偅涔坈vs浼?xì)鑷姩杩愯涓涓紪杈戝櫒錛堜竴鑸槸vi錛屼絾鏄彲浠ラ氳繃淇敼鐜鍙橀噺EDITOR鏉ユ敼鎴愪綘鍠滄鐢ㄧ殑緙栬緫鍣級(jí)璁╀綘杈撳叆淇℃伅錛宑vstest
鏄」鐩悕縐幫紙瀹為檯涓婃槸浠撳簱鍚嶏紝鍦–VS鏈嶅姟鍣ㄤ笂浼?xì)瀛樺偍鍦ㄤ互杩欎釜鍚嶅瓧鍛藉悕鐨勪粨搴撻噷锛?jí)
tengtu鏄繖涓巶鍟嗘爣璁幫紟
start 鏄瘡嬈?import
鏍囪瘑鏂囦歡鐨勮緭鍏ュ眰嬈$殑鏍囪銆?br />
9銆?nbsp;
浠巆vs鏈湴鏈嶅姟鍣ㄤ笂checkout鐩稿簲鐨勬ā鍧楋細(xì)
a銆佸鏋滄槸鍦–VS鏈嶅姟鍣ㄦ墍鍦ㄨ綆楁満涓婏紝鍙互鐩存帴閲囩敤濡備笅鍛戒護(hù)錛?
cvs checkout
cvstest
榪欐牱灝嗘妸cvstest欏圭洰妯″潡checkout鍒板綋鍓嶇洰褰曚笅銆?
b銆佸鏋滄槸鍦ㄨ繙紼嬭繍琛孡inux鎴栧叾瀹僓nix緋葷粺涓婏紝鍦ㄧ7涓櫥褰曚箣鍚庝篃鍙互鐢ㄤ笂杈圭殑鍛戒護(hù)鎶婄浉搴旂殑欏圭洰妯″潡checkout鍒板綋鍓嶇洰褰曚笅銆?
鍙﹀錛屽鏋滄槸鍦╳indows绔繘琛宑heckout錛屽彲浠ラ噰鐢╓inCVS錛岄偅涔堣繕瑕佸WinCVS榪涜鍏跺畠鐨勪竴浜涢厤緗紝涓嬩竴閮ㄥ垎灝嗗叿浣撲粙緇嶅畠鐨勯厤緗柟娉曘?
寰堝鏃跺欐垜浠湪鍋氶」鐩紑鍙戞椂錛屼細(xì)鐢ㄥ埌cvs錛岀幇鍦ㄦ垜緇欏ぇ瀹朵粙緇嶄竴涓嬪叧浜巈clipse涓嬫庝箞浣跨敤cvs綆$悊鍔熻兘錛宔clipse鏈韓鏄嚜甯vs鐨勶紝鎴戜滑鍙綆鍗曡緗竴涓嬭瀹?a class="qs_highlight1" id="hl_5" onmouseover="window.clearTimeout(_ht[5]);qs_show_frame(event,this,5);" style="font-size: 1em" onclick="_write_cookie('click33',5);" onmouseout="_on_div[5]=false;_ht[5]=window.setTimeout('qs_is_on_div(5)',500);" target="_blank">榪炴帴鍒癱vs鏈嶅姟鍣ㄤ笂銆?br />
鐪嬩笅鍥?br />
鐐瑰嚮cvs鐨勫浘鏍囧嚭鐜版鐢婚潰鍚庯紝鍦ㄧ┖鐧藉鐐瑰嚮鍙抽敭灝卞彲浠ワ紝鏂板緩涓涓祫婧愬簱浣嶇疆錛屽涓嬪浘
杈撳叆瀹屼俊鎭悗錛岀偣鍑誨畬鎴愶紝灝卞緩绔嬪ソ浜?jiǎn)锛岃窡cvs鏈嶅姟鍣ㄧ殑榪炴帴錛屼笅闈㈡垜浠墦寮cvs鏈嶅姟鍣ㄤ笂鐨勭洰褰?br />
瀵逛簬cvs鏈嶅姟鍣ㄤ笂鐨勭洰褰曪紝鎴戜滑鍙互媯(gè)鍑猴紝涓縐嶆槸媯(gè)鍑轟負(fù)欏圭洰錛屽氨浼?xì)灏嗙洰褰晪個(gè)鍑哄湪eclipse涓嚜鍔ㄧ敓鎴愪竴涓」鐩?
涔熷彲浠ュ皢鏌愪釜鐩綍媯(gè)鍑哄埌浠諱綍涓涓」鐩腑鍗熾旀鍑哄埌銆曡繖涓姛鑳斤紝闇瑕?/a>娉ㄦ剰鐨勬槸鍙湁媯(gè)鍑虹殑鏂囦歡錛屽湪淇敼鍚庢墠鍙互鎻愪氦銆備笅闈㈢湅瀵規(guī)枃浠剁殑鎿嶄綔錛?br />
瀵逛簬鏂囦歡鏉ヨ錛屾垜浠渶甯哥敤鐨勫氨鏄瘮杈僣vs涓悇涓増鏈枃浠剁殑鍖哄埆錛屾柟渚挎垜浠煡鎵炬洿鏂版湁娌℃湁闂錛岀偣鍑諱換浣曚竴涓枃浠剁偣鍑誨彸閿氨鍙湅鍒頒笂闈㈢殑鍥劇墖錛岀劧鍚庢垜浠嬌鐢ㄥ湪璧勬簮鍘嗗彶璁板綍涓樉紺猴紝鐪嬪埌涓嬪浘錛?br />
鎴戜滑鎸変綇ctrl閿偣鍑?a class="qs_highlight1" id="hl_6" onmouseover="window.clearTimeout(_ht[6]);qs_show_frame(event,this,6);" style="font-size: 1em" onclick="_write_cookie('click29',6);" onmouseout="_on_div[6]=false;_ht[6]=window.setTimeout('qs_is_on_div(6)',500);" target="_blank">榧犳爣閫夋嫨涓や釜鐗堟湰鐨勬枃浠訛紝鐒跺悗鐐瑰嚮榧犳爣鍙抽敭錛岀偣鍑?yán)L瘮杈冨氨鍙互姣旇緝榪欎釜鏂囦歡榪欎袱涓増鏈箣闂寸殑宸紓浜?jiǎn)銆?br />
涓嬮潰鎴戜滑鐪嬬湅鎬庝箞鏍鋒潵鏇存柊cvs鏈嶅姟鍣ㄤ笂鐨勬枃浠訛紝鍓嶉潰宸茬粡璁蹭簡(jiǎn)錛屽彧鏈変粠cvs鏈嶅姟鍣ㄤ腑媯(gè)鍑虹殑鏂囦歡鎵嶅彲浠ユ洿鏂板拰鎻愪氦錛岀湅涓嬪浘
鍦?欏圭洰涓変腑浠諱綍涓涓鍑虹殑鏂囦歡錛岀偣鍑婚紶鏍囧彸閿紝閫夋嫨灝忕粍錛屽氨鍙互鐪嬪埌鎻愪氦鍜屾洿鏂扮瓑寰堝鍔熻兘銆備綘鍙鏇存敼濂藉悗錛岀偣鍑?yán)L彁浜ゅ氨鍙彁浜ゅ埌cvs鏈嶅姟鍣ㄤ腑錛岀偣鍑?yán)L洿鏂?鏄粠cvs鏈嶅姟鍣ㄤ腑鍙栨枃浠舵洿鏂版湰鍦版枃浠?榪欓噷闇瑕佹敞鎰忕殑鏄紝褰撴垜浠緩绔嬬殑欏圭洰鏄簮浠g爜鏂囦歡鍜岀紪璇戝ソ鐨勭被鏂囦歡鏄笉鍚岀洰褰曠殑鏃跺欙紝鏄笉鑳戒紶綾繪枃浠訛紝浼犵殑璇濅細(xì)瀵?鑷碿vs鏈嶅姟鍣ㄤ笂鐨勬枃浠跺嚭闂錛屽彧鑳藉皢綾繪枃浠跺崟鐙鍒跺埌涓撻棬鐢ㄦ潵涓婁紶鐨勭洰褰曚笂浼狅紝鍥犱負(fù)欏圭洰鍦ㄧ紪璇戠殑鏃跺欎細(xì)灝嗗師鏂囦歡涓嬬殑cvs鐩綍涔熺紪璇戝埌綾繪枃浠朵笅錛屾墍浠ヤ細(xì) 瀵艱嚧榪欎釜闂銆?br />
涓嬮潰欏轟究璇翠竴涓猠clipse鏈湴鏂囦歡鐨勪竴涓巻鍙茶褰曠殑鍔熻兘錛岀湅鍒頒笂鍥句腑鐨勬瘮杈冨拰鏇挎崲涓猴紝灝辨槸eclipse涓涓湰鍦扮殑鍘嗗彶璁板綍鍔熻兘錛屽府鍔╀綘鍙互鎭㈠浠ュ墠鎴栬呰窡浠ュ墠鐨勬枃浠舵瘮杈冪殑鍔熻兘銆傜湅涓嬪浘
鐩鎬俊澶у涓鐪嬪氨浼?xì)鏄庣櫧杩欎釜鍔熻兘銆?br />
鍏充簬eclipse錛媍vs鐨勫熀鏈姛鑳戒嬌鐢ㄥ叾瀹炲緢綆鍗曪紝澶у璇曚竴涓嬪氨鐭ラ亾錛屾垜鍦ㄩ」鐩腑鐢ㄥ緱鏈澶氱殑閮芥槸瀹冪殑姣旇緝鍔熻兘錛屽浜庢枃浠朵笂浼犳垜榪樻槸鐢╟vs鐨勫鎴風(fēng)紼嬪簭錛屽洜涓烘簮浠g爜鐩綍鍜岀被鏂囦歡鐩綍涓嶅悓錛屾墍浠ヨ繖鏍鋒瘮杈?a class="qs_highlight1" id="hl_2" onmouseover="window.clearTimeout(_ht[2]);qs_show_frame(event,this,2);" style="font-size: 1em" onclick="_write_cookie('click150',2);" onmouseout="_on_div[2]=false;_ht[2]=window.setTimeout('qs_is_on_div(2)',500);" target="_blank">瀹夊叏錛屽笇鏈?br />
榪欎簺鑳藉鍚勪綅浣跨敤eclipse涓殑cvs鏈夋墍甯姪銆傚鏈夐棶棰樻榪庢寚鍑恒?br />
錛嶏紞澶ц倸緲?nbsp;
2004.10.9
鍦ㄧ涓閮ㄥ垎涓榪頒簡(jiǎn)涓涓棶棰橈紝鍏充簬 欏圭洰鍦ㄧ紪璇戠殑鏃跺欎細(xì)灝嗗師鏂囦歡涓嬬殑cvs鐩綍涔熺紪璇戝埌綾繪枃浠朵笅錛屾墍浠ヤ細(xì)瀵艱嚧涓婁紶綾繪枃浠跺嚭闂銆傜粡榪囪繖涓ゅぉ鐨勭爺絀?a class="qs_highlight1" id="hl_7" onmouseover="window.clearTimeout(_ht[7]);qs_show_frame(event,this,7);" style="font-size: 1em" onclick="_write_cookie('click230',7);" onmouseout="_on_div[7]=false;_ht[7]=window.setTimeout('qs_is_on_div(7)',500);" target="_blank">鍙戠幇榪欎釜闂鏄彲浠?a class="qs_highlight1" id="hl_0" onmouseover="window.clearTimeout(_ht[0]);qs_show_frame(event,this,0);" style="font-size: 1em" onclick="_write_cookie('click29',0);" onmouseout="_on_div[0]=false;_ht[0]=window.setTimeout('qs_is_on_div(0)',500);" target="_blank">瑙e喅鐨勩傛柟娉曞涓嬶細(xì)
鐐瑰嚮紿楀彛涓嬬殑棣栭夐」鐪嬪埌涓嬪浘錛?br />
鎸夊浘涓婃墍璇寸殑錛屽凡榪囨護(hù)CVS鐩綍錛岃繕鏈夊氨鏄幓鎺夊畬鍏ㄦ瀯寤烘椂娓呯┖鏂囦歡澶癸紝榪欐牱鐨勮瘽鍦ㄧ紪璇戞枃浠舵槸灝變笉浼?xì)灏喚c繪枃浠舵墍鍦ㄧ殑鏂囦歡澶逛腑鐨刢vs鐩綍鍒犻櫎銆傚仛濂借繖涓ら儴灝卞彲浠ヨВ鍐抽棶棰樹簡(jiǎn)銆?br />
鎴戜滑鍦ㄥ浜鴻繘琛屼竴涓」鐩繘琛屽紑鍙戞椂錛岄氬父浼?xì)纰板堫C竴涓棶棰樺氨鏄袱涓漢浠巆vs鏈嶅姟鍣ㄤ笂鍚屾椂涓嬭澆浜?jiǎn)鍚屼竴涓枃浠訛紝榪涜淇敼錛屽綋涓涓漢鍏堟彁浜よ屽彟涓涓漢鍚庢彁浜ゆ椂閫?甯稿氨灝嗗墠涓涓漢淇敼鐨勮鐩栨帀浜?jiǎn)锛屾垜浠湅鐪媏clipse涓殑cvs鏄庢牱澶勭悊榪欎釜闂鐨勶紝棣栧厛鎴戜滑浠巆vs涓鍑轟竴涓洰褰曚負(fù)欏圭洰涓簍est鐒跺悗鎵撳紑涓涓枃 浠秚est1.txt鏂囦歡鍦ㄦ枃浠朵腑鍔犱簡(jiǎn)adc濡備笅鍥撅細(xì)
鐒跺悗鎴戜滑鐢╟vs鐨勫鎴風(fēng)紼嬪簭涓嬭澆鍚屼竴涓猼est鐩綍錛岀劧鍚庡湪test1.txt鏂囦歡涓鍔燽bb錛岃繖鏍風(fēng)浉褰撲簬涓や釜浜哄悓鏃朵慨鏀逛簡(jiǎn)鍚屼竴涓枃浠訛紝鎴戜滑鍏堟彁浜や竴涓傚涓嬪浘錛?br />
鐒跺悗鍦╡clipse涓彁浜ゅ悓鏍風(fēng)殑鏂囦歡test1.txt錛屽涓嬪浘
浼?xì)鍑虹庮C竴涓敊璇細(xì)
榪欎釜閿欒琛ㄦ槑浜?jiǎn)浣犵殑鎻愪氦鏂囦欢澶辫触浜?jiǎn)錛屾垜鍐嶄嬌鐢ㄥ彟澶栦竴涓姛鑳斤紝灝辨槸涓庤祫婧愬簱鍚屾鍔熻兘錛屽湪鍓嶄竴寮犲浘涓彲浠ョ湅鍒幫紝鐐瑰嚮璧勬簮搴撳悓姝ュ悗鐪嬪埌涓嬪浘錛氬浘涓湁鐩稿簲鐨勮鏄?br />
榪欐牱浣犲氨鍙互鐭ラ亾絎竴涓洿鏂頒慨鏀逛簡(jiǎn)鍝噷錛屾洿閲嶈鏄綘涔熷彲浠ヨ鐩栨彁浜わ紝鎴栬呰鐩栨洿鏂版湰鍦扮殑鏂囦歡錛岀湅涓嬪浘錛?br />
杞?http://www.gispark.com/html/programme/2007/0603/1178.html
杞?http://bbs.scmlife.com/viewthread.php?tid=1920