zoukankan      html  css  js  c++  java
  • SVN日常使用

    yum install -y subversion                                  #yum安装

    编译安装SVN安装篇中,linux本机当作客户端已测试过

    [root@localhost ~]# svnserve -d -r /home/svn-repo/                    #启动大仓库,为什么启动大仓库因为下面可以建小仓库,不用同时启动多个,

    ps –ef|grep svn  查看如果已经启动就不需要再启动了

    image

    [root@localhost svn-repo]# svnadmin create /home/svn-repo/wind           #创建个小仓库wind客户端测试

    image

    conf                  #配置

                  authz                        #编辑权限控制文件authz,划分组、添加用户到组并授权

                   passwd                   #添加访问用户和对应的密码

                    svnserve.conf         # 仓库配置文件访问修改

                   

    db                    #存提交上来的代码

    hhooks            #实现高级功能

    locks                #锁的文件

    [root@localhost conf]# vim /home/svn-repo/wind/conf/svnserve.conf                   #先设置匿名访问,后面测试,修改完不用重启即可生效

    image

    匿名测试

    image

    image

    image

    新建个文件测试

    image

    1.加入(add)

    image

    2.提交(conmoit)

    image

    3.注释

    image

    删除测试

    image

    再检出看看

    image

    image

    image

    测试正常

    image

    以上测试时匿名情况下

    账号密码测试>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    1.编辑账号密码文件passwd,添加访问用户和对应的密码

    [root@localhost ~]# vim /home/svn-repo/wind/conf/passwd

    image

    2.编辑权限控制文件authz,划分组、添加用户到组并授权

    vim /home/svn-repo/wind/conf/authz

    image

    [groups]下配置的是组 = 组用户1、组用户2的一个列表,表示每个组有哪些用户

    [/]:这里的根目录是指项目根目录,而不是系统根目

    @g_admin = rw:表示g_admin这个组的权限,其中r表示读,w表示写,即该组拥有项目根目录的读写权限

    [/dev]

    @g_dev = rw

    表示g_dev组拥有对根目录下dev目录下文件的读写权限

    3.编辑服务配置文件,让用户和策略生效

    [root@localhost ~]# vim /home/svn-repo/wind/conf/svnserve.conf

    image

    上面的各个配置项说明如下:

    [general]

    anon-access = none #不允许匿名用户访问

    auth-access = write #通过验证的用户可以读和写,passwd.conf 中用户

    password-db = /var/svn/lemon/conf/passwd #用户保存文件

    authz-db = /var/svn/lemon/conf/authz #权限管理文件

    realm = lemon#认证空间名,版本库所在目录

    5.在wind检出

    image

    image

    账号密码登陆

    image

    下面测试和上面匿名测试一样

    导入项目

    但是有时候你已经在本地建立好了项目,需要把你项目推到SVN上,此时应怎么做呢?
    右键选择版本库浏览器

    image

    image

    在相应目录下,右键,加入文件/加入文件夹,选择相应目录即可

    image

    最后测试,把wind中的文件夹传上SVN上

    image

    image

    image

    但是,不要以为导入成功就可以了。你还得重新检出,重新检出的项目才是受SVN控制的,务必记得检出

    在SVNProject上右键检出到本地,然后在里面进行修改。现在就可以愉快的工作了。
    检出过后的右键菜单变成了这样。

    image

    image

    安装说明:以下是账号密码测试:

    开发人员强烈建议使用IDE中的SVN插件更加智能与人性化。

    首先安装SVN客户端,windows一般选择乌龟客户端https://tortoisesvn.net/downloads.html
    根据系统位数选择相应客户端进行安装。

    image_1ak3avt6j1k2p1f6h1cg711lp3pu9.png-57.9kB

    如果你喜欢用命令行操作,请务必记得勾选command line client toolwill be install on local hard driver,不用命令行的跳过这一步。

    image_1ak3cf587b5a15j21i9s1ne8uhf1g.png-55kB

    然后一路next即可安装。安装完毕后,在任意地方右键查看快捷菜单。发现TortoiseSVN即表示安装成功。

    image_1ak3cneu9tb6pu8k44rck90k1t.png-135kB

    如果勾选了安装命令行工具,那么输入命令SVN,有如下提示也表示安装成功

    image_1ak3ctqp61c0a1vku1e30cib9312a.png-9.6kB

    但是此时菜单全是英文的,如果你不习惯英文,可以去下载语言包,记得下对系统位数。

    image_1ak3b28uv1et21lelqiglpr1krjm.png-46.3kB

    安装完语言包之后,可以右键进入setting设置。

    image_1ak3d7reg1tdhdqjhfhim319d2n.png-89.7kB

    选择你喜欢的语言(比如中文),然后确定,不出意外,现在的语言已经切换到中文了。

    image_1ak3dama4kcf1flmr9a8d1hqe34.png-187kB

    安装教程到此结束,下面开始介绍SVN的使用。

    使用说明

    检出项目

    假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。
    首先创建一个空文件夹。在空文件夹内右键,选择SVN检出。

    image_1ak3do46q18kl1l79c9u4pu1mdd3h.png-21.5kB

    现在你看到应该是这个界面,填入版本库地址,选择确定。

    image_1ak3dsjn6ha81ojlg2a1b1h67o3u.png-40.8kB

    此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。

    image_1ak3e0eesor01kg616s81aj11h524b.png-21.5kB

    等几分钟就可以检出完毕。

    image_1ak3e38931rr19dg1cbd1t8pn3g4o.png-51.4kB

    此时在你的目录下就能看到你的项目,现在可以开始愉快的工作了。

    image_1ak3e6ja4gnsvep1oaluia2pp55.png-5.3kB

    导入项目

    但是有时候你已经在本地建立好了项目,需要把你项目推到SVN上,此时应怎么做呢?
    右键选择版本库浏览器。

    image_1ak3eopb116i6192u14i4c7r1avu6c.png-101kB

    在相应目录下,右键,加入文件/加入文件夹,选择相应目录即可。

    image_1ak3etni4fba1oi017rv1u6m1gn16p.png-116kB

    比如我现在有个项目叫SVNProject,我想把它传到SVN上。

    image_1ak3f04bl1k5q1qmrrcmu4m1j2j76.png-50.7kB

    那么我只需选择加入文件夹即可。

    image_1ak3f5l6f1h8f1rimgee1544sdc7j.png-35kB

    务必要输入提交信息。这样别人才能知道你干了什么。

    image_1ak3f7oe71gs6mkdlucdrrqq880.png-31.7kB

    导入成功就能看到目录。

    image_1ak3fbqo13gu1uji53ku5g1bs68d.png-110.6kB

    但是,不要以为导入成功就可以了。你还得重新检出,重新检出的项目才是受SVN控制的,务必记得检出。

    image_1ak3fghhcg9fk9oab61n5q1sqg8q.png-110.6kB

    在SVNProject上右键检出到本地,然后在里面进行修改。现在就可以愉快的工作了。
    检出过后的右键菜单变成了这样。

    image_1ak3fnbnn1ber1u0k1hbs1ti6ovi97.png-24.4kB

    提交

    绿色表示当前文件没有被修改过(看不见颜色的重启下电脑就好了)。

    image_1ak3g3u171j9j1r40mbp1hkv12ju9.png-4.1kB

    假如我现在在我是新项目.txt中加了一行字,然后保存。

    image_1ak3g7ct21svq1lrejruu6e16okm.png-6.1kB

    发现现在变成了红色,红色表示已修改。

    image_1ak3g9vfl1rqc1mvb19s81hg1t3913.png-4.9kB

    怎么提交修改?
    在根目录下,右键选择提交。

    image_1ak3gdc7j17dt1n50d1l8e1trp1g.png-25.2kB

    务必记得输入提交信息(虽然不输入也能提交),提交信息可以方便日后查看。

    image_1ak3gif5h13l11rfmorm87g5a71t.png-74kB

    提交完毕后,可以发现又恢复到了绿色。

    image_1ak3gngr3o2amk41abkod91ogi2a.png-5kB

    假如现在加入了一个新文件。可以看出是蓝色的。蓝色表示不属于版本库的未知文件,未知文件是不能提交的。

    image_1ak3grpb5hgbs62sj4tthfql2n.png-11.6kB

    记住选择增加把它加入到版本库里面去。

    image_1ak3h1boe1njh1dhrhu1bjr1t333k.png-50.7kB

    增加完毕后,变成了蓝色加号,表示新增加的版本库文件。

    image_1ak3h5j9j1j4cnfhhq2vv2lba41.png-4.3kB

    接下来,只需写代码,然后提交即可。
    删除文件也应该右键提交,如下。

    image_1ak3hcqrakda18mc5pg1dlke4d4e.png-57.7kB

    记得随时检查你的文件状态,如果没有添加到版本控制里要及时添加进去,不然你的文件提交不上去。

    更新

    假如你和B同学在协作。B同学写完代码提交到了SVN上,如果你想获取最新修改,就需要选择更新(如果服务器上已经有别人提交过的新的,你是提交不上去的,必须先更新再提交)。
    怎么知道服务器有没有更新?你可以直接选择更新,有没有更新一下就知道。或者右键检查修改,然后检查版本库,就能看到服务器上改了哪些文件。

    image_1ak3i1mon1f871qr9178eds61qoq4r.png-100.3kB

    右键选择HEAD和BASE比较。

    image_1ak3i7ql4mre1t6e17r717o81nlq58.png-22.9kB

    左边的表示你的代码,右边的表示服务器上的代码。

    image_1ak3i9ado1p6cv6aoh460210it5l.png-117.7kB

    如果有修改记得及时更新到本地然后再继续工作。

    但是有时候更新会冲突,比如你和服务器上的改了同一个地方。
    这时候你需要更新下来解决冲突。

    image_1ak3ihv861ceq1gko16jl1uu3mqe62.png-68.8kB

    它会提示你哪个文件冲突,你只需打开那个文件,按照需求解决冲突即可。

    image_1ak3ikl7a1c9dmk619r9d371mui6f.png-11.4kB

    <<<<<<.mine到====表示你的代码,其他表示服务器的代码。你只需改成你想要的。

    image_1ak3iojkm7ic6911jr39021qk46s.png-5.1kB

    然后选择解决,告诉SVN我已经解决冲突了就行了。

    image_1ak3itj8gt8315rf1flij6k1l1979.png-41.3kB

    剩下的就是团队协作间的更新提交操作,这里不做赘述。

    查看日志

    选择显示日志,可以看出团队里面的人干了什么。

    image_1ak3j48bv6r9tnm821u3gpjn7m.png-30kB

    可以看出谁谁谁,什么时间,干了什么事。最后那一列信息是自己提交的时候写的。建议大家提交时务必要填写提交信息,这样别人一看就知道你干了什么。提交信息对于自己也是有好处的,时间长了也能看到当初做了什么。

    image_1ak3j7va3jbt147j1s2thni1eui83.png-98.6kB

    版本回滚

    如果你改了东西,但是还没有提交,可以使用还原功能。
    image_1ak4pcd3bpac328t5u1mas1k1v9.png-103kB
    但是如果我们写错了东西并且提交了上去怎么办?通过版本回滚可以将文件恢复到
    以前的版本。右键更新至版本,通过查看日志来选择版本,然后回滚即可。
    image_1ak3k9pl5nt0euj10eob6e1pai8t.png-21.1kB

    有时候我们需要查看以前版本的代码。此时我们可以新建个文件夹检出到指定版本。

    image_1ak3kifgr1b1q1fv0p871f25jda9a.png-158.9kB

    版本控制

    版本控制有好几种方法,如下。

    1. 在提交发布版本时添加版本信息,这是最简单的一种方法。
      image_1ak3locvo1ndq4pg1nohuhn1fh89n.png-17.1kB

    2. 打标签
      每次发布版本时应该打标签。右键选择分支/标记。在至路径以版本号打上标签即可
      image_1ak3muiav1t0o9v21a5qfnt3ut9.png-28.3kB
      image_1ak4tm0e3aal1t71r94p941h9p2a.png-80kB
      这样你就有了一个v1.0版本的标签。
      以后如果你想查看某个版本的代码,只需切换过去就行
      image_1ak3n7ai51l6b77j10811plc12ba13.png-14.9kB

    总结

    我们在日常使用中,最常用的是更新和提交操作。这两个步骤务必要非常熟练。其他的可以在遇到问题是查看文档。此外,需要注意的是,所有版本控制工具只能跟踪文本文件(能用记事本打开查看的文件),不要妄想SVN能记录你word改了哪一行。一旦遇到word冲突,记住仔细对比两个版本,然后解决冲突。

  • 相关阅读:
    Codeforces 1045C Hyperspace Highways (看题解) 圆方树
    Codeforces 316E3 线段树 + 斐波那切数列 (看题解)
    Codeforces 803G Periodic RMQ Problem 线段树
    Codeforces 420D Cup Trick 平衡树
    Codeforces 295E Yaroslav and Points 线段树
    Codeforces 196E Opening Portals MST (看题解)
    Codeforces 653F Paper task SA
    Codeforces 542A Place Your Ad Here
    python基础 异常与返回
    mongodb 删除
  • 原文地址:https://www.cnblogs.com/pengrj/p/8934335.html
Copyright © 2011-2022 走看看