zoukankan      html  css  js  c++  java
  • 代码管理工具svn实践

      有时候在家里修改公司的项目,每次copy发现很麻烦,就想到了用代码管理工具。一开始我选择的是github,是因为我经常逛这个网站,轮到我自己管理一个项目时候发现,github上面的项目都必须的是开源的(当然花钱的除外哈),由于公司的项目没有办法,找不到其它的替代品。突然想到了公司本身就有个svn服务器,只不过我很少用(之所以很少用是因为我以前一直使用git来管理项目,习惯了),那就现在开始使用吧。

      svn也零零总总的用了几次,不过现在看来,以前的都是花架子,根本没有搞懂原理,自从使用了git之后,搭建了一个完整的客户--服务器模式时候,才渐渐搞明白版本管理工具到底是怎么回事。

      最开始,项目代码我已经开发了一些,所以我一直希望可以在本地初始化本地库。发现svngit还是有点区别的,svn简单许多,步骤如下:

    svn checkout svn://192.168.1.1/pro/domain
    这里把你的项目代码复制过来
    svn status
    svn add *  //删除文件就用svn delete xx
    svn commit -m 'init project'
    svn update

      平时普通的提交代码步骤:

    svn up //跟新本地代码与服务器一致,防止他人修改代码
    svn status
    svn add *.java
    svn commit -m 'information'
    svn update

      这里说下svn update命令:

     

    svn update -r m path //更新到某个版本例如:
    svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
    svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
    svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先    update,修改文件,然后清除svn resolved,最后再提交commit)
    简写:svn up

      

      svn代码库回滚问题:

      a.改动已经被提交(commit回滚的操作过程如下:

     

    1、保证我们拿到的是最新代码:
    svn update
    假设最新版本号是28
    2、然后找出要回滚的确切版本号:
    svn log [something] //这里something可以省略
    假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
    如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
    3、回滚到版本号25:
    svn merge -r 28:25 something //这里的something不可以省略 (可以用'./'代替)
    为了保险起见,再次确认回滚的结果:
    svn diff [something]
    发现正确无误,提交。
    4、提交回滚:
    svn commit -m "Revert revision from r28 to r25,because of …"
    svn up
    提交后版本变成了29。

      b.改动没有被提交(commit这种情况下,使用svn revert就能取消之前的修改。

     

    svn revert用法如下:
    # svn revert [-R] something
    其中something可以是(目录或文件的)相对路径也可以是绝对路径。
    当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。
    在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。
    注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。

     

     

  • 相关阅读:
    September 17th 2016 Week 38th Saturday
    【2016-09-16】UbuntuServer14.04或更高版本安装问题记录
    September 16th 2016 Week 38th Friday
    September 11th 2016 Week 38th Sunday
    September 12th 2016 Week 38th Monday
    September 10th 2016 Week 37th Saturday
    September 9th 2016 Week 37th Friday
    c++暂停
    八皇后问题
    ( 转转)Android初级开发第九讲--Intent最全用法(打开文件跳转页面等)
  • 原文地址:https://www.cnblogs.com/slider/p/2457215.html
Copyright © 2011-2022 走看看