Apache的安装请参考我其他文章。也就下下来安装一路安装就是了,没有什么特别。
Apache配置主要通过修改httpd.conf文件来进行配置的。也请参考我其他文章。
Subsion也下载下来解压就是了。
修改PATH变量,在其末尾添加 C:/subversion安装路径/bin
添加环境变量 VN_EDITOR="C:/Windows/notepad.exe"
其他置也请参考我其他文章。
本文用的是Apache2.0.* Subversion1.4.6
建立Repository(版本库)
进入D:/svnServer
svnadmin create demo
运行Subversion服务()
svnserve -d -r D:/svnServer /demo
你可以通过下载svnservice,把svn当作系统服务运行(请参考我其他文章)
svnservice.exe -install -d -r D:/svnServer /demo
访问Subsersion服务器
svn://localhost
APACHE
将 svn/bin 下的 mod_authz_svn.so、mod_dav_svn.so 两个文件复制到 Apache 的 modules 目录下
打开Apache的配置文件 httpd.conf,查找 LoadModule,将下面这两行之前的 # 去掉:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
并添加下面两行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
运行APACHE,执行apache.exe
认证部分
Respository(D:/svnServer/demo)下的conf文件夹下有authz ,passwd ,svnserve.conf三个文件
在svnserve.conf文件中找到下面的语句,把前面#号去掉,把空格也去掉
password-db = passwd
在passwd中[users]后添加
user1:12345
再跑到Apache/bin下运行命令
htpasswd -c passwd user1
根据提示输入密码,生成passwd文件
又到Apache/conf找到httpd.conf文件,在最后添加
<Location /svn>
DAV svn
SVNParentPath H:/wutinghua/svnwork
# AuthzSVNAccessFile svnaccessfile
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:/.../Apache/bin/passwd
Require valid-user
</Location>
SVNParentPath后面的目录即为Respository的位置。
跟在Location后面的 /svn 表示通过http://localhost/svn 可以访问subversion版本库。该指令告诉Apache,所有以 /svn 开头的请求都交给subversion处理。
实践:
导入项目。假设项目目录D:/svnWorkplace/svntest(注意这还不是subversion工作目录,你在这里update或comit是不会成功的,你使用checkout后的目录才是svn的工作目录),建立测试文件demo.c ,运行命令导入到subversion服务器中
D:/svnWorkplace>svn import svntest http://localhost/svn/demo
Adding svntest/demo.c
------------------------------------------------
这里会弹出记事本让你填写comment,
或者你可以使用-m 参数在命令行中写注释就不会弹出来了
------------------------------------------------
Committed revision 1.
查看服务器上的文件
svn list http://localhost/svn/demo
A demo/demo.c
Checked out revision 1.
之后会在svntest下生成一个demo文件夹,这个demo文件夹才是svn的工作目录,以后所有svn命令都是在这个文件夹下执行。demo下有一个.svn文件夹,千万不要改动里面的东西,这是subversion管理用的。
我们在demo下新建一个文件demo2.c, 你svn commit一下发现它并没有被添加进服务器中。因为subversion并不理会操作系统的命令,不信,你把demo.c和demo2.c都删除,update一下它们又被更新回来了。你想对文件进行增删改,必须使用svn命令。要添加demo2.c,使用svn add命令






你可以通过svn list http://localhost/svn/demo 或者直接访问 http://localhost/svn/demo 查看服务器的文件列表。
解决subversion冲突
由于subversion跟csv ,vss不同,不是“锁定-修改-解锁”模型,而是“拷贝-修改-合并”模型。所以有可能发生冲突。比如A某和B某同时取得demo.c的最新版本,A某修改完commit之后,B某修改完再commit的时候就会收到一个警告










并且同时在本地上生成如下文件
demo.c //本地文件 里面结合了A某修改的内容和B某修改的内容 ,你会看见下面类似内容:
<<<<<<< .mine
你修改的东西
=======
别人修改的东西
>>>>>>> .r2
demo.c.mine //B某修改的内容
demo.c.r1 //B修改前最新版分的内容
demo.c.r2 //A修改后的版本的内容
当你对照了这几个文件,确定正确无误的合并了A某B某修改的内容(一般情况下subversion都能够正确的帮你合并),并删除掉3个临时文件demo.c.mine,demo.c.r1 ,demo.c.r2 后,B某才能commit.
当然你也可以使用svn revert 命令来放弃你本地的修改,然后使用svn resolved demo.c 告诉subversion已经解除了冲突,subversion会把3个临时文件删除掉。
当然你嫌命令行操作麻烦的话,你可以下载TortoiseSVN 进行GUI操作。
结合Subversion 和 Eclipse
Eclipse 除了可以与 Concurrent Versions System(CVS)集成外,还可以和SVN集成。
我们需要Subclipse 。Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。我们可以使用 Eclipse 的更新管理器将 Subclipse 添加到 Eclipse IDE。
Help➔Software Updates ➔Find and Install(Search for new features to install☑)➔Next
然后你会看见一个让你选择网站的列表,由于我们需要的是特定特性,所以取消选中现有站点,然后单击 New Remote Site
Name:Subclipse
URL:URL:http://subclipse.tigris.org/update_1.0.x
➔OK ➔Finish
然后就开始下载并安装 Subclipse。更新管理器下载 Subversion 组件。然后你会看见一个Verification的窗口。在安装任何内容之前,Eclipse 都将通知您该特性没有数字签名。这是您取消安装的最后一次机会。单击 Install All继续安装。然后Eclipse就会重起。
测试:
在 Eclipse 的 File 菜单中(package Explorer和Navig窗口中右键也可以)Import打开导入管理器。选择 Other➔Checkout Projectsfrom SVN,然后单击 Next。然后自己就按照提示做吧。
checkin ,checkout都是通过右击项目,在Team菜单里面操作。要对现有项目应用version管理,通过Team➔share Project.