• 代码管理工具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没有方法找回未提交的修改。

     

     

  • 相关阅读:
    元学习Meta Learning/Learning to learn
    TRAINING A CLASSIFIER训练分类器(pytorch官网60分钟闪电战第四节)
    NEURAL NETWORKS神经网络(pytorch官网60分钟闪电战第三节)
    AUTOGRAD: 自动分化(pytorch官网60分钟闪电战第二节)
    WHAT IS PYTORCH?(pytorch官网60分钟闪电战第一节)
    windows找不到gpedit.msc
    The “freeze_support()“ line can be omitted if the program is not going to be frozen to produ
    torch.mul() 和 torch.mm() 的区别
    vue面试题(2)
    JS输出题练习
  • 原文地址:https://www.cnblogs.com/slider/p/2457215.html
Copyright © 2020-2023  润新知