svn子命令

 

1、svn add — 添加文件、目录或符号链。
格式

  svn add PATH...

含义

  添加文件、目录或符号链到本地工作拷贝,且预定添加到版本库。它们会在下次提交上传并添加到版本库。如果在提交之前改变了主意,可以使用svn revert取消。此命令不访问版本库。
选项
  --targets FILENAME

  --non-recursive (-N)

  --quiet (-q)

  --config-dir DIR

  --auto-props

  --no-auto-props

  --force

例子

  添加一个文件到工作拷贝:

    $ svn add foo.c 

            foo.c

  添加一个目录:svn add缺省的行为方式是递归的:
    $ svn add testdir

            testdir

            testdir/a

            testdir/b

            testdir/c

            testdir/d

   你可以只添加一个目录而不包括其内容:

    $ svn add --non-recursive otherdir

            otherdir

通常情况下,命令 svn add * 会忽略所有已经在版本控制之下的目录。有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:
    $ svn add * --force

            foo.c

            somedir/bar.c

            otherdir/docs/baz.doc

   

 

2、svn blame — 显示特定文件和URL内嵌的作者和修订版本信息。

格式

  svn blame TARGET[@REV]...

含义
  显示特定文件和URL内嵌的作者和修订版本信息。每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。

别名
  praise、annotate、ann

是否访问版本库:

选项
  --revision (-r) REV

  --username USER

  --password PASS

  --no-auth-cache

  --non-interactive

  --config-dir DIR

  --verbose

例子
  如希望在测试版本库看到blame标记的 xxx.txt源代码:

   $ svn blame http://svn.red-bean.com/repos/test/xxx.txt      

        sally This is a README file.

        harry You should read this.

 

3、svn cat — 输出特定文件或URL的内容。

格式
  svn cat TARGET[@REV]...

含义
输出特定文件或URL的内容。列出目录的内容可以使用 svn list。
是否访问版本库:

选项
  --revision (-r) REV

  --username USER

  --password PASS

  --no-auth-cache

  --non-interactive

  --config-dir DIR

例子
  如果希望不检出而察看版本库的xxx.txt的内容:

   $ svn cat http://svn.red-bean.com/repos/test/xxx.txt

   This is a README file.

   You should read this.


  如果你的工作拷贝已经过期(或者你有本地修改),且希望察看工作拷贝的HEAD修订版本的一个文件,若给定了一个路径,svn cat会自动取得HEAD的修订版本:
   $ cat foo.c

   This file is in my local working copy and has changes that I've made.

   $ svn cat foo.c

   Latest revision fresh from the repository!

 

4、svn checkout — 从版本库取出一个工作拷贝。

格式

  svn checkout URL[@REV]... [PATH]

含义

  从版本库取出一个工作拷贝,如果省略PATH,URL的基名称会作为目标,如果给定多个URL,每一个都会检出到PATH的子目录,使用URL基名称的子目录名称。此命令会创建一个工作拷贝。

别名
  co

是否访问版本库:

选项
  --revision (-r) REV

  --quiet (-q)

  --non-recursive (-N)

  --username USER

  --password PASS

  --no-auth-cache

  --non-interactive

  --ignore-externals

  --config-dir DIR

例子
       取出一个工作拷贝到 XXX:

   $ svn checkout file:///tmp/repos/test XXX

    XXX/a

    XXX/b

   Checked out revision 2.

   $ ls

   XXX

       检出两个目录到两个单独的工作拷贝:

   $ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz

     test/a

    test/b

   Checked out revision 2.

    quiz/l

    quiz/m

   Checked out revision 2.

   $ ls

   quiz   test

       检出两个目录到两个单独的工作拷贝,但是将两个目录都放到working-copies:

   $ svn checkout file:///tmp/repos/test   file:///tmp/repos/quiz working-copies

    working-copies/test/a

    working-copies/test/b

   Checked out revision 2.

    working-copies/quiz/l

    working-copies/quiz/m

   Checked out revision 2.

   $ ls

   working-copies

       如果你打断一个检出(或其它打断检出的事情,如连接失败。),你可以使用同样的命令重新开始或者是更新不完整的工作拷贝:

   $ svn checkout file:///tmp/repos/test test

    test/a

    test/b

   ^C

   svn: The operation was interrupted

   svn: caught SIGINT

   $ svn checkout file:///tmp/repos/test test

    test/c

    test/d

   ^C

   svn: The operation was interrupted

   svn: caught SIGINT

   $ cd test

   $ svn update

    test/e

    test/f

   Updated to revision 3.

 

5、svn cleanup — 递归清理工作拷贝。

格式

  svn cleanup [PATH...]

含义
  递归清理工作拷贝,删除未完成的工作拷贝锁定,并恢复未完成的操作。如果你得到一个“工作拷贝已锁定”的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。如果因为一些原因,运行其他程序(例如,用户输入或是网络错误)导致一个 svn update 失败,使用 --diff3-cmd 选项可以完全清除你的程序所作的合并,也可以使用 --config-dir 指定任何配置目录,但一般不会经常使用这些选项。
是否访问版本库:

选项
  --diff3-cmd CMD

  --config-dir DIR

例子
  $ svn cleanup /path/working-copy
      如果你没有传递PATH,会使用“.”(即当前目录)。
  $ svn cleanup

 

6、svn commit — 将修改从工作拷贝发送到版本库。

格式

  svn commit [PATH...]

含义

  将修改从工作拷贝上传到版本库。如果没有使用--file或--message提供提交日志信息,svn会启动编辑器来编写一个提交信息,见“config”的editor-cmd。svn commit will send found lock tokens and release locks on all PATHS committed (recursively) unless --no-unlock is passed.
  注意:如果开始了提交且Subversion已经启动编辑器来编辑提交信息,仍可以退出而不会提交修改;如果希望取消提交,只需要退出编辑器但不保存提交信息,Subversion会提示你是选择取消提交、空信息继续还是重新编辑信息。

别名
  ci(“check in”的缩写;不是“checkout”的缩写“co”。)

是否访问版本库:

选项
  --message (-m) TEXT

  --file (-F) FILE

  --quiet (-q)

  --no-unlock

  --non-recursive (-N)

  --targets FILENAME

  --force-log

  --username USER

  --password PASS

  --no-auth-cache

  --non-interactive

  --encoding ENC

  --config-dir DIR

例子
       使用命令行提交包含日志信息的文件修改,当前目录(“.”)是没有说明的目标路径:

   $ svn commit -m "added howto section."

   Sending         a

   Transmitting file data .

   Committed revision 4.

       提交修改到foo.c(在命令行明确指明),并且msg文件中保存了提交信息:

   $ svn commit -F msg foo.c

   Sending         foo.c

   Transmitting file data .

   Committed revision 5.

       如果希望在--file选项中使用在版本控制之下的文件作为参数,你需要使用--force-log选项:

   $ svn commit --file file_under_vc.txt foo.c

   svn: The log message file is under version control

   svn: Log message file is a versioned file; use '--force-log' to override

   $ svn commit --force-log --file file_under_vc.txt foo.c

   Sending         foo.c

   Transmitting file data .

   Committed revision 6.

       提交已经预定要删除的文件:

   $ svn commit -m "removed file 'c'."

   Deleting        c

   Committed revision 7.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值