战斗吧主公:可不可以再弄个战斗吧主公的职位

fis3也出来了, 分享一个我这几天弄的fis3+vue+...的开发环境 - CNode技术社区
这个demo集成了目前前端开发比较流行的开源工具。
适用用于简单的前后端分离,移动端开发。
关键字:MVVM, 模块化,ES6,Combo,自动化部署
BrowserSync
:fis是面向规范的配置,而不是面向流程的配置,更适合做架构设计。用于解决前端开发中自动化工具、性能优化、模块化框架、开发规范、代码部署、开发流程等问题。目前已经有400多个插件,生态圈很大。
:更好用的MVVM框架,Api 设计得非常优雅,它本身也借鉴了很多成熟库的思想。
fis3又是神马东西
这是介绍~你可以看下~
看来fis3是个build工具
是的,很强大的构建工具~
和gulp相比有神马优势?
你这个客户端能下载吗?
越狱的机子也不行吗?
不行,我压根没放出一个安装包
写得非常不错
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的fis3 新特性应用
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
| 时间 2015 |
作者 红领巾 ]
fis3 新特性应用
fis3相比fis2,核心思路并没有改变
还是围绕3个核心做处理:
而整体 构建流程 也没有做过多的改动。
fis3相对于fis2来说,用户更容易使用,给插件开发者提供更多的能力
这主要体现于以下两点:
类似css的覆盖式配置方式,不需要用命令行参数来进行配置
提供许多事件锚点
这篇文章主要介绍的就是第2点,讲解fis3提供的特殊事件,及其作用。
2 lookup:file
fis3 在查找文件资源的时候,通过统一的接口【fis.project.lookup】查找
在该接口里面,会抛出lookup:file事件,看如下注释:
* 当查找文件时派送, 可以扩展 fis 默认的查找文件功能。如:支持无后缀文件查找,支持 components 文件查找。
* @event lookup:file
* @property {Object} info 包含查找路径信息。
* @property {File} file 文件对象。
* @memberOf fis
fis.emit('lookup:file', info, file);
info参数是一个对象,因此,我们通过监听lookup:file事件来对文件资源的id进行额外处理
fis3-hook-lego 是一个fis3 版本的lego组件系统 包管理的模块查找插件
它的作用是让用户使用lego组件如同使用node组件一样,让系统能够智能的识别lego组件,感兴趣的读者可以深入了解该插件
实际上,fis3-hook-lego的核心原理就是利用了lookup:file事件,看如下源代码:
module.exports = function(fis, opts) {
fis.on('lookup:file', function(info, file) {
// 不处理相对路径的文件和已经处理了的文件
if (file.isJsLike && info.rest && info.rest[0] !== '.' && !info.id) {
var ret = lookup(info.rest, opts); // 尝试lego模块查找
if (ret && ret.file) { // 如果找到,则修改id,定位到相应文件
info.id = ret.file.getId();
info.file = ret.
3 proccess:start, proccess:end, release:start, release:end
这4个事件的用意非常明显,fis3的构建流程主要分为2步:每个文件的compile和所有文件的package
以上4个事件就是这两个过程的开始以及结束锚点
这4个关键节点的用处不言而喻,下面笔者举两个例子
3.1 检测构建时间
var timeMap = {};
fis.on('proccess:start', function(file) {
timeMap[file.id] = +new Date();
fis.on('proccess:end', function(file) {
console.log(file.id, 'compile use:', +new Date() - timeMap[file.id], 'ms');
fis.on('release:start', function(file) {
timeMap['release:'] = +new Date();
fis.on('release:end', function(file) {
console.log('release use:', +new Date() - timeMap['release:'], 'ms');
结果如下:
3.2 缓存清理
在打包过程中,通常我们需要许多复杂的处理,为了提升构建效率,可能我们需要做一些缓存机制
但是,我们需要在构建结束的时候,把这些缓存清掉,否则就会影响下一次构建(在watch的情况下)
这个时候,release:end事件就可以很好的为我们工作:
fis.on('release:end', function() {
// 每次处理完都需要重置cache
readCache = {};
4 compile:parser, compile:preprocessor, compile:standard, compile:postprocessor, compile:optimizer
以上5个事件是文件compile阶段中5个关键节点的锚点
在每个阶段中,对file进行相应阶段的处理之前,fis3都会先抛出一个事件
这些节点的意义也非常深远,甚至可以改变fis3的compile流程,同样笔者也举两个例子
4.1 不需要两个插件!
因为fis3的构建流程固化了,有时候我们在进行某些处理的时候发现,我们需要在某个操作的前后分别进行处理,比如我要在资源inline替换的前后做某些操作,我们知道inline替换是standard步骤进行的,那么我们可能需要写两个插件,分别是:
fis3-preprocessor-xxx 和 fis3-postprocessor-xxx
我们真的需要吗?
No,通过事件,我们可以只需要一个插件!看如下代码:
// file: fis3-preprocessor-xxx
fis.on('compile:postprocessor', function(file) {
// some process after inline
module.exports = function(content, file, settings) {
// some process before inline
conf = // save the settings which can be used on postprocessor
需要注意以下两点:
一般我们把插件定义为最开始需要处理的那个阶段插件,否则就无意义了
因为两个插件组合为一个插件了,所以我们只有一个地方配置参数了,两个插件的参数会组合在一起,这个时候就要好好的组织一下参数格式,并保存起来,以便其他插件使用
有5个事件,所以我们可以把5个插件何在一起!!!
4.2 你可以不孤单!
compile是单文件处理,在这个过程中是拿不到其他文件的,它不像package阶段插件那样,有一个ret参数可以使用
但是,有时候,我们在compile阶段真的需要其他一些文件资源的时候怎么办?
在fis2或者不知道有额外能力的情况下,往往我们会把我们的处理放到package阶段,在这里我们才能找到其他文件,然后做相应处理,然后,可能,你需要蛋疼的重新compile一次该文件(笔者是做过这种事情的)
解决方案是,你可以在compile阶段自己存储所有的文件资源!
请看如下代码:
// file: fis3-parser-xxx
// parse是最早的事件点,所以要定义这个点的插件,详见4.1
var fileMap = {};
fis.on('compile:postprocessor', function(file) {
var deps = findDepsOfFile(file);
if (deps.length) { // 需要依赖依赖其他文件
if (hasAllDepsFile(deps)) {
// 所有依赖的资源已经compile,现在可以进行处理了!
process(file);
// 然后需要看下其他文件是否依赖这个文件
processIfOtherFileNeedThisFile(file);
// 资源还没到齐,先缓存起来
fileMap[file.id].deps =
processIfOtherFileNeedThisFile(file);
module.exports = function(content, file, settings) {
// 收集file对象
fileMap[file.id] = {
file: file
看起来很绕,也确实很绕,在这里只是想让读者知道,可以这样子处理
这样处理已经违背了fis3的核心理念,慎用!
可以看到,fis3最重大的改进就是提供了更多的想象空间给插件开发者
合理利用这些特性,我们可以在fis3的环境下做许多事情
但就只有这些吗?
No!还有另外一些更加有趣更加开放的特性还没介绍。
敬请期待下一期!
本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
CodeSecTeam微信公众号
为成功找方法,不为失败找借口。
手机客户端几种版本控制软件的比较
Subversion
Tools(几种Subversion工具的安装使用)&&&&&&&&&&&&&&&&&&&&&
0.关于Subversion
Subversion具有以下的特点:
几乎所有的CVS特点-Subversion的初衷就是开发一个更好的CVS。
目录和文件都被版本化。
拷贝、删除操作被版本化。
灵活的版本化metadata。
commit原子化。
Branching和tagging简单易用。
整合tracking。
文件locking。
符号链接可以被版本化。
Apache网络服务器选项,通过WebDAV/DeltaV协议。
独立的服务器选项-svnserve。
可转换的输出。
&&& 本地化消息。
可交互的冲突解决方案。
Repository只读映射。....
关于更详细的信息,请参考:http://subversion.tigris.org/features.html
关于Subversion的FAQ列表,中文翻译小组进行了翻译,请参考http://subversion.tigris.org/faq.zh.html。感谢中文翻译小组所作出的贡献。
一个典型的Subversion工作流程如下(摘自Subversion中文帮助):
典型的工作周期是这样的:
更新你的工作拷贝
&&&&&&&&&&&
update&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
svn delete
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
svn status
&&&&&&&&&&&
可能会取消一些修改
&&&&&&&&&&&
revert&&&&&
解决冲突(合并别人的修改)
&&&&&&&&&&&
svn update
&&&&&&&&&&&
resolved&&&&&
提交你的修改
&&&&&&&&&&&
svn commit
SVN的命令集如下:
&& blame (praise, annotate,
&& checkout (co)
&& cleanup
&& commit (ci)
&& copy (cp)
&& delete (del, remove, rm)
&& diff (di)
&& help (?, h)
&& list (ls)
&& move (mv, rename, ren)
&& propdel (pdel, pd)
&& propedit (pedit, pe)
&& propget (pget, pg)
&& proplist (plist, pl)
&& propset (pset, ps)
&& resolved
&& status (stat, st)
&& switch (sw)
&& update (up)
可以使用svn help或者svn help subcommand(例如svn help checkout)来获取帮助。
一般来说,使用图形化的GUI来作为Subversion的客户端使得操作更加的简单易用,注入Toitorse
SVN或者CollabNet的Subversion客户端工具,如果使用集成开发环境,例如Eclipse,MS Visual
Studio,NetBeans等,都会具有对应的Subversion
Plugin的支持,以去除手动使用SVN客户端命令的繁琐操作,另外使用命令行工具的一个缺点就是进行同步(diff)命令时,显示的格式不够用户友好(与集成IDE的插件相比)。
所以本文主要介绍服务器端的版本库的搭建与设置,而不涉及客户端的使用(命令行或者IDE客户端)
1.Subversion工具种类
如果仅仅需要安装一个版本库,那么只需要构建一个Subversion客户端,客户端可以是命令行客户端,也可以是GUI客户端。
如果需要一个网络的版本库,那么需要安装Apache2服务器或者一个svnserve服务器。
相对于win32的发布包,Subversion更多的应用于*nix服务器,毕竟就稳定性可安全性而言,*nix系列服务器要优于windows服务器(笔者个人认为)。
可以在如下链接:http://subversion.tigris.org/getting.html获取各个操作系统的Subversion工具。
本文中的操作系统平台为Win32。
接下来笔者将根据以下几种方式搭建SVN网络服务器。
a.Tigris.org : svn-win32-1.5.5 + Apache
http://subversion.tigris.org/files/documents/15/44589/svn-win32-1.5.5
/apache-mirror/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi
b.CollabNet (Certified
binaries)CollabNetSubversion-server-1.5.5-1
http://downloads-guests.open.collab.net/files/documents/61/1373/CollabNetSubversion-server-1.5.5-1.win32.exe
c.VisualSVN (VisualSVN Server)
VisualSVN-Server-1.6.3
/files/VisualSVN-Server-1.6.3.msi
(基于Subversion1.5.5版本构建)
SlikSVN1.5.6
/pub/Slik-Subversion-1.5.6-win32.msi
上述软件均为开源软件。其中CollabNet公司对开发Subversion的部分全职工作人员提供薪水,并且拥有部分Subversion代码的版权,但是该版权是BSD/Apahce风格的版权,即可以随心所欲的去下载,修改,或者重新发布新的版本,而不需要经过CollabNet公司或者其他任何一个人的许可。
FAQ:我现在所运行的是Apache 1.x,但是我不能仅仅为了支持Subversion版本库而将其转换成Apache
2.0。这是否意味着我不能使用Subversion服务器?
不必,你可以用svnserve作为Subversion的服务器,它可以很好的工作。
在使用Apache
server时,如果你想使用分布式创作和版本管理协议(WebDAV)和所有其他一些好的功能特性,那么是的,你需要Apache
2.0。但是不管怎样,当你继续在80端口运行Apache1.0的时候,你总是可以在另外一个不同的端口运行Apache2.0。不同版本的
Apache可以在同一台机器上很好的和平相处。仅仅需要在改变httpd.conf文件中把Listen指令从80改成8080,或者其他你想要改成的端口。然后确保在你公布版本库的URL的时候加以说明:(例如,:8080/repos/blah/trunk/)。
2.Subversion Win32 + Apache 2.11
a.安装SVN:将Subversion
Win32解压缩到本地目录,Subversion的安装路径为$SVN_HOME,例如F:/svn-win32-1.5.5。下文中使用$SVN_HOME表示SVN的安装目录。
b.安装Apache
HTTP服务器:执行安装程序,安装路径为$HTTPD_HOME,例如F:/apache2.2。下文中使用$HTTPD_HOME表示Apache
HTTP服务器的安装目录。
注:Apache
HTTP服务器默认使用80端口,如果80端口已经被占用,请修改$HTTPD_HOME/conf/httpd.conf文件,将Listen
80修改为其他的端口。例如等。
安装完成后,默认会启动apache服务器,当任务栏图标状态为绿色的三角时,表示启动正常。
也可以通过在浏览器中输入http://localhost:port/来进行测试。(默认情况下会打印It Works。)
c.创建版本库并测试
安装完Subversion Win32和Apache HTTP服务器之后,就是进行配置的工作了。
首先在配置$HTTPD_HOME/conf/httpd.conf文件:
使用LoadModule来加载mod_dav_svn模块,这个指示必须先与其它Subversion相关的其它配置出现,如果你的Apache使用缺省布局安装,你的mod_dav_svn模块一定在Apache安装目录的modules子目录,LoadModule指示的语法很简单,影射一个名字到它的共享库的物理位置:
LoadModule dav_svn_module modules/mod_dav_svn.so
注意,如果mod_dav是作为共享对象编译(而不是静态链接到httpd程序),你需要为它使用LoadModule语句,一定确定它在mod_dav_svn之前:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
将$SVN_HOME/bin/mod_dav_svn.so文件拷贝到$HTTPD_HOME/modules目录下。
在你的配置文件后面的位置,你需要告诉Apache你在什么地方保存Subversion版本库(也许是多个),位置指示有一个很像XML的符号,开始于一个开始标签,以一个结束标签结束,配合中间许多的其它配置。Location指示的目的是告诉Apache在特定的URL以及子URL下需要特殊的处理,如果是为Subversion准备的,你希望可以通过告诉Apache特定
URL是指向版本化的资源,从而把支持转交给DAV层,你可以告诉Apache将所有路径部分(URL中服务器名称和端口之后的部分)以/repos/开头的URL交由DAV服务提供者处理。一个DAV服务提供者的版本库位于/absolute/path/to/repository,可以使用如下的httpd.conf语法:
&Location /repos&
&&& SVNPath
F:/svn/repos
&/Location&
如果你计划支持多个具备相同父目录的Subversion版本库,你有另外的选择,SVNParentPath指示,来表示共同的父目录。举个例子,如果你知道会在/usr/local/svn下创建多个Subversion版本库,并且通过类似/svn/repos1,/svn/repos2的URL访问,你可以用后面例子中的httpd.conf配置语法:
&Location /svn&
SVNParentPath F:/svn
&/Location&
使用上面的语法,Apache会代理所有URL路径部分为/svn/的请求到Subversion的DAV提供者,Subversion会认为SVNParentPath指定的目录下的所有项目是真实的Subversion版本库,这通常是一个便利的语法,不像是用SVNPath指示,我们在此不必为创建新的版本库而重启Apache。
使用$SVN_HOME/bin/svnadmin命令,创建到repos版本库:
svnadmin create f:/svn/repos
此时打开浏览器,输入URL:http://localhost:8080/svn/repos/
即可看到一个空的版本库,版本号为0。
d.设置授权
在上述步骤中搭建的版本库是没有权限的设置的,如果你的服务器可以被Internet访问,那么任何人都可以修改你的版本库,这通常是所不希望看到的。
通过设置授权,可以使得特定的用户访问特定的版本库,或者特定的目录。
由于Apache
HTTP服务器提供了认证的功能,其中包括基本的HTTP认证以及SSL证书认证,由于配置SSL证书认证需要使用CA(认证中心)来办法服务器端以及客户端的证书,过程比较麻烦,并且对于一般的项目来说,基本的HTTP认证已经可以满足要求。笔者接下来将介绍HTTP认证的设置方法。
首先,创建保存用户及密码的文件,这个过程通过apache HTTP服务器提供的htpasswd.exe来完成:
F:/apache2.2/bin&htpasswd.exe -help
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
&-c& Create a new file.
&-n& Don' display
results on stdout.
&-m& Force MD5 encryption of the
password (default).
&-d& Force CRYPT encryption of
the password.
&-p& Do not encrypt the password
(plaintext).
&-s& Force SHA encryption of the
&-b& Use the password from the
command line rather than prompting for it.
&-D& Delete the specified
On Windows, NetWare and TPF systems the '-m' flag is used by
On all other systems, the '-p' flag will probably not work.
F:/apache2.2/bin&htpasswd.exe -cm f:/svn-auth-file
New password: ********
Re-type new password: ********
Adding password for user zzl
F:/apache2.2/bin&htpasswd.exe -m f:/svn-auth-file
New password: ********
Re-type new password: ********
Adding password for user lsz
下一步,需要在httpd.conf文件中的Location标记中添加一些设置来告诉服务器如何使用密码文件。其中AuthType指定系统使用认证的类型,此时我们指定为Basic认证,AuthName是提供给认证区域的一个人以名称,用于显示在浏览器的弹出窗口里,最后,AuthUserFile用于指定密码文件位置。
如下所示:
&Location /svn&
SVNParentPath F:/svn
&&& AuthType
&&& AuthName
"zzl_lsz's svn repository"
&&& AuthUserFile
"F:/apache2.2/conf/svn-auth-file"
&/Location&
此时,这些设置告诉Apache当需要授权时,需要向Subversion客户端索要用户名和密码,但是还需要告诉Apache什么样的客户端需要授权的指示。哪里需要授权,哪里需要认证,最简单的方式是保护所有的请求,通过Require
valid-user来告诉Apache任何请求需要认证的用户。
&Location /svn&
SVNParentPath F:/svn
&&& AuthType
&&& AuthName
"zzl_lsz's svn repository"
&&& AuthUserFile
"F:/apache2.2/conf/svn-auth-file"
&&& Require
valid-user
&/Location&
此时就设置好了版本库的认证。
通过重新启动Apache服务器,然后再次输入:http://localhost:8080/svn/repos/时,将会弹出认证对话框。提示如下的消息:
http://localhost:8080 の "zzl_lsz's svn repository"
に対するユーザ名とパスワードを入力してください
只有输入正确的用户名和密码才可以访问版本库。
Apache + Subversion还可以基于路径来对用户进行授权,诸如哪些用户对哪些路径具有哪些权限。
在此不作介绍。
推荐文章:
请参考IBM DW文章:
&用 Apache 和 Subversion
搭建安全的版本控制环境&
/developerworks/cn/java/j-lo-apache-subversion/
关于配置过程中可能出现的一些问题,例如修改Apache
HTTP服务器的httpd.conf文件后Apache服务器无法启动等,关于这些问题请参考:
/fh/thread-.html
3.CollabNet Subversion
可以在下面的URL中获取CollabNet Subversion的windows版本安装程序。
http://www.open.collab.net/downloads/subversion/
该版本中包含了Apache 2.2.8,ViewVC1.0.7以及Subversion1.5.6.
下载后进行安装。
注:在安装的第二个步骤中,会有如下的链接提示:
View installation information on openCollabNet
在这个链接中提供了针对该版本安装程序的安装帮助以及注意事项,例如笔者安装的帮助为:
http://www.collab.net/nonav/downloads/subversion/readme/svn_1_5_server_client_windows.html
该帮助中提及了对平台和配置的要求,重要的说明(Apache 2.0 -&
2.2),安装技巧,ViewVC的安装(必须有ActivatePython2.5.x的支持),升级过程,安装后的指南等等。
笔者希望使用ViewVC来更好的浏览版本库中的内容,所以需要安装ActivatePython2.5.x。
下载ActivatePython2.5.4.3并安装。
/ActivePython/windows/2.5/ActivePython-2.5.4.3-win32-x86.msi
安装完成之后,开始安装CollabNet Subversion:
a.在"choose components"画面选择全部的components。
此处包含了SVNSERVE和Apache两个组件。
b.在"svnserve configuration"画面保留默认的port,并设置自定义的repository
path,推荐使用X:/svn,其中X为驱动器盘符。不选中"installsvnserve to run as windows
service"。安装完成后手动启动该服务。
c.在"apache configuration"画面进行如下的设置:
Host/Server Name:localhost
Host Port:选择未被占用的Port,例如10270
不选中"Install Apache to run as a Windows service"
Repository Path:自定义的版本库路径
Repository Local Prefix:/svn
选中"Enable ViewVC",此时在下一步中会选择Active Python 2.5的安装路径。
d.选择Active Python的安装路径。
e.在"Choose Install Location"画面选择要安装的目标路径。
然后进行安装。直至安装结束。
安装结束后,可以通过svnserve或者apache的方式来配置svn服务器,笔者将使用svnserve来配置版本库。
a.打开命令行提示符,进入到在上述安装中b步骤设置的版本库,然后使用svnadmin命令创建版本库。
F:/&cd svn_collabnet_svnserve
F:/svn_collabnet_svnserve&svnadmin create
my-first-database
b.创建密码文件
使用文本编辑器编辑F:/svn_collabnet_svnserve/my-first-database/svnserve.conf文件。在配置文件中,可以看到如下的内容:
#password-db = passwd
将注释用的#号去掉。
c.设置用户和密码
使用文本编辑器编辑passwd文件F:/svn_collabnet_svnserve/my-first-database/,创建用户和密码。
joe = super-secret
可以添加任意个用户。
d.取消防火墙限制
在启动服务之前,确保防火墙没有阻止该端口的使用。
可以在下面的链接中查看相关的设置方法:
/windowsxp/using/security/internet/sp2_wfexceptions.mspx
svnserve.exe是程序名称,端口号默认为3690。
注:如果没有设置防火墙,那么在下一步中启动服务器时,windows也会弹出提示框,确认是否解除阻止。
e.启动服务
如果选择了将svnserve作为系统服务,那么可以使用
net start svnserve
来启动服务,否则的话,可以使用
svnserve -d -r F:/svn_collabnet_svnserve
来启动服务。
f.设置权限
可以给匿名用户设置访问(读/写)权限。
修改F:/svn_collabnet_svnserve/my-first-database/svnserve.conf文件,通过设置
anon-access = write
anon-access = read
anon-access = none
来为匿名用户设置写权限,读权限和无权限。
g.检出项目
svn co svn://localhost/repository_name
svn co svn://localhost/my-first-repos
使用Apache服务器的配置方式与Apache + SVN
win32的方式类似,只是CollabNet已经添加好了LoadModule以及SVNParentPath的设置。
只需要添加
&Location /my-first-repos&
&& DAV svn
&& SVNParentPath
F:/svn_collabnet_apache/my-first-repos
&/Location&
同时CollabNet已经添加了viewvc的配置:
&Location /viewvc&
&& #Require valid-user
&& AuthType Basic
&& AuthName "Subversion
repository"
&& #AuthUserFile
"F:/CollabNet_Subversion/httpd/conf/svn_auth_file"
&/Location&
添加完成后,启动Apache服务器。
在浏览器中输入http://localhost:8090/svn/my-first-repos/,可以看到my-first-repos的修订版本号为0。
可以通过viewvc更加直观的查看svn的内容:http://localhost:8090/viewvc/my-first-repos/
4.VisualSVN Server首先,VisualSVN
Server是完全免费的SVN服务器。
其次,VisualSVN只通过一个安装程序包来安装Subversion,Apache以及管理控制台。
同时,VisualSVN(不是VisualSVN
Server)是一个用于将Subversion集成到VisualStudio的工具。
Server是一个小巧,安装简单,包含了最新的组件,易升级的软件,同时可以作为windows平台上的企业级的服务器,包含了稳定的Apache软件,支持SSL链接,SSL证书管理,Apache目录认证和授权,并支持组的概念。
另外,VisualSVN Server具有用户友好的管理控制台。
下载VisualSVN Server:
该版本中包含Apache 2.2.9,Subversion1.5.5
安装过程非常的简单:
在"Custom Setup"画面,进行主要的设置工作:
Location:选择自定义的VisualSVN安装路径
Repositories:设置版本库的父目录。
Server Port:设置是否使用https以及使用的端口。
Authentication:可以设置是使用windows认证还是Subversion认证。
(笔者没有使用安全的http连接,端口设置为8070,使用Subversion认证。)
设置完成后,进行安装,直至完成。
安装完成后,启动VisualSVN Server管理控制台
在未创建任何repository之前,VisualSVN Server管理控制台主画面显示内容如下:
VisualSVN Server is running
Server URL is http://vic-working:8070/svn/
There are 0 users and 0 groups.
Create new user...
Create new group...
Repositories
Total 0 repositories.
Create new repository...
Import existing repository...
可以看到,在该管理画面中,可以查看Server URL,创建用户和组,创建新的版本库,导入已经存在的版本库。
该管理控制台和windows系统的计算机管理控制台,或者MS
SQLServer2000的管理控制台类似,通过快捷菜单进行服务器的启动与关闭。
完全是windows风格的管理控制台。
由于笔者不方便拷贝屏幕,所以就不将snapshots放在本文中。
下载win32版本的Slik SVN 1.5.6版本:
下载完成后,进行安装。
在"choose setup type:"画面选择安装的类型,典型安装,自定义安装以及完全安装。
选择自定义安装,进入到"Cust Setup"画面:
这里默认svnserve和extra tools为非选中状态。按照默认的组件设置,进行安装。
这个工具不包含Apache组件,只是一个独立的命令行客户端。
关于命令行客户端的命令使用,请参考Subversion使用手册。
6.参考资料
Subversion主页:
如果你想更加深入的了解Subversion,Subversion的帮助手册是最好的参考:
Subversion中文帮助:
Subversion英文帮助:
Subversion服务器相关配置(包含在帮助文档中):
CollabNet主页:
VisualSVN主页:
SVN Win32 Lib:
Apache HTTP Server:
Eclipse主页:
SubEclipse主页:
Subclipse Eclipse update site URL:
CollabNet Eclipse update site URL
For Eclipse 3.4, copy this URL:
For Eclipse 3.3, copy this URL:
For Eclipse 3.2, copy this URL:
Tortoise SVN Client:
一般来将,如果作为企业级的业务应用,可能不会选择svn,比如超过1个GB的项目,例如Google的Android的版本控制工具采用了Git来控制,还有IBM公司也使用自身的资源管理工具ClearCase,但是作为小型的项目,或者群组项目,例如Apache使用的版本控制工具基本上都是svn,而如果个人开发者为了方便版本的管理,也可以采用SVN。
一般软件公司使用SVN的也比较多,但是可能会要求SSL连接以及高级的权限设置,而如果是个人开发者,笔者推荐(在windows环境下)VisualSVN这个工具,最主要的原因就是方便易用,全部是图形界面,不需要使用svn命令来创建存储库等操作。
(笔者发现本文被查看的次数比较多,所以对内容进行了一下排版,例如粗体,斜体等的控制,以便于阅读。)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 再次回来吧主金明洙 的文章

 

随机推荐