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

CVS的常用命令速查手册(二)

CVS的常用命令速查手册(二)CVSWEB:提高文件浏览效率CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的

CVS的常用命令速查手册(二)


CVSWEB:提高文件浏览效率
=======================

CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:
使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi

CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是我个人感觉安装设置比较方便的:
http://www.spaghetti-code.de/software/linux/cvsweb/

下载解包:
tar zxf cvsweb.tgz
把配置文件cvsweb.conf放到安全的地方(比如和apache的配置放在同一个目录下),
修改:cvsweb.cgi让CGI找到配置文件:
$config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';

转到/path/to/apache/conf下并修改cvsweb.conf:

1. 修改CVSROOT路径设置:
%CVSROOT = (
&#39;Development&#39; &#61;> &#39;/path/to/cvsroot&#39;, #<&#61;&#61;修改指向本地的CVSROOT
);
2. 缺省不显示已经删除的文档&#xff1a;
"hideattic" &#61;> "1",#<&#61;&#61;缺省不显示已经删除的文档
3. 在配置文件cvsweb.conf中还可以定制页头的描述信息&#xff0c;你可以修改$long_intro成你需要的文字

CVSWEB可不能随便开放给所有用户&#xff0c;因此需要使用WEB用户认证&#xff1a;
先生成 passwd:
/path/to/apache/bin/htpasswd -c cvsweb.passwd user

修改httpd.conf: 增加

AuthName "CVS Authorization"
AuthType Basic
AuthUserFile /path/to/cvsweb.passwd
require valid-user

CVS TAGS: who? when?
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

将$Id$ 加在程序文件开头的注释里是一个很好的习惯&#xff0c;cvs能够自动解释更新其中的内容成&#xff1a;file_name version time user_name 的格式&#xff0c;比如&#xff1a;cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp&#xff0c;可以这些信息了解文件的最后修改人和修改时间

几个常用的缺省文件&#xff1a;
default.php
/*
* Copyright (c) 2002 Company Name.
* $Header$
*/

?>
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;
Default.java: 注意文件头一般注释用 /* 开始 JAVADOC注释用 /** 开始的区别
/*
* Copyright (c) 2002 MyCompany Name.
* $Header$
*/

package com.mycompany;

import java.;

/**
* comments here
*/
public class Default {
/**
* Comments here
* &#64;param
* &#64;return
*/
public toString() {

}
}
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;
default.pl:
#!/usr/bin/perl -w
# Copyright (c) 2002 Company Name.
# $Header$

# file comments here

use strict;


CVS vs VSS 
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

CVS没有文件锁定模式&#xff0c;VSS在check out同时&#xff0c;同时记录了文件被导出者锁定。

CVS的update和commit&#xff0c; VSS是get_lastest_version和check in

对应VSS的check out/undo check out的CVS里是edit和unedit

在CVS中&#xff0c;标记自动更新功能缺省是打开的&#xff0c;这样也带来一个潜在的问题&#xff0c;就是不用-kb方式添加binary文件的话在cvs自动更新时可能会导致文件失效。

Virsual SourceSafe中这个功能称之为Keyword Explaination&#xff0c;缺省是关闭的&#xff0c;需要通过OPITION打开&#xff0c;并指定需要进行源文件关键词扫描的类型&#xff1a;*.txt,*.java,*.html...

对于Virsual SourceSafe和CVS都通用的TAG有&#xff1a;
$Header$
$Author$
$Date$
$Revision$

尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。

WinCVS
&#61;&#61;&#61;&#61;&#61;&#61;

下载&#xff1a;
cvs Windows客户端&#xff1a;目前稳定版本为1.2
http://www.wincvs.org/
ssh Windows客户端
http://www.networksimplicity.com/openssh/

安装好以上2个软件以后&#xff1a;
WinCVS客户端的admin&#61;&#61;>preference设置
1 在general选单里
设置CVSROOT&#xff1a; username&#64;192.168.0.123:/home/cvsroot
设置Authorization: 选择SSH server

2 Port选单里
钩上&#xff1a;check for alternate rsh name
并设置ssh.exe的路径&#xff0c;缺省是装在 Crogram FilesNetworkSimplicitysshssh.exe

然后就可以使用WinCVS进行cvs操作了&#xff0c;所有操作都会跳出命令行窗口要求你输入服务器端的认证密码。

当然&#xff0c;如果你觉得这样很烦的话&#xff0c;还有一个办法就是生成一个没有密码的公钥/私钥对&#xff0c;并设置CVS使用基于公钥/私钥的SSH认证&#xff08;在general选单里&#xff09;。

可以选择的diff工具&#xff1a;examdiff
下载&#xff1a;
http://www.prestosoft.com/examdiff/examdiff.htm
还是在WinCVS菜单admin&#61;&#61;>preference的WinCVS选单里
选上&#xff1a;Externel diff program
并设置diff工具的路径&#xff0c;比如&#xff1a;Crogram Filesed16iExamDiff.exe
在对文件进行版本diff时&#xff0c;第一次需要将窗口右下角的use externel diff选上。

基于CVS的小组开发环境搭建
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

