美文网首页
SVN 命令行演练

SVN 命令行演练

作者: 娘亲Joanna | 来源:发表于2015-12-10 18:22 被阅读467次

     svn 常用命令

    svn HTTP  Server 的端口号:443

    svn HTTP  Server 的端口号获取

    svnserve -d --listen-port   启动的时候跟什么端口就是什么端口

    ps aux |grep svnserve


    1. 查看本地代码库状态

    $ svn st

    case 1: 错误提示:"is not a working copy",必须在svn的工作目录下才能正确使用svn的命令

    case2: 情况2如果是在svn的操作目录下,会出现本地所有改动的文件

    case3: 第1列状态说明:描述文件被添加、删除或其他修改

    ' ' 没有修改

    'A' 被添加到本地代码仓库

    'C' 冲突

    'D' 被删除

    'I' 被忽略

    'M' 被修改

    'R' 被替换

    'X' 外部定义创建的版本目录

    '?' 文件没有被添加到本地版本库内

    '!' 文件丢失或者不完整(不识别该文件)

    '~' 受控文件被其他文件阻隔


    2.查看svn日志

    1. 查看svn日志

    $ svn log

     查看某一个文件的日志

    $ svn log filename

    查看某一个文件某个版本的日志

    $ svn log filename @1 



    3.切换到工作目录

    $ cd  工作目录$ svn co  http://192.168.1.103/svn/weibo --username=manager --password=manager 

    提示:checkout(co)之后,命令行会记录用户名和密码,后续操作不用再另行指定



    4. 创建文件

    $ touch main.c



    5. 打开并编写文件内容

    $ open main.c



    6. 将文件添加到本地版本库中

    $ svn add main.c



    7. 将文件提交到服务器的版本库中

    $ svn ci -m "添加了main.c文件"

    "小结" - 添加文件的两个步骤

    1>  将新建的文件添加到本地代码库

    $ svn add main.c

    2>  将刚刚添加的文件提交到服务器

    $ svn ci -m "备注信息"


    注意:一定要养成写注释的良好习惯

    1. 团队成员加入

      + 1>  张三

    $ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhangsan

      + 2>  李四

    $ svn co http://10.0.1.15/svn/weibo --username=lisi --password=lisi

          "小结" 至此,一个项目的搭建工作就告一段落了

           1> 项目准备工作,通常由项目经理完成

          2> 程序员只需要把项目 co 到本地即可

    2. 张三添加文件

    ---

    # 添加文件 Person.h Person.m

    $ touch  Person.h Person.m

    # 修改 Person.h Person.m

    $ open Person.h

    $ open Person.m

    # 将 Person.h Person.m 添加到本地代码库

    $ svn add Person.h  Person.m

    # 将内容提交到服务器

    $ svn ci -m "添加了Person类"

    ---

    3. 删除文件

    $ svn rm Person.h

    # 提交删除

    $ svn ci -m "删除了文件"

    注意:不要使用文件管理器直接删除文件

    4. 撤销修改

    $ svn revert Person.m

    5 . 恢复到之前的某个版本

    $ svn update -r 5

    $ svn up

    6. 冲突解决

    (p) postpone            对比

    (mc) mine-conflict      使用我的

    (tc) theirs-conflict    使用对方的


    图形化界面

    01. 安装CornerStone

    ======================================================

    02. 具体操作

    ======================================================

    1>  添加远程代码仓库

    2>  导出代码库到本地

    3>  在本地目录下使用Xcode新建项目

    注意:不要勾选 git,两套源代码管理同时存在会发生冲突

    4>  提交到代码仓库

    5>  其他用户操作

    03. 忽略一些不需要上传的文件

    ======================================================

    04. SVN演练

    ======================================================1>  修改viewcontroller,提交

    2>  添加Person类,提交

    3>  代码冲突演示

    4>  storyboard冲突演示

    5>  利用storyboard查看历史版本,回退

    6>  利用xcode checkout 项目

    05. 目录规范

    ======================================================1>  Trunk

    目前项目正在开发的版本

    通常进入公司之后在该目录下开发

    2>  Tags

    存放已经上线的重大版本

    3>  Branches

    当发生重大bug或者有新需求时

    SVN客户端命令

      +  svn checkout:下载服务器的代码到本地 (简写svn co)

      + svn commit:将改动的文件提交到服务器(简写svn ci)

      +  svn update:更新服务器的代码到本地 (简写svn up)

      + svn add:向本地的版本控制库中添加新文件

     svn delete、svn remove:从本地的版本控制库中删除文件(简写svn del、svn rm)

    svn move:移动文件或者目录或文件更名

    svn mkdir:创建纳入版本控制下的新目录

    svn revert:撤销之前的一切修改

    svn merge:将两个版本之间的差异合并到当前文件

     将改动过的文件提交至服务器

    svncommit-m"注释"[PATH]

    svnci-m"注释"[PATH]

    注意:一定要养成写注释的良好习惯

    svncommit-m “修改了User.m文件”/Users/Desktop/workspace/Weibo/branches/User.m

    [PATH]代表的是:提交哪个文件到服务器

    p如果省略[PATH]的路径,就将命令行所在路径中所有改动过的文件提交到服务器

    #提交一个新建的文件到服务器,需要2个步骤

      + 添加新建的文件到本地的版本控制库中:svn add

      + 提交刚才的添加操作到服务器:svn commit

    如果直接提交一个没有添加到本地版本控制库中的文件,会报下面的错误

    is not a working copy

    #向本地版本控制库里面添加一个新文件 

    svn add PATH

    svn add /Users/Desktop/workspace/Weibo/branches/User.m

    PATH代表的是:添加哪个文件到版本控制库中

    #更新版本控制库的内容

    svn update PATH

    实例

    svn update  /Users/Desktop/workspace/Weibo/branches/Users.m

    PATH  代表更新那个文件的内容

    如果省略PATH则 更新命令行所在路径的所有内容

    将文件回退到某个版本

    svn update -r 版本号 PATH

    常见问题总结

    下载公司代码到本地

    svn checkout 

    修改了某个早已存在的旧文件,然后提交到服务器

    svn commit

    提交一个自己新建的文件到服务器

    svn add - > svn commit

    删除一个早已存在的旧文件,然后同步到服务器上

    svn delete - > svn commit

    将其他同事提交的新代码更新到自己电脑上

    svn update

    不小心写错了很多东西,想撤销所写的东西(还未把修改提交到服务器)

    svn revert

    不小心删错了文件,想把文件恢复回来(还未把删除提交到服务器)

    svn revert

    不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)

    svn update-r 版本号

    不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)

    svn update-r 版本号

    attention

    .svn这个隐藏目录记录着非常关键的信息

    千万不要手工修改或删除这个.svn隐藏目录和里面的文件!否则将会导致本地的工作副本被破坏,无法再进行操作

    #终端提交代码demo


    ```

    1. 切换到svn checkout下来的目录下

     cd /Users/apple/Desktop/云/leyuanyunweb 

    2.查看修改文件的变化

     svn st

    新增的文件 :文件后面有个A(代表是add)

         .ideaA  .idea/.nameA      .idea/leyuanyunweb.imlA      .idea/misc.xmlA      .idea/modules.xmlA      .idea/vcs.xmlA      .idea/workspace.xmlM     

    修改的文件:文件后面有个M(代表是modified)

    .idea/workspace.xmlM accountChart.html M      css/index.cssM      css/modifyPassword.cssM   

    删除的文件:文件后面有个D(代表是delete) 

       head.htmlD      img/1.jpgD      img/2.jpgD      img/3.jpgD      img/4.jpgD      img/5.jpgD      img/baidu.jpgD      img/defoul_welcome@2x.pngD      img/logo.pngD      img/pic.jpgD      img/pic1.jpgD      img/pic2.jpgD      img/tw.pngM      js/main.jsM  

    3. 提交更新的代码:

     svn ci -m"修改了bug"

    Error validating server certificate for 'https://192.168.1.20:443': - The certificate is not issued by a trusted authority. Use the  fingerprint to validate the certificate manually! - The certificate hostname does not match.Certificate information: - Hostname: SVNserver - Valid: from Mon, 25 Mar 2013 08:43:00 GMT until Thu, 23 Mar 2023 08:43:00 GMT - Issuer: SVNserver - Fingerprint: e6:9e:56:0a:a3:0d:e3:e4:ba:34:32:1c:f5:ed:74:a6:72:00:54:11(R)eject, accept (t)emporarily or accept (p)ermanently? pAuthentication realm:Subversion RepositoriesPassword for 'apple': Authentication realm:Subversion Repositories

    4.填写SVN账户以及密码

    Username: chenjiaoe

    Password for 'chenjiaoe':

    Adding        .idea/workspace.xml

    Sending        accountChart.html

    Deleting      img/2.jpg

    Deleting      img/3.jpg

    Transmitting file data ............

    Committed revision 9696.

    AppledeMac-mini-3:leyuanyunweb apple$

    ```

    相关文章

      网友评论

          本文标题:SVN 命令行演练

          本文链接:https://www.haomeiwen.com/subject/xchacttx.html