- 浏览: 632710 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下: 作为一般开发人员挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,CVS远 程用户认证的选择及与BUG跟踪系统等开发环境的集成问题。 一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,作为一般开发人员平时会用cvs update和cvs commit就够了,更多的需求在实际应用过程中自然会出现,不时回头看看相关文档经常有意外的收获。 tcsh 后面还提到远程CVS服务器的设置: 一个项目的首次导入 项目导出:将代码从CVS库里导出 注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。 将文件同步到最新的版本 确认修改写入到CVS库里 注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。 如果关键词替换属性在首次导入时设置错了怎么办? 删除文件 添加目录 正确的通过CVS恢复旧版本的方法: 移动文件/文件重命名 删除/移动目录 项目发布导出不带CVS目录的源文件 cvs tag release_1_0 开始一个新的里程碑: 注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。 版本分支的建立 一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题, 在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号 如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中: 常见的登陆格式如下: 不是很安全,因此一般是作为匿名只读CVS访问的方式。从安全考虑,通过系统本地帐号认证并通过SSH传输是比较好的办法,通过在客户机的 /etc/profile里设置一下内容: 比如: CVS服务器是192.168.0.3,上面CVSROOT路径是/home/cvsroot,另外一台开发客户机是192.168.0.4,如果 tom在2台机器上都有同名的帐号,那么从192.168.0.4上设置了: 如果CVS所在服务器的SSH端口不在缺省的22,或者和客户端与CVS服务器端SSH缺省端口不一致,有时候设置了: 注意:port是指相应服务器SSH的端口,不是指cvs专用的pserver的端口 使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是我个人感觉安装设置比较方便的: CVSWEB可不能随便开放给所有用户,因此需要使用WEB用户认证: CVS没有文件锁定模式,VSS在check out同时,同时记录了文件被导出者锁定。 CVS的update和commit, VSS是get_lastest_version和check in 对应VSS的check out/undo check out的CVS里是edit和unedit 在CVS中,标记自动更新功能缺省是打开的,这样也带来一个潜在的问题,就是不用-kb方式添加binary文件的话在cvs自动更新时可能会导致 文件失效。 $Header$ $Date$这样的标记在Virsual SourceSafe中称之为Keyword Explaination,缺省是关闭的,需要通过OPITION打开,并指定需要进行源文件关键词扫描的文件类型:*.txt,*.java, *.html... 对于Virsual SourceSafe和CVS都通用的TAG有: 我建议尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。 cvs Windows客户端:目前稳定版本为1.2 然后就可以使用WinCVS进行cvs操作了,所有操作都会跳出命令行窗口要求你输入服务器端的认证密码。 当然,如果你觉得这样很烦的话,还有一个办法就是生成一个没有密码的公钥/私钥对,并设置CVS使用基于公钥/私钥的SSH认证(在general 选单里)。 可以选择的diff工具:examdiff 这里首先说一下CVS的pserver模式下的用户认证,CVS的用户认证服务是基于inetd中的: 映射系统用户的目的在于:你可以创建一个专门的CVS服务帐号,比如用apache的运行用户apache,并将/home/cvsroot目录下 的所有权限赋予这个用户,然后在passwd文件里创建不同的开发用户帐号,但开发用户帐号最后的文件读写权限都映射为apache用户,在SSH模式下 多个系统开发用户需要在同一个组中才可以相互读写CVS库中的文件。 进一步的,你可以将用户分别映射到apache这个系统用户上。 CVSTrac很好的解决了CVSROOT/passwd的管理问题,而且包含了BUG跟踪报告系统和集成WIKIWIKI交流功能等,使用的 CGI方式的安装,并且基于GNU Public License: 在inetd里加入cvspserver服务: xietd的配置文件:%cat cvspserver 注意:这里的用户设置成apache目的是和/home/cvsroot的所有用户一致,并且必须让这个这个用户对/home/cvsroot/下的 CVSROOT/passwd和cvstrac初始化生成的myproj.db有读取权限。 安装过程 修改登录密码,进行BUG报告等, 对于前面提到的WinCVS在perference里设置: CVS的权限管理分2种策略: Linux上通过ssh连接CVS服务器的多个开发人员:通过都属于apache组实现文件的共享读写 apache(system group) Windows上通过cvspserver连接CVS服务器的多个开发人员:通过在passwd文件种映射成 apache用户实现文件的共享读写 apache(system user) 利用CVS WinCVS/CVSWeb/CVSTrac 构成了一个相对完善的跨平台工作组开发版本控制环境。 相关资源: CVS HOME: CVS FAQ: CVS--并行版本系统 CVS 免费书: CVS命令的速查卡片 refcards.com/refcards/cvs/ WinCVS: CVSTrac: A Web-Based Bug And Patch-Set Tracking System For CVS StatCVS:基于CVS的代码统计工具:按代码量,按开发者的统计表等 CVS客户端: 下载WinCVS中文版—— CVSWEB 下载地址:http://www.freebsd.org/projects/cvsweb.html (最新版本:3.0.5) 缺陷跟踪: subversion服务器端: subversion客户端: CVS服务器(文件版本库)
/ | \
(版 本 同 步)
/ | \
开发者1 开发者2 开发者3
CVS环境初始化
环境设置:指定CVS库的路径CVSROOT
setenv CVSROOT /path/to/cvsroot
bash
CVSROOT=/path/to/cvsroot ; export CVSROOT
CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH
初始化:CVS版本库的初始化。
cvs init
cvs import -m "write some comments here" project_name vendor_tag release_tag
执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下
vender_tag: 开发商标记
release_tag: 版本发布标记
cvs checkout project_name
cvs 将创建project_name目录,并将最新版本的源代码导出到相应目录中。这个checkout和Virvual SourceSafe中的check out不是一个概念,相对于Virvual SourceSafe的check out是cvs update, check in是cvs commit。
CVS的日常使用
cvs update
不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步
cvs update file_name
最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步 后修改”的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用
>>>>>>
content on cvs server
<<<<<<
content in your file
>>>>>>
标记出来,由你确认冲突内容的取舍。
版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。
cvs commit -m "write some comments here" file_name
注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解
不好的注释,很难让其他的开发人员快速的理解:比如: -m "bug fixed" 甚至 -m ""
好的注释,甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"
修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以 下命令可以允许你修改某个文件某个版本的注释:
cvs admin -m 1.3:"write some comments here" file_name
添加文件
创建好新文件后,比如:touch new_file
cvs add new_file
注意:对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况
比如:
cvs add -kb new_file.gif
cvs add -kb readme.doc
cvs admin -kkv new_file.css
然后确认修改并注释
cvs ci -m "write some comments here"
将某个源文件物理删除后,比如:rm file_name
cvs rm file_name
然后确认修改并注释
cvs ci -m "write some comments here"
以上面前2步合并的方法为:
cvs rm -f file_name
cvs ci -m "why delete file"
注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm;
cvs add dir_name
查看修改历史
cvs log file_name
cvs history file_name
查看当前文件不同版本的区别
cvs diff -r1.3 -r1.5 file_name
查看当前文件(可能已经修改了)和库中相应文件的区别
cvs diff file_name
cvs的web界面提供了更方便的定位文件修改和比较版本区别的方法,具体安装设置请看后面的cvsweb使用
如果用cvs update -r1.2 file.name
这个命令是给file.name加一个STICK TAG: "1.2" ,虽然你的本意只是想将它恢复到1.2版本
正确的恢复版本的方法是:cvs update -p -r1.2 file_name >file_name
如果不小心已经加成STICK TAG的话:用cvs update -A 解决
cvs里没有cvs move或cvs rename,因为这两个操作是可以由先cvs remove old_file_name,然后cvs add new_file_name实现的。
最方便的方法是让管理员直接移动,删除CVSROOT里相应目录(因为CVS一个项目下的子目录都是独立的,移动到$CVSROOT目录下都可以作为新的 独立项目:好比一颗树,其实砍下任意一枝都能独立存活),对目录进行了修改后,要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。
做开发的时候你可能注意到了,每个开发目录下,CVS都创建了一个CVS/目录。里面有文件用于记录当前目录和CVS库之间的对应信息。但项目发布的时候 你一般不希望把文件目录还带着含有CVS信息的CVS目录吧,这个一次性的导出过程使用cvs export命令,不过export只能针对一个TAG或者日期导出,比如:
cvs export -r release1 project_name
cvs export -D 20021023 project_name
cvs export -D now project_name
CVS Branch:项目多分支同步开发
确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目, 同时也是项目的多个分支开发的基础。
cvs commit -r 2 标记所有文件开始进入2.x的开发
在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch
cvs rtag -b -r release_1_0 release_1_0_patch proj_dir
cvs checkout -r release_1_0_patch
而其他人员仍旧在项目的主干分支2.x上开发
cvs tag release_1_0_patch_1
cvs update -j release_1_0_patch_1
CVS的远程认证通过SSH远程访问CVS
使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,
cvs -d :pserver:cvs_user_name@cvs.server.address:/path/to/cvsroot login
例子:
cvs -d :pserver:cvs@samba.org:/cvsroot login
CVSROOT=:ext:$USER@cvs.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH
所有客户机所有本地用户都可以映射到CVS服务器相应同名帐号了。
export CVSROOT=:ext:tom@192.168.0.3:/home/cvsroot
export CVS_RSH=ssh
tom就可以直接在192.168.0.4上对192.168.0.3的cvsroot进行访问了(如果有权限的话)
cvs checkout project_name
cd project_name
cvs update
...
cvs commit
:ext:$USER@test.server.address#port:/path/to/cvsroot
仍然不行,比如有以下错误信息:
ssh: test.server.address#port: Name or service not known
cvs [checkout aborted]: end of file from server (consult above messages if any)
解决的方法是做一个脚本指定端口转向(不能使用alias,会出找不到文件错误):
创建一个/usr/bin/ssh_cvs文件,假设远程服务器的SSH端口是非缺省端口:34567
#!/bin/sh
/usr/bin/ssh -p 34567 "$@"
然后:chmod +x /usr/bin/ssh_cvs
并CVS_RSH=ssh_cvs; export CVS_RSH
CVSWEB:提高文件浏览效率
CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:
原先在:http://www.spaghetti-code.de/software/linux/cvsweb/,但目前已经删除,目前仍可以在本站下载CVSWEB, 其实最近2年FreeBSD的CVSWeb项目已经有了更好的发展吧,而当初没有用FreeBSD那个版本 主要就是因为没有彩色的文件Diff功能。
下载解包:
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:
%CVSROOT = (
'Development' => '/path/to/cvsroot', #<==修改指向本地的CVSROOT
);
"hideattic" => "1",#<==缺省不显示已经删除的文档
先生成 passwd:
/path/to/apache/bin/htpasswd -c cvsweb.passwd user
修改httpd.conf: 增加
<Directory "/path/to/apache/cgi-bin/cvsweb/">
AuthName "CVS Authorization"
AuthType Basic
AuthUserFile /path/to/cvsweb.passwd
require valid-user
</Directory>
CVS TAGS: $Id$
将$Id$ 加在程序文件开头的注释里是一个很好的习惯,cvs能够自动解释更新其中的内容成:file_name version time user_name 的格式,比如:cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp,可以这些信息了解文件的最后修改人和修改时间。几个常用的缺省文件:
default.php
<?php
/*
* Copyright (c) 2002 Company Name.
* $Header$
*/
?>
====================================
Default.java: 注意文件头一般注释用 /* 开始 JAVADOC注释用 /** 开始的区别
/*
* Copyright (c) 2002 MyCompany Name.
* $Header$
*/
package com.mycompany;
import java.;
/**
* comments here
*/
public class Default {
/**
* Comments here
* @param
* @return
*/
public toString() {
}
}
====================================
default.pl:
#!/usr/bin/perl -w
# Copyright (c) 2002 Company Name.
# $Header$
# file comments here
use strict;
CVS vs VSS
$Header$
$Author$
$Date$
$Revision$
WinCVS
下载:
http://cvsgui.sourceforge.net
ssh Windows客户端
http://www.networksimplicity.com/openssh/
安装好以上2个软件以后:
WinCVS客户端的admin==>preference设置
1 在general选单里
设置CVSROOT: username@192.168.0.123:/home/cvsroot
设置Authorization: 选择SSH server
2 Port选单里
钩上:check for alternate rsh name
并设置ssh.exe的路径,缺省是装在 C:\Program Files\NetworkSimplicity\ssh\ssh.exe
下载:
http://www.prestosoft.com/examdiff/examdiff.htm
还是在WinCVS菜单admin==>preference的WinCVS选单里
选上:Externel diff program
并设置diff工具的路径,比如:C:\Program Files\ed16i\ExamDiff.exe
在对文件进行版本diff时,第一次需要将窗口右下角的use externel diff选上。
基于CVSTrac的小组开发环境搭建
作为一个小组级的开发环境,版本控制系统和BUG跟踪系统等都涉及到用户认证部分。如何方便的将这些系统集成起来是一个非常困难的事情,毕竟我们不能指望 Linux下有像Source Offsite那样集成度很高的版本控制/BUG跟踪集成系统。
我个人是很反对使用pserver模式的远程用户认证的,但如果大部分组员使用WINDOWS客户端进行开发的话,总体来说使用 CVSROOT/passwd认证还是很难避免的,但CVS本身用户的管理比较麻烦。本来我打算自己用perl写一个管理界面的,直到我发现了 CVSTrac: 一个基于WEB界面的BUG跟踪系统,它外挂在CVS系统上的BUG跟踪系统,其中就包括了WEB界面的CVSROOT/passwd文件的管理,甚至还 集成了WIKIWIKI讨论组功能。
cvspserver stream tcp nowait apache /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
一般在2401端口(这个端口号很好记:49的平方)
CVS用户数据库是基于CVSROOT/passwd文件,文件格式:
[username]:[crypt_password]:[mapping_system_user]
由于密码都用的是UNIX标准的CRYPT加密,这个passwd文件的格式基本上是apache的htpasswd格式的扩展(比APACHE的 PASSWD文件多一个系统用户映射字段),所以这个文件最简单的方法可以用
apache/bin/htpasswd -b myname mypassword
创建。注意:通过htpasswd创建出来的文件会没有映射系统用户的字段
例如:
new:geBvosup/zKl2
setup:aISQuNAAoY3qw
test:hwEpz/BX.rEDU
new:geBvosup/zKl2:apache
setup:aISQuNAAoY3qw:apache
test:hwEpz/BX.rEDU:apache
cvspserver stream tcp nowait apache /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = apache
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
我用的是已经在Linux上编译好的应用程序包:cvstrac-1.1.2.bin.gz,
%gzip -d cvstrac-1.1.2.bin.gz
%chmod +x cvstrac-1.1.2.bin
#mv cvstarc-1.1.1.bin /usr/bin/cvstrac
如果是从源代码编译:
从 http://www.sqlite.org/download.html 下载SQLITE的rpm包:
rpm -i sqlite-devel-2.8.6-1.i386.rpm
从 ftp://ftp.cvstrac.org/cvstrac/ 下载软件包
解包,假设解包到/home/chedong/cvstrac-1.1.2下,并规划将cvstrac安装到/usr/local/bin目录下, cd /home/chedong/cvstrac-1.1.2 编辑linux-gcc.mk:
修改:
SRCDIR = /home/chedong/cvstrac-1.1.2
INSTALLDIR = /usr/local/bin
然后
mv linux-gcc.mk Makefile
make
#make install
在已经装好的CVS服务器上(CVS库这时候应该已经是初始化好了,比如:cvs init初始化在/home/cvsroot里),运行一下
%cvstrac init /home/cvsroot myproj
运行后,/home/cvsroot里会有一个的myproj.db库,使用CVSTRAC服务,/home/cvsroot/myproj.db /home/cvsroot/CVSROOT/readers /home/cvsroot/CVSROOT/writers /home/cvsroot/CVSROOT/passwd这几个文件对于web服务的运行用户应该是可写的,在RedHat8上,缺省就有一个叫 apache用户和一个apache组,所以在httpd.conf文件中设置了用apache用户运行web服务:
User apache
Group apache,
然后设置属于apache用户和apache组
#chown -R apache:apache /home/cvsroot
-rw-r--r-- 1 apache apache 55296 Jan 5 19:40 myproj.db
drwxrwxr-x 3 apache apache 4096 Oct 24 13:04 CVSROOT/
drwxrwxr-x 2 apache apache 4096 Aug 30 19:47 some_proj/
此外还在/home/cvsroot/CVSROOT中设置了:
chmod 664 readers writers passwd
#!/bin/sh
/usr/bin/cvstrac cgi /home/cvsroot
设置脚本可执行:
chmod +x /home/apache/cgi-bin/cvstrac
缺省登录名:setup 密码 setup
对于一般用户可以从:
http://cvs.server.address/cgi-bin/cvstrac/myproj
如果是初次使用需要在/home/cvsroot/CVSROOT下创建passwd, readers, writers文件
touch passwd readers writers
然后设置属于apache用户,
chown apache.apache passwd readers writers
这样使用setup用户创建新用户后会同步更新CVSROOT/passwd下的帐号
更多使用细节可以在使用中慢慢了解。
CVSROOT栏输入:username@ip.address.of.cvs:/home/cvsroot
Authenitication选择:use passwd file on server side
就可以了从服务器上进行CVS操作了。
CVS的用户权限管理
为什么使用apache/apache用户?首先RedHat8中缺省就有了,而且使用这个用户可以方便通过cvstrac进行WEB管理。
chown -R apache.apache /home/cvsroot
chmod 775 /home/cvsroot
开发人员有开发服务器上的系统帐号:sysuser1 sysuser2,设置让他们都属于apache组,因为通过cvs新导入的项目都是对组开放的:664权限的,这样无论那个系统用户导入的项目文件,只 要文件的组宿主是apache,所有其他同组系统开发用户就都可以读写;基于ssh远程认证的也是一样。
/ | \
sysuser1 sysuser2 sysuser3
他们的帐号通过CVSROOT/passwd和readers writers这几个文件管理;通过cvstrac设置所有虚拟用户都映射到apache用户上即可。
/ | \
windev1 windev2 windev3
http://www.cvshome.org
http://www.loria.fr/~molli/cvs-index.html
相关网站:
http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/Concurrent_Versions_System/
http://www.soforge.com/cvsdoc/zh_CN/book1.html
http://cvsbook.red-bean.com/
http://cvsgui.sourceforge.net/
http://www.cvstrac.org
http://sourceforge.net/projects/statcvs
http://ccm.redhat.com/bboard-archive/cvs_for_web_development/index.html
一些集成了CVS的IDE环境:
Eclipse
CVS 下载地址:http://www.cvshome.org/ (最新版本:hp:1.12.11,Linux and win32:1.11.17)
cvsnt 下载地址:http://www.cvsnt.com/cvspro/ (最新版本:2.0.58d)
TortoiseCVS 下载地址:http://www.tortoisecvs.org/ (最新版本:1.8.11)
wincvs 下载地址:http://cvsgui.sourceforge.net/download.html (最新版本:1.3.20.3)
Python 下载地址:http://www.python.org/download/ (最新版本:2.4)
TCL 下载地址:http://www.activestate.com/Products/ActiveTCL/ (最新版本:8.4.9.0)
SmartCVS 下载地址:http://www.regnis.de/download.html (最新版本:3.0.6)
或者:
如果对WinCVS及的Python,TCL的安装一点也不熟悉,请首先阅读WinCVS安装配置指南,在此下载!!!
如果您需要WinCVS中文版,请在此下载!!!
如果您需要WinCVS所需的PYTHON,请访问python.org(仅支持2.2.3以下的版本)!!! 您也可以在本站直接下载!!!Python2.2.1Python2.2.3
如果您需要WinCVS所需的TCL,请访问TCL开发站点(TCL Developer Site)!!! 您也可以在本站直接下载!!!
viewcvs 下载地址:http://viewcvs.sourceforge.net/(最新版本:0.9.2)
CvsGraph 下载地址:http://www.akhphd.au.dk/~bertho/cvsgraph/(最新版本:1.5.1)
中文版CVSTrac 下载地址http://www.cnpack.org/download.php?id=246&lang=zh-cn)(最新版本1.2)
基于CVS的代码统计工具:按代码量,按开发者的统计表等:
StatCVS 下载地址:http://sourceforge.net/projects/statcvs (最新版本:0.2.2)
CVS权限管理(CVSACL is a patch for CVS):
cvsacl 下载地址:http://cvsacl.sourceforge.net/(最新版本:1.2.2)
subversion 下载地址:http://subversion.tigris.org/project_packages.html#binary-packages (最新版本:1.1.3)
tortoisesvn 下载地址:http://tortoisesvn.tigris.org/ (最新版本:1.1.3)
rapidsvn 下载地址:http://rapidsvn.tigris.org/ (最新版本:0.7.0)
发表评论
-
maven项目第一行报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mave
2020-04-09 01:23 447maven项目第一行报错:org.apache.maven.a ... -
删除项目中的所有.svn文件夹(或CVS文件夹)
2019-06-06 19:19 401当你的项目用SVN管理时,在项目的每个文件夹中会多一个.svn ... -
eclipse下生成Java类图和时序图,生成UML图
2016-12-30 02:28 2000最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理 ... -
eclipse使用ModelGoon插件自动生成java类的UML图
2016-12-30 02:23 11831、ModelGoon介绍 ModelGo ... -
linux下的tomcat jvm内存
2016-11-30 23:19 542常见的内存溢出有以下两种: Java.lang.OutOf ... -
FTP实现客户端与服务器文件传输(二)
2016-08-06 01:22 971/*以sun开头的class不是java里面的标准类,而是 ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2636一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Resource specification not allowed here for source level below 1.7
2016-08-05 11:14 1074现象:tomcat能正常启动,但打开页面时,出现上面的错误 ... -
使用commons.net FTP 和sun.net.ftp.FtpClient 多种方式上传下载(包括批量)删除功能(一)
2016-08-04 10:38 637使用commons.net FTP 上传下载删除功能 ... -
第十一节 CAS服务端RememberMe
2016-06-07 11:03 1121关于启用RememberMe功能所需做的修改描述 ... -
第七节:CAS4.0.0 以上服务端配置多个数据源
2016-06-03 14:50 10471.首先打开deployerConfigContext.x ... -
第六节:CAS服务端自定义数据库认证用户
2016-06-03 11:46 2284/** * @see --------------- ... -
第四节:将CAS https的认证方式改为http
2016-06-01 08:49 1639一、CAS Server端的修改 1、找到cas\W ... -
java 读取html过滤标签
2016-05-27 16:19 941public static void main(Strin ... -
获取cookie
2016-05-26 16:07 766获取cookie -
spring同时集成redis和mongodb时遇到多个资源文件加载的问题
2016-05-14 15:40 727两天平台中集成redis和mongodb遇到一个问题 单独 ... -
Windows上安装OpenSSL和生成证书
2016-05-10 15:52 22771,先下载OpenSSL http://www.slpr ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6191、使用系统自动获取安装。 1)获取更新 s ... -
3.nodejs nodejs的mysql模块
2016-04-12 22:20 509安装nodejs的mysql模块首先要选定一个数据库,我选择 ... -
第二节:cas处理中文乱码
2016-04-07 11:38 1214cas service配置参考第一节。 casServi ...
相关推荐
CVS版本控制简明使用手册 CVS版本控制简明使用手册
CVS版本控制CVS版本控制CVS版本控制CVS版本控制 资料已经很全啦!
cvs 版本控制 软件项目管理 cvs 版本控制 软件项目管理
版本控制在团队开发中是必不...MyEclipse中CVS版本控制的使用 MyEclipse中CVS版本控制的使用 MyEclipse中CVS版本控制的使用 MyEclipse中CVS版本控制的使用 MyEclipse中CVS版本控制的使用 MyEclipse中CVS版本控制的使用
删除CVS版本控制 使用方法 拷贝到 版本控制目录 运行
CVS版本控制系统 CVS版本控制系统 CVS版本控制系统 CVS版本控制系统
CVS版本控制心得 给项目管理的童鞋提供了很好的参考
CVS项目版本控制工具
玩转CVSNT+TortoiseCVS 版本控制系统(图解)
什麽是 cvs? cvs 是一个版本控制系统. * 什麽是版本控制系统呢? 简单的说, 就是可以记录程式码修改的过程, 有一个完整的 history.……
版本控制器CVS~~
CVS 版本控制.rar,详细讲解cvs版本控制及配置和使用方法。
cvs版本控制器 的搭建 我用的myeclipse6.0访问的 欢迎交流
cvs版本控制原理,version management with cvs,非常好,欢迎下载
清除SVN、CVS版本控制信息,支持此文件后,在鼠标右键将多出Delete CVS/SVN Folders选项。
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS环境初始化 环境设置:指定CVS库的路径CVSROOT tcsh setenv CVSROOT /path/to/cvsroot bash CVSROOT=/...
详细介绍了版本控制插件cvs的使用方法;
场景:假设我们是某个互联网公司的开发人员。我们正在进行一个长期的大项目开发,开发的结束日期可能是一个月以后,但是这个时候,由于正在运行的网站出现一些严重的bug需要紧急的修复;同时,市场部提出要在网站...
里面可以告诉你怎样用CVS整合项目,及CVS的安装与Myeclipse的集成使用
为什么要学习CVS CVS的工作思路 CVS下载与配置 服务器端CVS配置 CVS使用实例