作为一个小组级的开发环境&#xff0c;版本控制系统和BUG跟踪系统等都涉及到用户认证部分。如何方便的将这些系统集成起来是一个非常有趣的事情&#xff0c;毕竟我们不能指望linux下有像Source Offsite那样集成度很高的版本控制/BUG跟踪集成系统。

我个人是很反对使用pserver模式的远程用户认证的&#xff0c;但如果大部分组员使用WINDOWS客户端进行开发的话&#xff0c;总体来说使用CVSROOT/passwd认证还是很难避免的&#xff0c;但CVS用户的管理比较麻烦。本来我打算自己用perl写一个管理界面的&#xff0c;直到我发现了CVSTrac, 一个基于WEB界面的BUG跟踪系统&#xff0c;它外挂在CVS系统上&#xff0c;而且就包括了WEB界面的CVSROOT/passwd文件的管理&#xff0c;甚至还集成了WIKIWIKI功能。

这里首先说一下CVS的pserver模式下的用户认证&#xff0c;CVS的用户认证服务是基于inetd中的&#xff1a;
cvspserver stream tcp nowait nobody /usr/bin/cvs cvs --allow-root&#61;/home/cvsroot pserver
一般在2401端口

CVS用户数据库是基于CVSROOT/passwd文件&#xff0c;文件格式&#xff1a;
[username]:[crypt_password]:[mapping_system_user]
由于密码都用的是UNIX标准的CRYPT加密&#xff0c;这个passwd文件的格式基本上是apache的htpasswd格式的扩展&#xff08;比APACHE的PASSWD文件多一个系统用户映射字段&#xff09;&#xff0c;所以这个文件最简单的方法可以用
apache/bin/htpasswd -b myname mypassword
创建。注意&#xff1a;通过htpasswd创建出来的文件会没有映射系统用户的字段
例如&#xff1a;
new:geBvosup/zKl2
setup:aISQuNAAoY3qw
test:hwEpz/BX.rEDU

映射系统用户的目的在于&#xff1a;你可以创建一个专门的CVS服务帐号&#xff0c;比如叫cvs&#xff0c;并将/home/cvsroot目录下的所有权限赋予这个用户&#xff0c;然后在passwd文件里创建不同的开发用户帐号&#xff0c;但开发用户帐号最后的文件读写权限都映射为cvs用户&#xff0c;避免了在SSH模式下多个开发用户新建文件后的对于其他用户的文件读写权限问题。

进一步的&#xff0c;你可以将用户分别映射到2组用户上&#xff0c;利用2个用户的权限设置&#xff0c;避免2个项目组的文件互相访问。
new:geBvosup/zKl2:proj1
setup:aISQuNAAoY3qw:proj2
test:hwEpz/BX.rEDU:proj1

CVSTrac很好的解决了CVSROOT/passwd的管理问题&#xff0c;而且包含了BUG跟踪报告系统和集成WIKIWIKI交流功能等&#xff0c;使用的CGI方式的安装&#xff0c;并且基于GNU Public License&#xff1a;

安装过程

1. 下载&#xff1a;http://www.cvstrac.org/ 解包&#xff0c;复制成/usr/bin/cvstrac
2. 在已经装好的CVS服务器上&#xff08;假设CVS库已经使用cvs init初始化过在/home/cvsroot里&#xff09;&#xff0c;运行一下
cvstrac init /home/cvsroot myproj
运行后&#xff0c;/home/cvsroot里会有一个缺省的myproj.db库
3. 在apche/cgi-bin目录中创建如下脚本cvstrac:
#!/bin/sh
/usr/bin/cvstrac cgi /home/cvsroot
设置cvstrac可执行。
4. 从http://cvs.server.address/cgi-bin/cvstrac/myproj进入管理界面&#xff0c;缺省登录名&#xff1a;setup 密码 setup
5. 在inetd里加入cvspserver服务&#xff1a;
cvspserver stream tcp nowait nobody /usr/bin/cvs cvs --allow-root&#61;/home/cvsroot pserver
注意&#xff1a;这里的用户设置成nobody目的是和apache的运行用户一致&#xff0c;并且必须让这个这个用户对/home/cvsroot/下的CVSROOT/passwd和cvstrac初始化生成的myproj.db有读写权限。

一般用户还可以从&#xff1a;
http://cvs.server.address/cgi-bin/cvstrac/myproj
修改登录密码&#xff0c;记录BUG报告等&#xff0c;更多使用细节可以在使用中慢慢了解。

对于前面提到的WinCVS改用passwd file on server side模式登录就可以了。

总结&#xff1a;

利用cvs &#43; (WinCVS/cvsweb/cvstrac)&#xff0c;构成了一个相对完善的跨平台工作组开发环境。

相关资源&#xff1a;

CVS HOME&#xff1a;
http://www.cvshome.org/

CVS FAQ&#xff1a;
http://www.loria.fr/~molli/cvs-index.html

相关网站:
http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/Concurrent_Versions_System/

CVS 免费书:
http://cvsbook.red-bean.com/

CVS 命令的速查卡片&#xff1a;
http://www.refcards.com/about/cvs.html

WinCVS:
http://www.wincvs.org/

CVSTrac: A Web-Based Bug And Patch-Set Tracking System For CVS
http://www.cvstrac.org/

转:https://www.cnblogs.com/sky100/articles/1281125.html



推荐阅读
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
author-avatar
Ycandy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有