3月 21
PHP 手册
Smarty - the compiling PHP template engine
MySQL 5.1参考手册
JavaScript Reference
prototype.js
Apache HTTP Server Version 2.2 Documentation
Bash Reference Manual
Subversion
Defined tags for this entry: , , , ,

作者 rollenc

Bookmark Manuals online  at del.icio.us Digg Manuals online Mixx Manuals online Bloglines Manuals online Technorati Manuals online Fark this: Manuals online Bookmark Manuals online  at YahooMyWeb Bookmark Manuals online  at Furl.net Bookmark Manuals online  at reddit.com Bookmark Manuals online  at blinklist.com Bookmark Manuals online  at Spurl.net Bookmark Manuals online  at NewsVine Bookmark Manuals online  at Simpy.com Bookmark Manuals online  at blogmarks Bookmark Manuals online  with wists Bookmark Manuals online  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 26

1。混乱状态。



没有管理。
交流方式
通过相互的文件共享来达到代码交流的目的。
问题:无法立刻获取协作者间的代码。
不能同时对相同文件进行编辑。
代码覆盖的冲突经常发生,且不可还原


2。简单管理。



建立svn,使用文件服务器来简单的管理单一项目。
版本截图:100
rep100

解决了状态1下的各种代码交流问题。现在的交流模式方式如下图所示:

程序员中存在的错误观点:但是在刚开始使用时,很多人没有意识到meger的作用,不敢update,生怕update之后自己所修改的代码就没有了。

问题:没办法维护两个不同的版本。
由于项目的发展,第一个beta版本放出,而我们开始进行下一个版本的开发,而我个人也希望对一些代码进行整理。我初始使用了建立大量的其他文件,比如index2.php作为新版,而保持原有的index.php不变。
1。新的不能改动原有文件,因为新版还不完整,将导致错误;
2。原有文件中的bug修正可能在新的版本中同样需要,而我常常忘记把改动复制到新版。
陷入文件和版本的混乱,增加了对文件控制的复杂度。
截图rep1530
rep1530

3。subversion目录重新建构
开始使用分支:
个人分支:
我开始在建立rolelnc的个人分支,在自己的目录下进行新的开发,而不影响整个以前的版本。
而对主干只进行bug的修复
我可以随时使用meger命名来将主干的bug修复合并到我自己开发的分支上。
待我个人开发的新的功能完成时,我再使用meger命名把我的分支合并到主干上。
开发完毕之后,我可以再使用meger把我的修改合并到主干上。
流程:

截图1700


版本分支:
与个人分支相似,不过是多人对这一个分支进行开发,或者仅仅是一个版本的存档。不过后期我看到的资料显示,在tags目录下建立版本分支,如 http://192.168.0.2/svn/tags/version0.9/

4。目前的状态 截图head resp 3788


注:为了减少图片大小而展示更多的内容,以上部分图片经过了Fireworks处理。
Defined tags for this entry: ,

作者 rollenc

Bookmark EEmap的subversion历程  at del.icio.us Digg EEmap的subversion历程 Mixx EEmap的subversion历程 Bloglines EEmap的subversion历程 Technorati EEmap的subversion历程 Fark this: EEmap的subversion历程 Bookmark EEmap的subversion历程  at YahooMyWeb Bookmark EEmap的subversion历程  at Furl.net Bookmark EEmap的subversion历程  at reddit.com Bookmark EEmap的subversion历程  at blinklist.com Bookmark EEmap的subversion历程  at Spurl.net Bookmark EEmap的subversion历程  at NewsVine Bookmark EEmap的subversion历程  at Simpy.com Bookmark EEmap的subversion历程  at blogmarks Bookmark EEmap的subversion历程  with wists Bookmark EEmap的subversion历程  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 16

Subversion 1.2(最终版)




来源:Subversion中文站
这个站有很多关于subversion的文章。建议大家去看看。
我很感谢这个站,subversion的手册翻译的很好。我的subversion第一堂课使用的就是这个。
Defined tags for this entry: ,

