热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为编程开发准备一台友好的CVS服务器

文章标题:为编程开发准备一台友好的CVS服务器。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  真正做起来开发工作,才发现一台CVS服务器是必不可少的,即使是很少的开发人员的项目,
  使用CVS也会起到很大的作用,具体什么作用,大家去体会:)
  
  下面就把我架设CVS服务器的过程说说,和诸位前辈的不同之处在于我架设了一个WEB界面,
  所以说是"友好的",通过WEB界面可以非常直观的浏览代码,查看图形化的修改记录,(提交
  可以log到MySQL数据库--This feature is a clone of the Mozilla Projects
  Bonsai database.),目前SourceForge正在使用此界面的较低版本.
  
  功能简介:
  1:Base CVS Server;
  2:repository browsing.
  3:SQL checkin database.
  4:Colorize sourcecode.
  5:Can display a clickable, graphical of files in a CVS repository.
  6:generate tarball from a repository on the fly.
  
  
  OK,Lets go!
  
  1:初始化环境
  
  #groupadd cvs
  
  #mkdir /home2/cvsroot
  #useradd -g cvs -G cvs -d /home2/cvsroot cvsroot
  
  #su - cvsroot
  $chmod 775 .
  
  OK!
  
  2:启动CVS Server
  诸位大虾已经有了很精辟的说明,拿来就是了!:P
  
  #more /etc/services|grep cvspserver
  cvspserver 2401/tcp # CVS client/server operations
  cvspserver 2401/udp # CVS client/server operations
  
  OK,RedHat系统不傻,可以写脚本了.
  
  #vi /etc/xinetd.d/cvspserver
  service cvspserver
  {
  disable = no
  flags = REUSE
  socket_type = stream
  wait = no
  user = root
  server = /usr/bin/cvs
  server_args = -f --allow-root=/home2/cvsroot pserver
  log_on_failure += USERID
  }
  
  :wq
  
  #ls /etc/xinetd.d/cvspserver
  /etc/xinetd.d/cvspserver
  
  脚本好了!
  
  #su - cvsroot
  $cvs -d /home2/cvsroot init
  #service xinetd restart
  
  看看有没有?
  
  #netstat -l |grep cvspserver
  tcp 0 0 *:cvspserver *:* LISTEN
  
  Great!
  
  
  3:Add a Web Interface,viewcvs-0.9.2
  
  
  URL:http://viewcvs.sourceforge.net/
  
  要求比较个性,很多很多!列表:
  
  a:
  Python 1.5 or later(http://www.python.org/)
  Rh7.2竟然有两个python,1.5和2.1,更加有个性!
  b:
  RCS, Revision Control System(http://www.cs.purdue.edu/homes/trinkle/RCS/)
  Rh7.2自带.
  c:
  read-only, physical access to a CVS repository(See http://www.cvshome.org/ for more information)
  Rh7.2自带.
  d:
  a web server capable of running CGI programs(for example, Apache at http://httpd.apache.org/)
  viewcvs-0.9.2文档竟然说apache是可选项:(
  e:
  GNU-diff to replace broken diff implementations(http://www.gnu.org/software/diffutils/diffutils.html)
  Rh7.2自带.
  f:MySQL to create and query a commit database(http://www.mysql.com/)
  Rh7.2自带.
  g:(http://sourceforge.net/projects/mysql-python)(and Python 1.5.2 or later)
  去拉
  h:Enscript to colorize code displayed from the CVS repository(http://people.ssh.com/mtr/genscript/)
  去拉
  i:CvsGraph for a graphical representation of the CVS revisions(http://www.akhphd.au.dk/~bertho/cvsgraph/)
  去拉
  
  #tar zxvf cvsgraph-1.1.3.tar.gz
  #cd cvsgraph-1.1.3
  #./configure
  #make
  #cp cvsgraph /usr/bin
  #mkdir /etc/cvsgraph
  #cp cvsgraph.conf /etc/cvsgraph
  
  #rpm -ivh egenix-mx-base-2.0.3-py2.1_1.i386.rpm
  #rpm -ivh MySQL-python-0.9.1-1py2.i386.rpm
  
  
  #tar zxvf viewcvs-0.9.2.tar.gz
  #cd viewcvs-0.9.2
  #./viewcvs-install
  #cp /usr/local/viewcvs-0.9.2/cgi/viewcvs.cgi /var/www/cgi-bin
  
  #cp /usr/local/cvsview-0.9.2/PyFontify* /usr/lib/python2.1/
  #cp /usr/local/cvsview-0.9.2/py2html* /usr/lib/python2.1/
  OK!
  
  /**********MySQL****************/
  建两个用户,cvsroot(password:cvsroot)使用root权限,cvsread(password:cvsread)
  使用只读权限.
  
  #/usr/local/cvsview-0.9.2/make-datebase
  OK!
  
  #vi /usr/local/viewcvs-0.9.2/viewcvs.conf
  cvs_roots =
  Development : /home2/cvsroot
  
  rcs_path = /usr/bin/
  
  address = hleil@vmail.com
  
  [cvsdb]
  
  host = localhost
  database_name = ViewCVS
  user = cvsroot
  passwd = cvsroot
  readonly_user = cvsread
  readonly_passwd = cvsread
  row_limit = 1000
  
  py2html_path = /usr/lib/python2.1
  
  enscript_path = /usr/bin/
  
  allow_tar = 1
  
  use_cvsgraph = 1
  
  
  ********************************************************
  ***如果同时安装python-1.x和python-2x(比如RedHat7.2)
  ***以下千万注意(我们使用python-2.x)
  ********************************************************
  cd /usr/local/viewcvs-0.9.2
  loginfo-handler,standalone.py,cvsdbadmin
  以及
  cd /usr/local/viewcvs-0.9.2/cgi下的所有文件,
  
  首行改为:#!/usr/bin/python2
  
  #cp /usr/local/viewcvs-0.9.2/cgi/viewcvs.cgi /var/www/cgi-bin
  
  http://127.0.0.1/cgi-bin/viewcvs.cgi/
  OK了!
  
  
  4:Add user
  
  #usermod -G cvs username #使用系统验证
  
  OK,enjoy CVS!
  
  
  5:微调
  
  #mkdir /var/lock/cvs
  #mkdir /var/lock/cvs/CVSROOT
  #chmod -R 775 /var/lock/cvs
  #chown -R cvsroot.cvs /var/lock/cvs
  #su - hleil
  $export CVSROOT=:pserver:cvsroot@vmail.com:/home2/cvsroot
  $cvs login
  $cvs checkout CVSROOT
  $cd CVSROOT
  $vi loginfo
  ALL (echo %{sVv}; cat) | /usr/local/viewcvs-0.9.2/loginfo-handler #SQL checkin
  :wq
  
  $vi config
  SystemAuth=yes #使用系统验证
  LockDir=/var/lock/cvs #for security
  LogHistory=all
  :wq
  
  $cvs commit
  #service xinetd restart
  
  
  Great!终于好了!
  
  呵呵,下面就开始你的代码之旅吧!
  
  
推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
author-avatar
低调的小男2502928607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有