• 版本控制


    一、svn

    1、SubVersion,从 http://subversion.tigris.org/ 下载,是实现服务系统的软件,必装的。

    2、TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便,commit动作变得就像Winrar右键压缩一样方便。

    3、SVNService.exe,从 http://dark.clansoft.dk/~mbn/svnservice/ 下载,是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。

    4、AnkhSVN,从http://ankhsvn.tigris.org/下载,这是一个专为Visual Studio提供SVN的插件。

    5、Subversive,从http://www.polarion.org/p_subversive.php下载,这时一个为Eclipse提供SVN的插件,据说已经和Eclipse自带的CVS功能有一拼。

    6、还有很多很多SVN相关的工具以及使用TIP介绍,大家可以上官方的相关链接页面中查看,地址:http://subversion.tigris.org/links.html

    以前都是别人建好并配置好了svn,然后我使用。今天自己简单尝试了下建svn来管理项目文档。中间也遇到些问题。下面是我总结的一个完整流程,许多步骤可以有另外的方法来完成,但在这我都只给我认为比较简单的方法。

    我使用系统是: Microsoft Windows xp sp2

    第一:下载软件

    有两个软件需要下载的:
    Subversion和TortoiseSVN
    Subversion 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
    TortoiseSVN下载地址:http://tortoisesvn.net/downloads

    (有些文档说必备软件还有Apache,但这么说法的大多是较旧的文档这么提到,随着软件的更新,已经没有必要安装Apache了,安装Apache是为了SVN能干更多事,比如可以基于HTTP去访问等。)

    软件安装完后需要重启系统。

    第二,建立服务和根目录创建

    建立svn的根目录:例如在E盘建立文件夹SVNRoot。

    然后是建立svn服务:(这里把svn服务建立为一个windows的服务)

    在命令行下敲入:SC create svn1.5 binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\SVNRoot\"" depend= Tcpip start= auto
    (第一块红色部分为subversion的安装位置,第二块红色为刚才创建的SVN根目录,注意:命令行中等号前不能有空格,等号后必须有空格)

    运行后打开windows的服务窗口检查,如果有svn1.5这么个服务,说明建立成功了,初次建立可能要手动启动下(不然重启动系统也可以,当然这里没有必要重启系统)

    第三:具体项目的建立和配置。

    这里假设我们有个项目DemoProject需要用svn来管理。

    在E:\SVNRoot下新建文件夹DemoProject。进入DemoProject,鼠标在空白处点击右键,选择TortoiseSVN,再选择Create repository here。操作完后可以看见本来空的文件夹内多了些文件和文件夹。

    现在可以来测试以上步骤是否正确,在F盘创建DemoProject(开发项目时的文件夹),进入新创建的文件夹,空白处点击右键,选择SVNCheckOut,Url repository填入svn://localhost/DemoProject,其他默认。点击OK,(如果窗口Action有显示Completed,那说明操作成功)。

    这样虽然可以访问了,但是并没有完成,我们需要配置文件的读写权限。这时我们进入E:\SVNRoot\DemoProject\conf。
    里面有三个文件。默认里面几乎所有的代码都被使用#注释了。

    接下去我们来修改这三个文件来配置svn的验证和授权。(请大家要区分验证和授权)

    首先是svnserve.conf文件。
    # anon-access = read把这行改成anon-access = none,表示禁止匿名访问(注意:anon前面不能有空格)
    # password-db = passwd把这行前面的注释去掉,并删除空格,表示验证用户使用passwd文件。
    # authz-db = authz把这行前面的注释去掉,并删除空格,表示授权使用authz文件。

    然后修改passwd文件,部分文件内容:
    [users]
    # harry = harryssecret
    # sally = sallyssecret

    我想看下这个文件内容就应该知道作用了,这里是配置svn的用户名和密码,这里harry是用户名,等号后面是用户密码,sally是另外一个用户。当然这两行代码都是被注释的。你可以删除注释启用他们,也可以自己加一行,比如:
    kate = 123456
    这里用的密码是明文,如果你的项目安全要求较高,可以使用加密的密码,配置比较麻烦,这里不说了。还有用户名之间可不可以有空格,用户名和密码的合法字符等,这些我没做测试。


    最后配置authz
    第一个属性节点是aliases,别名,不知道作用在哪,估计就是将同等权限的许多用户合并成一个名称。我这里没有做修改。

    第二个属性节点groups,组别,这很好理解,就是把相同权限的用户合并入一个组,以便下面配置授权时更加简洁。

    下面的属性节点都是目录授权节点。
    [/foo/bar]表示以下设置/foo/bar目录下的授权。以下授权格式是: 用户名|组别名 = rw | r,r是read的缩写,表示有读的权限,w是write的缩写,表示可写权限,rw表示可读可写。

    如果在根目录下配置使用[/]就可以了。


    配置完成后,再次进入F:/DemoProject,在空白处鼠标右键,选择SVNUpdate,这时会弹出个窗口要求我们输入用户名和密码,输入在passwd文件中配置的用户名和密码后就可以访问了。

    这样一个项目就配置完成了。接下去就可以使用了。具体的Update, Commit等操作使用就不说了。

    Two tips:

    1.
    我们习惯的懒惰的操作就是下班前整个项目commit,但事实是没有必要把整个项目的所有文件都提交给svn管理,甚至有些文件提交后麻烦大大的。比如vs solution下的xxx.user文件,这个提交后造成冲突几乎是100%的。
    解决的方法就是在在TortoiseSVN的Setting中设置Global ignore pattern值为“*/bin */obj *.bak *.*scc *.user *.suo *.gpState *.webinfo bin obj *.dll *.pdb *.exe Thumbs.db */TestResults”,这里示例的pattern主要针对使用Visual Studio的开发人员。

    2.
    在TortoiseSVN的Setting中勾选 Use "_svn" instead of ".svn" directories,某些时候(我不确定是那些时候).svn在windows系统会出错。


     参考文章:

    http://www.blogjava.net/zpuser/archive/2008/06/08/206654.html

    Setting_up_a_Subversion_Server_under_Windows

     11月25更新:

    如果你看不懂上面的文章,建议你使用可视化的配置软件来配置subversion服务。介绍文章由本文的热心评论网友提供:

    http://www.cnblogs.com/ttzhang/archive/2008/11/06/1325940.html

    (我看了这篇文章配置subversion,然后使用了VisualSVN Server来配置,确实很简单!)

    今天尝试了下将subversion装入系统服务,用命令就可以了。命令如下:
    sc create svnserver binPath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r D:\SVN\repository" DisplayName= "subversion" depend= Tcpip start= auto

    看似简单的命令输了好几次都提示 .....

    查了一下终于知道了

    Note that the command-line syntax for SC is rather odd.  Key/value
    pairs are specified as "key= value" (without the double-quotes).  The
    "key=" part must not have any spaces, and the "value" part MUST be
    separated from the "key=" by a space.

    大概意思就是
    这个指令是key=value的格式,所有的key=后面都必须加一个空格才可以,比如: depend=【请注意这里是一个空格】Tcpip (很奇怪吧!)
    还有就是key当中不能有空格。

  • 相关阅读:
    Element ui TimePicker 开始时间不得小于结束时间
    Vue 使用print.js实现前端打印功能
    vue中props的默认写法
    Element Cascader 级联选择器 选择第一级 label标题选择 内容过多
    vue 定时器 不断切换组件 定时器越来越快的问题
    Vue 全局组件传递参数
    echarts渐变发光半圆仪表盘
    左侧折叠菜单在sessionStorage中保存左侧菜单的激活状态
    Vue 封装网络工具类
    .browserslistrc 配置兼容浏览器
  • 原文地址:https://www.cnblogs.com/5tao/p/1526434.html
Copyright © 2020-2023  润新知