作者 rollenc

Bookmark subversion的中文手册地址  at del.icio.us Digg subversion的中文手册地址 Mixx subversion的中文手册地址 Bloglines subversion的中文手册地址 Technorati subversion的中文手册地址 Fark this: subversion的中文手册地址 Bookmark subversion的中文手册地址  at YahooMyWeb Bookmark subversion的中文手册地址  at Furl.net Bookmark subversion的中文手册地址  at reddit.com Bookmark subversion的中文手册地址  at blinklist.com Bookmark subversion的中文手册地址  at Spurl.net Bookmark subversion的中文手册地址  at NewsVine Bookmark subversion的中文手册地址  at Simpy.com Bookmark subversion的中文手册地址  at blogmarks Bookmark subversion的中文手册地址  with wists Bookmark subversion的中文手册地址  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 15
很多人开始使用subversion之后,就想着,要建立一个测试用的服务器,不需要把文件update到本地再进行测试。这个在我以前的一篇文章中写过,但当时理解也不深,也写得很含糊。现在连自己都看不懂了。

原理: 基于subversion的钩子,即hook。在subversion执行一个操作时,那会相应的首先去调用相关的钩子程序(如果存在的话)。那么实现一个同步的测试服务器,我们只需要在一个用户执行完毕一个commit操作之后,让钩子程序去自动更新测试服务器的文件即可。通过这个思路,我们需要作的就是建立一个post-commit的钩子。

钩子文件在你的svn源目录下,即存放subversion版本数据的文件夹。以前面我写的两篇文章中的情况为例,
文一(win)的钩子文件应该在 E:\svn2\hooks
文二(Linux)的钩子文件应该在 /var/svn/hooks
文件夹内已经存在有一些.tmpl文件,这些只是一些模板(TeMPLate)或者说是示例文件。它们不会被执行。


先以linux为例,来讲讲如何构建一个同步的测试服务器127.0.0.2(在Ubuntu 6.10, apache2.0.55,subversion1.3.1下调试通过。2007/1/18)
我们假设你已经建立好了一个apache+subversion的环境。
0.准备工作
为同步服务器建立访问subversion版本的权限,清参考以前的文章

sudo htpasswd2 /etc/apache2/dav_svn.passwd server
 

1. 使用checkout建立一个工作复本

cd /var/www
sudo mkdir /var/www/127.0.0.2 #建立测试服务器站点根目录
sudo chown www-data.www-data 127.0.0.2 #更改用户所有者
sudo su www-data #切换到www-data,需要使用sudo,因为超级权限可以使用任何用户,而不需要密码,执行后会发现命令提示符可能会有变化
svn checkout http://127.0.0.10/lab.rollenc.com/trunk 127.0.0.2  #取出subversion上的文件,可能需要密码
                                                                                  # 请保证执行checkout语句的用户是www-data,否则在以后钩子调用update时会出现无法创建或修改文件的错误
exit #退出www-data用户
 

说明:我们必须把/var/www/127.0.0.2目录的所有者设置成apache的运行者(www-data), 他必须对文件夹具有完全的可读写操作权限。我使用
sudo chown www-data www
sudo su www-data

这样的方式来避免把/var/www/127.0.0.2目录设置成777的权限。
另外可以执行下面的代码实现相同的功能:

cd /var/www
sudo mkdir /var/www/127.0.0.2 #建立测试服务器站点根目录
sudo svn checkout http://127.0.0.10/lab.rollenc.com/trunk 127.0.0.2 #取出subversion上的文件,可能需要密码
sudo chown -R www-data.www-data 127.0.0.2/ #把文件用户修改成apache的执行用户
 

之后使用


ls -Al 127.0.0.2
 


应该可以得到

drwxr-xr-x 7 www-data www-data 4096 2007-01-17 10:21 .svn
...一些其他的文件


2。设置apache,把你需要的域名指向这个文件夹。

