第 7 章 cvs - Concurrent Versions System

目录

7.1. installation
7.1.1. chroot
7.2. cvs login | logout 7.3. cvs import 7.4. cvs checkout 7.5. cvs update 7.6. cvs add 7.7. cvs status 7.8. cvs commit 7.9. cvs remove 7.10. cvs log 7.11. cvs annotate 7.12. cvs diff 7.13. rename file 7.14. revision 7.15. cvs export 7.16. cvs release 7.17. branch
7.17.1. milestone 7.17.2. patch branch
7.18. keywords

7.1. installation

过程 7.1. install cvs

  1. install

    $ sudo apt-get install xinetd
    $ sudo apt-get install cvs
    			

    show the cvs version

    $ cvs -v
    
    Concurrent Versions System (CVS) 1.12.13 (client/server)
    			
  2. create cvs group and cvsroot user

    $ sudo groupadd cvs
    $ sudo adduser cvsroot --ingroup cvs
    			

    change user become cvsroot

    $ su - cvsroot
    			
  3. initialization 'CVSROOT'

    $ cvs -d /home/cvsroot init
    			

    if you have successed, you can see CVSROOT directory in the '/home/cvsroot'

    $ ls /home/cvsroot/
    CVSROOT
    			
  4. authentication

    default SystemAuth=yes, you can use system user to login cvs.

    but usually, we don't used system user because it isn't security.

    SystemAuth = no

    edit '/home/cvsroot/CVSROOT/config' make sure SystemAuth = no

    $ vim /home/cvsroot/CVSROOT/config
    SystemAuth = no
    			

    create passwd file

    the format is user:password:cvsroot

    you need to using htpasswd command, if you don't have, please install it as the following

    $ sudo apt-get install apache2-utils
    			

    or

    $ perl -e 'print("userPassword: ".crypt("secret","salt")."\n");'
    			

    or

    $ cat passwd
    #!/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";
    
    $ ./passwd "mypasswd"
    atfodI2Y/dcdc
    			

    let's using htpasswd to create a passwd

    $ htpasswd -n neo
    New password:
    Re-type new password:
    neo:yA50LI1BkXysY
    			

    copy 'neo:yA50LI1BkXysY' and add ':cvsroot' to the end

    $ vim /home/cvsroot/CVSROOT/passwd
    neo:yA50LI1BkXysY:cvsroot
    nchen:GXaAkSKaQ/Hpk:cvsroot
    			
  5. Go into directory '/etc/xinetd.d/', and then create a cvspserver file as the following.

    $ sudo vim /etc/xinetd.d/cvspserver
    
    service cvspserver
    {
       disable = no
       flags = REUSE
       socket_type = stream
       wait = no
       user = cvsroot
       server = /usr/bin/cvs
       server_args = -f --allow-root=/home/cvsroot pserver
       log_on_failure += USERID
    }
    			
  6. check cvspserver in the '/etc/services'

    $ grep cvspserver /etc/services
    cvspserver      2401/tcp                        # CVS client/server operations
    cvspserver      2401/udp
    			
  7. restart xinetd

    $ /etc/init.d/xinetd
    Usage: /etc/init.d/xinetd {start|stop|reload|force-reload|restart}
    			
  8. port

    $ nmap localhost -p cvspserver
    
    Starting Nmap 4.53 ( http://insecure.org ) at 2008-11-14 16:21 HKT
    Interesting ports on localhost (127.0.0.1):
    PORT     STATE SERVICE
    2401/tcp open  cvspserver
    
    Nmap done: 1 IP address (1 host up) scanned in 0.080 seconds
    			
  9. firewall

    $ sudo ufw allow cvspserver
    			

environment variable

CVSROOT=:pserver:username@ip:/home/cvsroot

vim .bashrc

export CVS_RSH=ssh
export CVSROOT=:pserver:neo@localhost:/home/cvsroot
	

test

$ cvs login
Logging in to :pserver:neo@localhost:2401/home/cvsroot
CVS password:
neo@netkiller:/tmp/test$ cvs co test
cvs checkout: Updating test
U test/.project
U test/NewFile.xml
U test/newfile.php
neo@netkiller:/tmp/test$
	

7.1.1. chroot

$ sudo apt-get install cvsd
		

environment variable

neo@netkiller:~/workspace/cvs$ export CVSROOT=:pserver:neo@localhost:/home/cvsroot
		

ssh

export CVS_RSH=ssh
export CVSROOT=:ext:$USER@localhost:/home/cvsroot





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值