最近一直在发现自己的很多知识盲点 ^_^ ,其中之一就是cvs或者svn的知识。这个是多人工作的有效方式,曾经一次是处理后台程序的时候,两个人都不知道是什么情况下修改的,所以,如果有一个版本控制的软件,那其实非常棒,也知道每次修改是出于什么原因。
先解读一下基础知识然后再继续笔记内容:
1 什么是版本控制?
参考一下《Subversion 简介》:
2 版本控制流程是怎么样的?
版本控制一般是本机客户端从服务器上更新得到最新的一份文件,然后修改具体的文件,再更新到服务器,服务器管理好每个更新。如果文件同时分配到两个客户端,两个客户端提交更改,那只有一个可以更新,另外一个只能从新的版本修改提交更新,或者返回两个版本的文件,给你参考。
Subversion 可以使用基于http协议的WebDAV/DeltaV协议进行网络通讯,并由Apache服务器提供源码仓库方的网络浏览服务。这为 Subversion提供了比CVS更好的协同工作能力,并提供了各式各样的自由的关键特性:授权,基于路径的授权,线性压缩,以及基本源码仓库浏览。
3 如何重新编译软件?
首先是apache的配置,如果现有apache了,那就可以考虑更新了,但是问题来了,不能影响现有服务怎么办?我以前一头雾水,担心操作失误。那其实要添加模块文件的编译方法已经实践过了,见《如何向已经安装好的apache添加一个模块》
还有一个方法给已经编译的软件做修改,configure程序的参数是会被记录起来,放置到同目录的config.nice文件中,我是从apache的文档里面发现的:
所以,直接从文件里面就可以知道上次的参数,这样就不用担心重新编译会把某些功能丢失了,但至少你保留了源文件的情况哦。
4 如何配置apache和subversion?
人都是学习知道的,我参考了一下别人的方法,发现这篇文章不错:《SVN服务器搭建完全手册》,这个是看了很多文章知道的,因为我按照别的安装过程碰到问题在这里似乎都想到了。
阿权的服务器没有什么特别的,所以简单来讲,需要两个内容:
1 apache需要支持so,同时加载相应的svn模块
2 安装subversion时才会生成该模块,同时自动添加到apache的配置里,需要声明apr等的路径,否则不正常
apache的配置:
./configure --enable-dav --enable-so --enable-maintainer-mode
这个是subversion的INSTALL文件说明的参数,这个是跟subversion有关的,dav是验证模块,另外一个可以参考apache的手册,自行选择了:
上面是dav产生的两个模块,其实如果已经有这两个模块加载了,就不用重新编译apache,怎么看呢?phpinfo也可以简单的知道,有一个栏目是“apache2handler”,显示 Loaded Modules ,有这些模块就可以免得重新编译了。
subversion的安装:
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/home/src/server/httpd-2.2.2/srclib/apr \
--with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-util
这个是一个参考的参数,后面两个要添加,是指向apache源文件的目录的相关文件,如果没有指定,就会出现这样的错误:
阿权也碰到这样的问题,所以大家可以放心的这样做了。
5 如何开始简单的使用?
简单的使用可以参考更多的教程了,不细说了。
1 服务器上创建新项目
# su daemon #(apache是以daemon用户运行的,所以要切换身份,否则可能会报目录访问权限错误)
# svnadmin create --fs-type fsfs /home/svn/Lair
(如果用别的用户创建的项目,懒人可以把文件都改777 ^_^ )
2 给apache添加应用
3 新建和修改授权文件
htpasswd -c /etc/svn-auth-file aslibra
输入密码就可以了,另外,root创建的这个文件,默认组和其他都无法读取的,所以需要修改权限哦
4 重启apache后就可以访问了
http://www.aslibra.com/svn/Lair
简单就介绍到这里,本笔记也算至少可以把环境处理完毕,剩下是怎么利用好svn的问题了,以后再说。
原创内容如转载请注明:来自 阿权的书房
先解读一下基础知识然后再继续笔记内容:
1 什么是版本控制?
参考一下《Subversion 简介》:
引用
版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
2 版本控制流程是怎么样的?
版本控制一般是本机客户端从服务器上更新得到最新的一份文件,然后修改具体的文件,再更新到服务器,服务器管理好每个更新。如果文件同时分配到两个客户端,两个客户端提交更改,那只有一个可以更新,另外一个只能从新的版本修改提交更新,或者返回两个版本的文件,给你参考。
Subversion 可以使用基于http协议的WebDAV/DeltaV协议进行网络通讯,并由Apache服务器提供源码仓库方的网络浏览服务。这为 Subversion提供了比CVS更好的协同工作能力,并提供了各式各样的自由的关键特性:授权,基于路径的授权,线性压缩,以及基本源码仓库浏览。
3 如何重新编译软件?
首先是apache的配置,如果现有apache了,那就可以考虑更新了,但是问题来了,不能影响现有服务怎么办?我以前一头雾水,担心操作失误。那其实要添加模块文件的编译方法已经实践过了,见《如何向已经安装好的apache添加一个模块》
还有一个方法给已经编译的软件做修改,configure程序的参数是会被记录起来,放置到同目录的config.nice文件中,我是从apache的文档里面发现的:
引用
小幅度的版本升级(例如:2.2.55→2.2.57)很容易。make install 的过程不会改写任何已经存在的文档、日志、配置文件。此外,开发者也会尽量兼容上一版本的configure选项、运行时配置、模块API 。大多数情况下,你将能够使用与上一版本完全相同的configure命令行和运行时配置,而你原来的所有模块也将正常工作。
如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的configure命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后。。。。。
如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的configure命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后。。。。。
所以,直接从文件里面就可以知道上次的参数,这样就不用担心重新编译会把某些功能丢失了,但至少你保留了源文件的情况哦。
4 如何配置apache和subversion?
人都是学习知道的,我参考了一下别人的方法,发现这篇文章不错:《SVN服务器搭建完全手册》,这个是看了很多文章知道的,因为我按照别的安装过程碰到问题在这里似乎都想到了。
阿权的服务器没有什么特别的,所以简单来讲,需要两个内容:
1 apache需要支持so,同时加载相应的svn模块
2 安装subversion时才会生成该模块,同时自动添加到apache的配置里,需要声明apr等的路径,否则不正常
apache的配置:
./configure --enable-dav --enable-so --enable-maintainer-mode
这个是subversion的INSTALL文件说明的参数,这个是跟subversion有关的,dav是验证模块,另外一个可以参考apache的手册,自行选择了:
引用
--enable-maintainer-mode
使用所有警告和调试符号编译源代码,请勿用于正式服务器,它会影响性能。
使用所有警告和调试符号编译源代码,请勿用于正式服务器,它会影响性能。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_fs_module modules/mod_dav_fs.so
上面是dav产生的两个模块,其实如果已经有这两个模块加载了,就不用重新编译apache,怎么看呢?phpinfo也可以简单的知道,有一个栏目是“apache2handler”,显示 Loaded Modules ,有这些模块就可以免得重新编译了。
subversion的安装:
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/home/src/server/httpd-2.2.2/srclib/apr \
--with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-util
这个是一个参考的参数,后面两个要添加,是指向apache源文件的目录的相关文件,如果没有指定,就会出现这样的错误:
引用
–with-apr 和 –with-apr-util 如果没有加上的话,即使编译成功了也会出现
Can’t set position pointer in file ‘/home/svn/repos/db/revs/0′: Invalid argument
Can’t set position pointer in file ‘/home/svn/repos/db/revs/0′: Invalid argument
阿权也碰到这样的问题,所以大家可以放心的这样做了。
5 如何开始简单的使用?
简单的使用可以参考更多的教程了,不细说了。
1 服务器上创建新项目
# su daemon #(apache是以daemon用户运行的,所以要切换身份,否则可能会报目录访问权限错误)
# svnadmin create --fs-type fsfs /home/svn/Lair
(如果用别的用户创建的项目,懒人可以把文件都改777 ^_^ )
2 给apache添加应用
<VirtualHost *:80>
DocumentRoot "/Data/webapps/default"
ServerName www.aslibra.com
<Location /svn/Lair>
DAV svn
SVNPath /svn/Lair
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
</VirtualHost>
DocumentRoot "/Data/webapps/default"
ServerName www.aslibra.com
<Location /svn/Lair>
DAV svn
SVNPath /svn/Lair
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
</VirtualHost>
3 新建和修改授权文件
htpasswd -c /etc/svn-auth-file aslibra
输入密码就可以了,另外,root创建的这个文件,默认组和其他都无法读取的,所以需要修改权限哦
4 重启apache后就可以访问了
http://www.aslibra.com/svn/Lair
简单就介绍到这里,本笔记也算至少可以把环境处理完毕,剩下是怎么利用好svn的问题了,以后再说。
原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
熊出没注意
几个鱼缸的壁纸