sudo gedit /etc/apache2/sites-available/127.0.0.2
 

输入以下文字

<VirtualHost 127.0.0.2>
        ServerAdmin rollenc@localhost.com
        ServerName localhost
        DocumentRoot /var/www/127.0.0.2
        <Directory />
        Options FollowSymLinks
        AllowOverride None
        </Directory>
        <Directory /var/www/127.0.0.2>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # Uncomment this directive is you want to see apache2's
                # default start page (in /apache2-default) when you go to /
                #RedirectMatch ^/$ /apache2-default/
        </Directory>

        ErrorLog /var/log/apache2/127.0.0.2_error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/127.0.0.2_access.log combined
        ServerSignature On
</VirtualHost>
 

启用他

sudo ln -s /etc/apache2/sites-available/127.0.0.2 /etc/apache2/sites-enabled/127.0.0.2
 

重启apache。

sudo apache2 -k restart
 

在浏览器上使用http://127.0.0.2可以浏览到你subversion上最新版本

3。建立钩子
现在是关键的一步,我们需要使我门的测试服务器127.0.0.2进行同步更新:
在/var/svn/hooks/目录下建立post-commit文件

cd /var/svn/hooks/
sudo gedit post-commit
 

输入以下内容

#!/bin/sh
REPOS="$1"
REV="$2"
svn update /var/www/127.0.0.2 --username server --password serverpassword
#echo `whoami`,$REPOS,$REV >> /home/rollenc/svn_hook_var.txt
#svn update /var/www/127.0.0.2 --username server --password serverpassword 2>/home/rollenc/svn_hook_log.txt
 

说明:REPOS即第一个变量$1是subversion数据库的地址,REV即第二的变量$2是commit之后的版本号。
编辑完毕后设置文件权限为可执行:

sudo chmod 755 post-commit
 

搞定。
下面来试一下,同步有没有成功。
再建立一个工作副本,然后添加或者修改一些东西,最后上传。
以下的操作是在客户端中进行了,不需要在服务器断进行。

cd /var/www
svn checkout http://127.0.0.10/lab.rollenc.com/trunk 127.0.0.6 #取出subversion上的文件作为你的工作副本,你的工作以后就在这个文件夹内展开。
                                        #所以,不需要sudo,但要保证有127.0.0.6文件夹存在,而且可写
echo '<?php phpinfo(); ?>' > phpinfo.php #建立一个phpinfo文件
svn add phpinfo.php   #把phpinfo加入版本库
svn commit  #提交
 

在浏览器中你设定的同步服务器地址http://127.0.0.2/phpinfo.php,愿上帝保佑你的成果一切正常。可以看到phpinfo的信息。

