- 浏览: 448209 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Luob.:
楼主 你这个问题怎么搞定的
奇异的 Spring WebApplicationContext 自动关闭 -
u013202238:
...
PDF和Java技术(PDFBox) -
u013202238:
...
PDF和Java技术(PDFBox) -
yuan1225:
您好请问 Discuz论坛的系统设置在哪里,登陆后台后没有 ...
Discuz!论坛通行证与JSP网站的整合 -
美妙人生:
,好,太好了,只是还是不太理解!
Discuz!论坛通行证与JSP网站的整合
Contents[hide] |
[edit] Introduction
If you've ever had some sort of programming project where you didn't want to turn your code into a disorganized soup of text files, you probably have had the idea of setting up a CVS server. While I will not explain what CVS "is" (you can read all about it here), what I will try to do here is tell you how to set up a CVS server from start to finish. A more modern orientated program which does virtually the same is Subversion also known as svn. For the gentoo-wiki enty click here
Remark, that this HOWTO describes how to access a CVS using the pserver protocol. This protocol is insecure, as it transfers passwords in plain text. A more secure approach is to access CVS via SSH with public key authorization.
[edit] Installation
# USE="server" emerge cvs # emerge cvsd
That took care of the installation part. You have a nice and operable CVS client ("cvs"), and the CVS daemon that will be running on your system in order to make it a functional CVS server. CVS must be built with the "server" USE flag or else CVSD will not work properly. Whenever someone attempts to connect, you will get this error:
cvs [login aborted]: unrecognized auth response from <host> cvs: unrecognized option `--allow-root=/root'
[edit] Create a CVS Jailroot
Now, you have to decide where you would like to place your CVS jailroot. This jailroot is a directory where the CVS repository will be held, and other things like configuration, (encrypted) CVS user passwords, etc. A good location to put your jailroot in is /var/lib/cvsd, which hereafter will be the meaning of "jailroot" in this document.
Let us set it up the CVS jailroot:
# mkdir /var/lib/cvsd # cvs -d /var/lib/cvsd/root init # cvsd-buildroot /var/lib/cvsd # cd /var/lib/cvsd # mkdir -p var/lock
Now our CVS jailroot is done. Our next task is to configure cvsd to run properly, and here is how it's done:
Fire up your favourite editor (I like nano, very Gentoo-ish. And yes, still as root!):
# nano -w /etc/cvsd/cvsd.conf
Here is what you have to look for in the config and modify accordingly so the lines you modify look like this (Note - just modify the lines that look like the ones in the box to say exactly what they say in the box; do not make your whole file look like that! Also, make sure that the whole file ends in a newline):
File: /etc/cvsd/cvsd.conf |
RootJail /var/lib/cvsd Uid cvsd Gid cvsd Listen * 2401 # or whatever port you'd like it to listen on, up to you Repos /root |
When you're done modifying, press CTRL+O, then <ENTER>, and finally CTRL+X to quit nano.
[edit] Add Users
There is one more thing you need to set up - users. CVS obviously has to have users, otherwise you will never know who is responsible for the various source files! So here it is:
# cvsd-passwd /var/lib/cvsd/root YOUR_USER_HERE
You will be prompted for a password, where I'm sure you know what to do. If you are extra-clever, you might realize that making the user name "anonymous" and not entering a password (just pressing ENTER will do) will create an anonymous CVS user. Woohoo!
- NOTE: To create a user that has only read rights follow the next steps:
# touch /var/lib/cvsd/root/CVSROOT/readers # chown cvsd:cvsd /var/lib/cvsd/root/CVSROOT/readers # nano /var/lib/cvsd/root/CVSROOT/readers
Add the users you just created to this file, each user seperated by a new line. Do not forget to put a new line after the last user. This setting only allows readers to the repository, to allow writers, create a file writers on same path.
- If a user is in the readers file the user is only allowed to read, regardless of whether or not they are in the writers file. If the user is in the writers file and not the readers file they can both read and write.
Example:
File: /var/lib/cvsd/root/CVSROOT/readers |
guest anonymous john |
[edit] Apply Correct Permissions
Once you're done setting up your various users, there are three more things to do:
- Change the permissions/ownership of your cvs directory
- Restart cvsd
- Add cvsd to your runlevel (if you want to)
1. Changing permissions and ownership. As root:
# cd /var/lib # chown -R cvsd:cvsd cvsd # chmod -R 775 /var/lib/cvsd/root
2. (Re)starting cvsd, your CVS daemon. As root:
# /etc/init.d/cvsd restart
3. If you'd like to, we can set it up so your CVS daemon starts up whenever your system does:
# rc-update add cvsd default
And now you are done. Read up on how to use the CVS client ("man cvs"), and keep your code organized.
- Kirill Zorin.
[edit] Quick local test
[edit] Common method
1. Set your CVSROOT environment var (:pserver:<username>@<host>:/cvsdirectory)
# CVSROOT=:pserver:YOUR_USER_HERE:PASSWORD@localhost:/root; export CVSROOT
2. Login
# cvs login
3. Import/Checkout something (See below)
4. Logout
# cvs logout
[edit] Import/Checkout something
1. (Optional) Import your first project into cvs
# cvs import -m 'Example01 project' example01 vendor start
Note:
Make sure your cvs user name is in /var/lib/cvsd/root/CVSROOT/writers and not in "CVSROOT/readers".
example01 is the name of the project,vendor is the vendor tag (can be anything) start is the release tag (can be anything which identifies the release)
all 3 fields must be included
Also note that this command will import everything in your current working directory, so if you wanted to import all the files in ~/example1/, you should cd into that directory, then execute the cvs import command. When you check out the files later, cvs will create a directory with the same name as the project to keep things neat.
2. (Optional) Checkout your first project from cvs
# cvs -d myExmp01 co -A example01
[edit] Tips and Tricks
Delete all CVS Folders:
# find ./* -type d | grep CVS | sed "s/^/rm -rf /" | sh
This variation will handle properly folders with spaces in their names and will handle hidden folders.
find -type d | grep CVS | sed "s/^/rm -rf \"/"|sed "s/$/\"/" | sh
[edit] Finally
Don't forget to route the port 2401 into your firewall
[edit] Potential Errors
The cvsd-1.0.2 build has a problem running the cvsd-buildroot command in which it does not copy all the libraries that are needed for the server to run correctly. If you are experiencing this error
cvs [login aborted]: reading from server: Connection reset by peer
Then use the following commands to fix this problem.
# cp /lib/ld-* /path/to/cvsdir/lib/ # cp /lib/libdl.so.2 /path/to/cvsdir/lib/ # cp /lib/ld.so.1 /path/to/cvsdir/lib/
(note: with the above setup /path/to/cvsdir/lib/ is /var/lib/cvs/lib/)
Related Bug Report: Bug 87124
Related Forum Discussion: CVSD help
[edit] SSH Mode
[edit] Access on a local server
You can very easily use cvsd in the more secure ssh mode if you already have sshd set up. You may want to skip the step where you create pserver users:
# cvsd-passwd /var/lib/cvsd/root YOUR_USER_HERE
If you already did that, you can reverse it by simply editing the file CVSROOT/passwd so that it is blank. This disables the pserver mode.
To give users on your server access to the cvs repository, issue the following commands:
# chmod -R 775 /var/lib/cvsd/root # gpasswd -a USERNAME cvsd
Repeat the second line for each user who needs access to cvs. Now any user that can access your server via ssh who also belongs to the cvsd group can access the cvs repository by setting CVSROOT as follows:
# CVSROOT=:ext:YOUR_USER_HERE@YOUR_HOST_NAME:/var/lib/cvsd/root; export CVSROOT
If your client is not running a recent Gentoo version, you may also have to set CVS_RSH as follows:
# CVS_RSH=ssh;export CVS_RSH
[edit] Access through a gateway
In theory you can define CVS_RSH to be any valid command which gives you a remote command interpreter. Namely as long as this scheme works, then CVS can use this particular CVS_RSH as a means to perform the neccesary tasks:
# $CVS_RSH YOUR_USER_HERE@YOUR_HOST_NAME SOME_COMMAND
Now suppose your cvs server is on a machine called INTERNAL, and you have to login to an ssh gateway machine called GATEWAY first. Then you can define CVS_RSH:
# export CVS_RSH=gateway_ssh
Now fireup your favorite editor, put these lines in your gateway_ssh file:
# #!/bin/sh ssh -t user@gateway ssh "$@"
Now let's save it in a directory which is in your $PATH, and conduct a basic test:
# gateway_ssh YOUR_USER_HERE@INTERNAL ls
You should see a list of files on INTERNAL.
Now edit your CVSROOT variable:
# export CVSROOT=":ext:INTERNAL:/var/lib/cvsd/root"
And you should be able to use cvs from your home computer now!
[edit] Combining pserver and SSH Mode
It is possible to use pserver mode and ssh mode at the same time. Just setup your server to use pserver. Create all pserver users with
# cvsd-passwd /var/lib/cvsd/root YOUR_USER_HERE
and setup ssh like above:
# chmod -R 775 /var/lib/cvsd/root # gpasswd -a USERNAME cvsd
Please note that the path to the repository is different for pserver and ssh.
# CVSROOT=:pserver:YOUR_USER_HERE@YOUR_HOST_NAME:/root; export CVSROOT #pserver
# CVSROOT=:ext:YOUR_USER_HERE@YOUR_HOST_NAME:/var/lib/cvsd/root; export CVSROOT #ssh
发表评论
-
jquery 操作checkbox的例子(全选,反选,获取选取值)
2009-05-21 17:17 5297jquery 操作checkbox的例子(全选,反选,获取选取 ... -
struts2 捕获404错误
2008-11-28 22:04 5250当访问一个不存在页面时,一般显示404错误,这是一个很不友好的 ... -
mysql alter 语句用法,添加、修改、删除字段等
2008-11-06 12:15 1615mysql alter 语句用法,添加、修改、删除字段等 / ... -
mysql数据库自动定期备份的脚本
2008-07-30 15:51 2099说明: 保留每天备份的数据是件不太现实的事,做好的做 ... -
CVS的日常使用
2008-07-22 16:50 1489一个项目的首次导入 cvs ... -
Advanced SiteMesh
2008-07-14 11:40 1185假设你打算结合多种技 ... -
Discuz! 数据库结构参考(下)
2008-06-30 09:40 3152Discuz! 数据库结构参考 ... -
Discuz! 数据库结构参考(上)
2008-06-30 09:39 2056Discuz! 数据库结构参考(上) cdb_access-- ... -
mysql 外鍵約束
2008-06-24 10:43 37361. 什么是参照完整性? ... -
mysql4.1以上版本连接时出现Client does not support authentic
2008-06-18 14:05 1277mysql4.1以上版本连接时出现Client does no ... -
Linux下两个不同版本Mysql的安装实战
2008-06-17 12:42 2825http://www.iteye.com/topic/2039 ... -
查看文本文件的编码格式
2008-06-13 17:16 3843Ubuntu enca命令可以用来查看文件的编码格式 安装 ... -
redhat9上用rpm包方式升级gcc3.2到gcc3.4
2008-06-11 09:50 4341刚刚安了个redhat9,发现gcc是3.2版本的,看到有文章 ... -
PHP+apache+mysql编程中乱码问题的解决
2008-06-10 17:20 2256作者: 乐道 2007-11 ... -
修改firefox 3的语言界面
2008-05-14 10:20 4776进入http://releases.mozilla.org/p ... -
Apache虚拟主机设置
2008-04-16 16:50 1889简介:这里说的虚拟主 ... -
Discuz!论坛通行证与JSP网站的整合
2008-04-11 16:43 5835最近做有关JSP与DISCUZ整合,搞了好久,还是搞不定,后来 ... -
PDF和Java技术(PDFBox)
2008-04-10 17:06 14770原文标题:Making PDFs Port ... -
Discuz 通行证的制作方法和详细说明
2008-04-09 17:42 2361通行证是个大题目,说白了也就是如何维护客户的会话,在php中所 ... -
使用Lucene2.3构建搜索引擎
2008-04-03 20:06 2641Lucene不是一个完整的全文索引应用,而是是一个用Java写 ...
相关推荐
4. **版本控制操作**:现在,你可以开始使用CVS的基本操作,如"Add to Version Control"(添加文件到版本库)、"Commit"(提交更改)、"Update"(更新到最新版本)等。 5. **协同工作**:当团队成员对同一文件进行...
### 构建Windows上的CVS服务器 #### 一、引言 版本控制系统是软件开发过程中不可或缺的工具之一,它能够帮助团队成员管理源代码的变化历史,实现多人协作下的代码版本控制。CVS(Concurrent Versions System)作为...
cvsnt-server-2.5.04.3236.msi cvs服务端 源码管理类
**CVS Server-A流媒体服务器快速使用手册** CVS Server-A是一款专为高效、稳定、安全的流媒体传输设计的专业服务器软件。它支持多种流媒体协议,如RTSP、RTMP、HLS、HTTP Live Streaming等,适用于直播、点播等多种...
The document you are currently reading contains a lot of general information about converting from CVS, and specifically how to use cvs2svn to convert your repository to Subversion. cvs2git....
2. **配置仓库**:打开控制面板中的“CVSNT Server”选项,找到“Repository configuration”标签页,点击“add”按钮并浏览至 F 盘中的 `cvsserver` 目录。 3. **设置标签**:选择“about”标签页,进行必要的设置...
cvspserver 2401/tcp # pserver cvs service cvspserver 2401/udp # pserver cvs service ``` 3. **启动CVS服务**: - 使用`# /etc/rc.d/init.d/xinetd restart`或`# service xinetd restart`重新启动xinetd服务...
server_args = --allow-root=/opt/cvs --allow-root=/opt/hkmc --allow-root=/opt/aps pserver ``` 这样,CVS服务器就可以处理来自不同项目目录的请求了。 2. **添加用户和设置权限**: 创建与项目关联的用户组...
使用 Eclipse 内置的 CVS 功能浏览 CVSServer 上的仓库资源,了解项目结构和版本历史。 **5.3 从CVS服务器上检出资源** 检出 CVSServer 上的资源到本地 Eclipse 工作空间,以便开始开发工作。 **5.4 提交修改到...
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver 如果是使用 xinetd 的系统,需要在 /etc/xinetd.d/ 目录下创建文件 cvspserver,内容如下: # default: on # ...
cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations ``` 接着,根据系统版本的不同,可能还需要编辑`/etc/inetd.conf`或`/etc/xinetd.d/cvspserver`文件来...
server = /usr/bin/cvs env = HOME=/var/cvs server_args = -f --allow-root=/home/cvsroot/ pserver bind = 192.168.18.3 } ``` 启动 CVS 服务 保存配置文件后,我们需要重启服务: ``` [root@RHEL ~]# /etc/...
在IT行业中,版本控制系统是开发团队协作的重要工具,其中CVS(Concurrent Versions System)是一个广泛应用的开源版本控制系统。然而,对于中文环境的用户来说,CVS在处理中文文件名或内容时可能会出现乱码问题,这...
这里以“CVSServer”为例,选择或新建一个文件夹,并指定其路径为“E:\CVSServer”。当出现“Do you want to initialise it?”对话框时,选择“是”,完成知识库的初始化配置。 2. **知识库初始化** 初始化过程会...
### CVS服务器快速使用手册知识点详解 #### 一、CVS简介与应用场景 CVS(Concurrent Version System),即并行版本系统,是一种广泛应用于软件开发中的版本控制系统。它旨在解决团队协作开发过程中常见的版本控制...
### CVS (Concurrent Versions System) 基本使用与概念 **CVS(并发版本系统)**是一种广泛使用的版本控制系统,特别适用于软件开发项目及文档撰写。它通过网络操作,支持多人协同工作,确保每位开发者可以对同一...
其中,`<user>`是你的用户名,`<server>`是服务器地址,`<port>`是服务器端口,`/path/to/cvsroot`是CVS根目录。高级用户可以选择使用SSH加密口令和数据流,设置`CVS_RSH=ssh`。 ### 登录CVS服务器 首次登录,运行`...
【CVS配置详解】 CVS(Concurrent Versions System)是一种广泛使用的版本控制系统,它允许团队成员协同工作并跟踪代码的变化。在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持...
**CVS(Concurrent Versions System)**是一种广泛使用的版本控制系统,尤其在开源软件开发中扮演着重要角色。它能够跟踪代码的变化,管理多个开发者协作时的版本冲突,并提供了历史记录和回滚功能,使得团队协作...