清单 A
# addgroup [svn-users]
# usermod -u [nnnn] -G [svn-users]
# mkdir -m 770 [/home/svn-repos]
# chgrp [svn-users] [/home/svn-repos]
# svnadmin create --fs-type fsfs [/home/svn-repos]
请注意一定要在fs-type选项中明确“fsfs”。因为默认情况下,Subversion知识库文件系统的数据库的最初名称为“bdb”,已被证实有些不稳定。新版本中默认名称已经更改为fsfs,但是有些老版本及非标准版的Subversion依然使用bdb。出于安全起见,还是要在创建新知识库时明确一下fsfs数据库格式,保证系统能够更稳定。
在服务器上建完知识库目录以后,就可以在这个目录下创建实际的项目知识库。也许是出于直觉,你不应该直接在知识库内进行。清单B告诉你如何通过单独目录在知识库目录中创建包含有被丢弃的文件的知识库,然后再通过“check in”登记来创建项目知识库。
最好以前面命令中指明的用户帐号登录。从所用用户帐号的根目录开始按步骤进行。使用非根用户身份登录,前面显示“$”符号。同样的,[]括弧中的内容可根据你的需要进行修改。记得在输入时不要输入括弧。
清单B
$ mkdir [project]
$ cd [project]
$ touch [file.txt]
$ svn import -m "[importing file to create project]" . file:///[home/username/svn-repos/project]
在服务器上创建项目知识库以后,就完成了。 在将项目知识库导入知识库之前需要删除刚才创建的项目目录,因为目录中的数据现在已经安全的保存在服务器上了。既然知识库是通过一个空文件使用touch command创建完成,所以删除也不会造成任何损失。
在客户端电脑上你可能需要编写项目或者访问文档,所以你还需要查看知识库中的内容并创建一个本地副本。例如,同样的也是假设您使用免费的类UNIX操作系统,如BSD,或者OpenSolaris这样的Linux版本。
清单C
$ cd [/home/username]
$ mkdir [svn-local]
$ cd [svn-local]
$ svn co svn+ssh://[hostname/home/username/svn-repos/project project]
这时,一般都需要三次输入保存知识库的系统的密码。在本例中,除了你选择的操作系统,您还需要在客户端系统上安装功能完全的SSH客户端和SSH服务器。 Svn命令知道如何通过SSH传达网络需求,为客户端和服务器系统之间提供安全的加密连接,保护您的用户名、密码和数据不受可能注意您的网络的恶意安全破坏者侵害。
Svn-local目录不是必需的。如果你愿意的话,你可以就把最新校验过的项目或者文档目录直接保存到您的用户帐号主目录下。一般最好将由 Subversion知识库维护的目录与备份方式不同的目录分别保存,以免弄混。在以前的例子中,你都无需为重要数据“项目”的目录命名,所以也不需要为最初的空文件“file.txt”命名。
对项目的本地副本核实完毕,就可以删除客户设备上的项目目录。然后就需要在目录内添加其他在Subversion中保存的文件,并在服务器上的Subversion知识库中进行核对。清单D就为操作范例。
清单 D
$ cd [/home/username/svn-local/project]
$ svn rm file.txt
$ cp -R [/home/username/project/*] .
$ svn add `ls -R`
$ svn ci -m "[added all base files to the project directory]"
cp -CR命令能将目录中重要数据目录中的全部内容(在这里为/home/username/project) 复制到当前目录中 (由单独的句子指定)。svn add `ls -R` 命令将这个目录下全部内容以及所有的子目录添加到本地项目目录副本中的版本控制中。svn ci 命令将当前副本提交到服务器上的主目录中。在添加命令以后,svn客户端工具会显示添加文件列表。Ci命令会要求密码以确保你有权限进行提交。
Subversion的使用
不同的图形化用户界面的使用方法也不同,各个用户的使用方式也不同。对于使用命令行的客户,最重要也是最基本的升级、管理和提交项目文件的命令是以下这些:
本文并非神化Subversion,只是对Subversion版本控制软件进行了有益的介绍,版本控制软件的使用是任何敬业的程序员都要使用的技巧。本文中的这些例子能够为您提供真切的帮助,即使您不是程序员也会感觉有益。
责任编辑:德东
用户评论