如果不正常你可以稍微修改上面使用#注释掉的命名,使其输出的文件目录符合你的系统。
去掉#,重新运行,并通过查看上面设置的txt来获得一些信息。
第一句[#echo ...]是获取当前的执行用户(如果正常应该与apache的执行用户和测试服务器文件所有者相同),$REPOS,$REV是获得的两个参数
第二句[#svn...]是把update的获取update的结果,一般错误信息在这里可以得到。


在Windows下我使用同样的方法试图建立钩子,但没有成功。感谢水蓝色青蛙(QQ:565259)的帮助,windows下的钩子问题解决。
以下是方法和代码,在windows XP下测试成功。
1,2步很类似,不再重复了
经过1,2步的操作之后,DIR的值E:/htddocs/testserver.lab.rollenc.com 为测试服务器的根目录。如果是win2003,你可能还需要参照ubuntu的方法设置一些权限。
第三步的中的钩子程序名称需要改为:post-commit.bat写成如下:

@echo off
SET REPOS=%1
SET USER=%2
SET SVN="D:/subversion/bin/svn.exe"
SET DIR="E:/htddocs/testserver.lab.rollenc.com"
(call %SVN% update %DIR% --username server --password serverpassword --non-interactive)
 


-------------以下内容已删除-----------

SET REPOS=%1
SET REV=%2
SET svn="D:/subversion/bin/svn.exe"
SET DIR="E:/htdocs/testserver.lab.rollenc.com"
%svn% update %DIR%
 

按理说,和linux的执行是一样的,但就是出错。
如commit一个test文件,则显示错误信息为:

Modified: E:\htdocs\testcopy\test.php
Sending content: E:\htdocs\testcopy\test.php
Error: Commit failed (details follow):
Error: MERGE request failed on '/lab.rollenc.com/trunk'
Error: MERGE of '/lab.rollenc.com/trunk': 200 OK (http://127.0.0.10)

而此时,test.php已经commit成功,在subversion数据库中已经存在有本次记录,但E:\htdocs\testcopy工作复本还是显示为没有commit。需要同步的E:/htdocs/testserver.lab.rollenc.com也没有update。

我个人压根不懂windows下的编程,以上代码是边google边学来的。所以还是希望有达人帮忙,好让我完成这篇blog,我也好给大家一个完整的交待。

最终参考了一些文档,还是没能解决win下的问题,我把测试和输出结果放下面:

@echo off
echo "" >  E:/hookLog.txt
echo "1" >> E:/hookLog.txt
SET REPOS=%1
echo "2" >> E:/hookLog.txt
SET USER=%2
echo "3" >> E:/hookLog.txt
echo %REPOS%, %USER% >> E:/hookLog.txt
SET SVN="D:/subversion/bin/svn.exe"
echo "4" >> E:/hookLog.txt
SET DIR="E:/htdocs/testserver.lab.rollenc.com"
echo "5" >> E:/hookLog.txt
REM call %SVN% update %DIR% >> E:/hookLog.txt
REM SET PATH=D:/subversion/bin/
REM svn update "E:/htdocs/testserver.lab.rollenc.com" >> E:/hookLog.txt
(call %SVN% update "E:/htdocs/testserver.lab.rollenc.com") >> E:/hookLog.txt
echo "6" >> E:/hookLog.txt
 

REM是注释,REM掉了我使用的很多种测试,切换REM可以运行其它的一些测试,但是全部无效。
以下是上面代码的输出:

""
"1"
"2"
"3"
E:/svn2, 54
"4"
"5"
"6"
 

1-6全部正常输出,惟一的是 svn update这一句没有输出任何东西。
完全放弃!等待达人。。。。
------------以上内容已删除-----------------



有问题也欢迎在下面贴出,乐意帮忙:)
Defined tags for this entry: ,

作者 rollenc

Bookmark 建立一个subversion的同步测试服务器  at del.icio.us Digg 建立一个subversion的同步测试服务器 Mixx 建立一个subversion的同步测试服务器 Bloglines 建立一个subversion的同步测试服务器 Technorati 建立一个subversion的同步测试服务器 Fark this: 建立一个subversion的同步测试服务器 Bookmark 建立一个subversion的同步测试服务器  at YahooMyWeb Bookmark 建立一个subversion的同步测试服务器  at Furl.net Bookmark 建立一个subversion的同步测试服务器  at reddit.com Bookmark 建立一个subversion的同步测试服务器  at blinklist.com Bookmark 建立一个subversion的同步测试服务器  at Spurl.net Bookmark 建立一个subversion的同步测试服务器  at NewsVine Bookmark 建立一个subversion的同步测试服务器  at Simpy.com Bookmark 建立一个subversion的同步测试服务器  at blogmarks Bookmark 建立一个subversion的同步测试服务器  with wists Bookmark 建立一个subversion的同步测试服务器  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 15
1。安装subversion和apache2的组件(已经认为您已经安装了apache2),

sudo apt-get install subversion subversion-tools  libapache2-svn



在/etc/apache2/mods-enabled中会多出来一下几个链接文件(实际文件在mods-available中,我们不需要去管,只需要关注enabled目录就成):

dav_fs.load dav_svn.conf dav_fs.conf dav.load dav_svn.load


2。建立svn数据库

sudo svnadmin create /var/svn 



ls /var/svn

你将得到这样的结果,则说明建立成功
conf dav db format hooks locks README.txt


3。配置apache


cd /etc/apache2/mods-enabled
sudo vi dav_svn.conf
 




按照提示去掉一些文件注释,最终的文件看起来如下


# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
<Location /svn>

  # Uncomment this to enable the repository,
    DAV svn

  # Set this to the path to your repository
    SVNPath /var/svn

  # The following allows for basic http authentication.  Basic authentication
  # should not be considered secure for any particularly rigorous definition of
  # secure.

  # to create a passwd file
  # # rm -f /etc/apache2/dav_svn.passwd
  # # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
  # New password:
  # Re-type new password:
  # Adding password for user dwhedon
  # #

  # Uncomment the following 3 lines to enable Basic Authentication
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd

  # Uncomment the following line to enable Authz Authentication
  # AuthzSVNAccessFile /etc/apache2/dav_svn.authz

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.

  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>

</Location>
 

或者象这样来实现独立的域名情况:

<VirtualHost 127.0.0.10>
        ServerName svn.rollenc.com
        DocumentRoot /var/svn

      <Location />
                DAV svn
                SVNPath /var/svn
                AuthType Basic
                AuthName "Subversion Repository"
                AuthUserFile /etc/apache2/dav_svn.passwd
                <LimitExcept GET PROPFIND OPTIONS REPORT>
                        Require valid-user
                </LimitExcept>
        </Location>
</VirtualHost>
 



4。建立密码文件
建立第一个用户需要加-c参数


sudo htpasswd2 -c /etc/apache2/dav_svn.passwd username
 


输入两次密码
建立其他用户:


sudo htpasswd2 /etc/apache2/dav_svn.passwd username2
 


注意没有加-c,加-c的话会清除掉以前存在的密码。
如果username2为已存在用户,那这句命令的意义就是修改密码

5.重启apache

sudo apache2 -k restart


如果一切正常的话,使用浏览器打开http://127.0.0.1/svn 应该看到如下信息
Revision 0: /
Powered by Subversion version 1.3.1 (r19032).


OK,安装完成
你可以对他进行一些import,commit等操作了

导入版本的文件框架

mkdir -p tmp/lab.rollenc.com/trunk tmp/eemap/trunk #如果你有其他已经写好的需要一起导入的文件,cp过来让在相应的trunk目录下,然后下一步。
svn import tmp http://127.0.0.10/ #更具提示输入message信息和用户,密码。
 

我在实验时发现有权限问题,这是你可能需要修改/var/svn的权限为可读写

sudo chmod -R 777 /var/svn
 

然后再继续执行上面的import操作。
现在使用浏览器打开http://127.0.0.10,可以得到

Revision 1: /

* eemap/
* lab.rollenc.com/


继续checkout和commit吧,祝你有一个愉快的subversion。
Defined tags for this entry: , ,

作者 rollenc

Bookmark 在linux(Ubuntu)下安装subversion  at del.icio.us Digg 在linux(Ubuntu)下安装subversion Mixx 在linux(Ubuntu)下安装subversion Bloglines 在linux(Ubuntu)下安装subversion Technorati 在linux(Ubuntu)下安装subversion Fark this: 在linux(Ubuntu)下安装subversion Bookmark 在linux(Ubuntu)下安装subversion  at YahooMyWeb Bookmark 在linux(Ubuntu)下安装subversion  at Furl.net Bookmark 在linux(Ubuntu)下安装subversion  at reddit.com Bookmark 在linux(Ubuntu)下安装subversion  at blinklist.com Bookmark 在linux(Ubuntu)下安装subversion  at Spurl.net Bookmark 在linux(Ubuntu)下安装subversion  at NewsVine Bookmark 在linux(Ubuntu)下安装subversion  at Simpy.com Bookmark 在linux(Ubuntu)下安装subversion  at blogmarks Bookmark 在linux(Ubuntu)下安装subversion  with wists Bookmark 在linux(Ubuntu)下安装subversion  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 15
上次参加php上海策进会的聚会,去的早了点,被h058拉着狂捧,结果就被忽悠着答应下次聚会的一个subversion讲演。
聚会的日期有定下来了,本月的27号。现在也得好好准备一下了。
虽然blog上已经稍稍的写了点subversion的东西,但是很基础的。高级的东西自己也是仅在使用而已,没有进行很深入的研究。如果被追根寻底的一问,绝对玩完。
哎,到时真的要插根葱在鼻子上才敢登台了。
Defined tags for this entry: , ,

作者 rollenc

Bookmark 上次厚着脸皮答应了一次讲演  at del.icio.us Digg 上次厚着脸皮答应了一次讲演 Mixx 上次厚着脸皮答应了一次讲演 Bloglines 上次厚着脸皮答应了一次讲演 Technorati 上次厚着脸皮答应了一次讲演 Fark this: 上次厚着脸皮答应了一次讲演 Bookmark 上次厚着脸皮答应了一次讲演  at YahooMyWeb Bookmark 上次厚着脸皮答应了一次讲演  at Furl.net Bookmark 上次厚着脸皮答应了一次讲演  at reddit.com Bookmark 上次厚着脸皮答应了一次讲演  at blinklist.com Bookmark 上次厚着脸皮答应了一次讲演  at Spurl.net Bookmark 上次厚着脸皮答应了一次讲演  at NewsVine Bookmark 上次厚着脸皮答应了一次讲演  at Simpy.com Bookmark 上次厚着脸皮答应了一次讲演  at blogmarks Bookmark 上次厚着脸皮答应了一次讲演  with wists Bookmark 上次厚着脸皮答应了一次讲演  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
1月 6
安装Subversion
1.安装ApacheSubversion
版本:
apache2.0.59: 我安装在D:/apache2
subversion 1.4.2: 我安装在D:/Subversion/
注意:subversion暂不能在apache2.2上运行
下载两个文件,先安装apache,在安装subversion,一路下一步就行,没什么好说的。惟一说明是在安装subversion时选择附加步骤时需要选中 install and configure apache(默认是选中的,没有注意到也没关系)。贴图如下:
图subversion_install.png
subversion install

安装完成后,apache配置文件http.conf中自动加入了两行:
LoadModule dav_svn_module "D:/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "D:/Subversion/bin/mod_authz_svn.so"


2.安装TortoiseSVN
版本:
TortoiseSVN-1.4.1.7992-win32-svn-1.4.2.msi我安装在D:/TortoiseSVN
一路下一步就成,安装完成时提示重启,重启只是影响外观,对使用不造成任何影响,所以暂时不管,选No。你也可以选择重新启动explorer.exe进程来完成。

3.建立repository
建立文件夹,我选择在E:/svn2,(因为现在是重新安装演示,E:/svn有我原有数据,所以,建立一个空的svn2)
右键,在E:/svn2建立一个repository
图subversion_createrepository.png,

这时弹出一个subversion存储类型的选择框,只是使用的话,两种类型可以随便选,选择FSFS。选择后安装完成。

图subversion createrepositoryOK.png,

4.配置apache
在第一步subversion安装时自动插入的两行一下插入:
Location 的值为访问svn时的url后缀,如127.0.0.1/svn,也可以使用二级域名
SVNPath的值为第三步建立的repository路径
AuthUserFile 为访问密码文件路径
LimitExcept 为权限控制。这里设定的是除了GET(获取)等操作外,都需要对用户验证, 更多权限配置管理参考svn_book

<Location /svn>
        DAV svn
        SVNPath "E:/svn2"
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile "D:/Apache2/svn.password"
        <LimitExcept GET PROPFIND OPTIONS REPORT>
                Require valid-user
        </LimitExcept>
</Location>
 

如果是域名绑定则使用:

<VirtualHost 127.0.0.10>
        ServerName svn.rollenc.com
        DocumentRoot E:/svn2

      <Location />
                DAV svn
                SVNPath "E:/svn2"
                AuthType Basic
                AuthName "Subversion Repository"
                AuthUserFile "D:/Apache2/svn.password"
                <LimitExcept>
                        Require valid-user
                </LimitExcept>
        </Location>
</VirtualHost>
 

5.建立密码文件

图subversion createusers.png
注意 -c
文件内容如下:
rollenc:$apr1$ek/.....$esgXZzlr/JLPsnxkfQjss1
test:$apr1$qr/.....$b95NrDKp9mHU84of3KX8c1


6.重启apache,察看127.0.0.1/svn
得到了:Revision 0: /

7.规划subversion结构
7.1:建立一个项目EEmap:
任意目录右键,TortoiseSVN->Repo-browser->输入地址http://127.0.0.1/svn
create Folder -> 输入name (EEmap)->输入 logmessage (EEmap Project)
这时就需要密码了。填入刚才的自己的用户名,密码,建立成功

7.2: 建立项目的内部结构:

按照这种方法。建立整个svn的结构,如下
svn
|-EEmap
| |-trunk
| |-branch
|-lab.rollenc.com
| |-trunk
| |-branch

如图:subversion_constructOK.png
图subversion constructOK.png

7.建立工作复本
建立文件夹,checkout
如图subversion_checkout.png
图subversion checkout.png
建立成功之后,在EEmap目录下自动创建一个服务器上的备份,以及一个.svn的隐藏文件,EEmap文件夹上也会出现一个绿色的钩记

8.导入工作复本
由于lab.rollenc.com已经在我的文件中了,所以,我不需要建立,而需要导入
在lab.rollenc.com中导入
如图:subversion_import.png
图subversion import.png

但是import之后,这个还并不是你的工作复本,你需要check out才能建立你的工作复本,而直接在lab.rollenc.com文件中check out则会出错,因为该目录中已经存在它需要取出的文件。
解决方法:
由于这个工作复本已经在subversion服务器上了,所以,你完全可以放心直接删除lab.rollenc.com里面的所有文件,再checkout一次。


9.建立、修改文件,并提交
略去,参看svn_book

10. 建立版本号:
现在,如果我们建立了EEmap的原始模型,团队认为,可以发布0.1版本了,那么,简单的建立一个版本:
在repo中选择copy to
输入 http://127.0.0.1/EEmap/branch/versions/version0.1
图subversion copyto.png
ok,建立成功
在任何时候你都可以使用check来取出0.1版本,这个版本不收主干文件的干扰 http://127.0.0.1/EEmap/branch/versions/version0.1

完成之后,现在我的subversion内的文件如下:
subversion_basedone.png



基本的使用告一个段落

进阶使用
待续。。

[感谢samon对我上文中部分错误的指正]
Defined tags for this entry: ,

作者 rollenc

Bookmark apache+subversion安装指引(图文版)  at del.icio.us Digg apache+subversion安装指引(图文版) Mixx apache+subversion安装指引(图文版) Bloglines apache+subversion安装指引(图文版) Technorati apache+subversion安装指引(图文版) Fark this: apache+subversion安装指引(图文版) Bookmark apache+subversion安装指引(图文版)  at YahooMyWeb Bookmark apache+subversion安装指引(图文版)  at Furl.net Bookmark apache+subversion安装指引(图文版)  at reddit.com Bookmark apache+subversion安装指引(图文版)  at blinklist.com Bookmark apache+subversion安装指引(图文版)  at Spurl.net Bookmark apache+subversion安装指引(图文版)  at NewsVine Bookmark apache+subversion安装指引(图文版)  at Simpy.com Bookmark apache+subversion安装指引(图文版)  at blogmarks Bookmark apache+subversion安装指引(图文版)  with wists Bookmark apache+subversion安装指引(图文版)  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!
7月 21
服务器端安装:
Ubuntu下:
在synaptic中选择apache2,libapache2-svn,subversion,subverion-tool,libsvn0以及其他依赖的软件包,自动安装。
windows下:
下载安装包:svn-1.2.3-setup.exe,双击安装。

服务器端配置:
1.建立版本库
svnadmin create /var/svn (Ubuntu)
svnadmin create E:/svn (Win32)
或者使用服务端也成,具体可以参考其他相应文章.这些方式在 http://www.subversion.org.cn/content/view/18/1/ 文中写的很详细。你会发现在/var/svn(E:/svn)中有不少的文件夹。这说明版本库建立成功。
2.建立服务器进程:
1)可以使用svnserve,但我个人不推荐,这种方式在 http://www.subversion.org.cn/content/view/18/1/ 文中也详细有介绍,不再重复了。
2)使用apache当服务器:
Ubuntu:
$cd /etc/apache2/mods-enabled
$ls //你会发现有 dav.load,dav_fs.conf, dav_svn.conf ,dav_fs.load , dav_svn.load 这些文件。
$sudo kate dav_svn.conf
按照上面的英文提示操作,把dav_conf改为(去掉了注释,在实际中你只需要做相应修改。其实具体方法全部在注释里写明了。WINDOWS用户就没这么运气):
<Location /svn>
DAV svn
SVNPath /var/svn #你在上面建立版本库时的路径
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
保存,建立密码:
$rm -f /etc/apache2/dav_svn.passwd
$htpasswd2 -c /etc/apache2/dav_svn.passwd firstUser
$htpasswd2 /etc/apache2/dav_svn.passwd secondUser #请注意,加以后的用户时不要加 -c ,-c会将以前的所有用户全部删除.
$sudo apache2 -k restart #重启apache2.
这样你现在就可以通过http://yourhost/svn/访问你的版本库了。访问不需要密码,但存入等操作需要用户名和密码,具体权限问题可以参考官方说法,
Windows:
操作基本相同,只是Apache配置文件组织不同而已,相应乍改变。
3.创建钩子,自动更新测试服务器上文件:
$cd /var/
$sudo mkdir www #如果本来有文件,请备份后删除此文件夹
$sudo chown www-data www #改变这个文件夹为APACHE进程用户
$sudo su www-data #以apache进程的使用者登陆,具体为什么样的值可以在APACHE的CONF中找到
$svn checkout http://yourserver/svn www #取出一次,不管现在版本里面有没有东西
$exit #退出www-data用户
$cd /var/svn/hooks/
$sudo chmod 777 post-commit
$sudo kate post-commit
更改文件为:
REPOS="$1"
REV="$2"
E=(`svn update /var/www`)
#/var/www为你的测试服务器WEB根目录。
保存。测试服务器完成。
Windows下需要把文件保存为post.commit.bat或.com等可以被WINDOWS直接运行的文件后缀。svn运行目录也许要更改,具体我没有测试,抱歉了。

现在可以使用http://yourserver/svn进行版本控制,使用http://yourserver/进行测试。

参考:
用 Subversion 构建版本控制环境 http://www-128.ibm.com/developerworks/cn/opensource/os-subversion/
Subversion中文站 http://www.subversion.org.cn/


Defined tags for this entry: ,

作者 rollenc

Bookmark subversion+apache构建文件服务器和测试服务器  at del.icio.us Digg subversion+apache构建文件服务器和测试服务器 Mixx subversion+apache构建文件服务器和测试服务器 Bloglines subversion+apache构建文件服务器和测试服务器 Technorati subversion+apache构建文件服务器和测试服务器 Fark this: subversion+apache构建文件服务器和测试服务器 Bookmark subversion+apache构建文件服务器和测试服务器  at YahooMyWeb Bookmark subversion+apache构建文件服务器和测试服务器  at Furl.net Bookmark subversion+apache构建文件服务器和测试服务器  at reddit.com