`
ladymaidu
  • 浏览: 680834 次
文章分类
社区版块
存档分类
最新评论

svn子命令

 
阅读更多

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

<wbr><wbr>svn add PATH...</wbr></wbr>

含义

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

<wbr> --non-recursive (-N)</wbr>

<wbr> --quiet (-q)</wbr>

<wbr> --config-dir DIR</wbr>

<wbr> --auto-props</wbr>

<wbr><wbr>--no-auto-props</wbr></wbr>

<wbr> --force</wbr>

例子

<wbr> 添加一个文件到工作拷贝:</wbr>

<wbr><wbr><wbr> $ svn add foo.c<wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> foo.c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

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

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> testdir</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> testdir/a</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> testdir/b</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> testdir/c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> testdir/d</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

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

<wbr><wbr><wbr> $ svn add --non-recursive otherdir</wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> otherdir</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

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

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> foo.c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> somedir/bar.c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> A<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> otherdir/docs/baz.doc</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> …</wbr></wbr></wbr>

<wbr></wbr>

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

格式

<wbr> svn blame TARGET[@REV]...</wbr>

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

别名
<wbr> praise、annotate、ann</wbr>

是否访问版本库:

选项
<wbr> --revision (-r) REV</wbr>

<wbr> --username USER</wbr>

<wbr><wbr>--password PASS</wbr></wbr>

<wbr> --no-auth-cache</wbr>

<wbr> --non-interactive</wbr>

<wbr> --config-dir DIR</wbr>

<wbr> --verbose</wbr>

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

<wbr><wbr> $ svn blame <a href="http://svn.red-bean.com/repos/test/xxx.txt"> http://svn.red-bean.com/repos/test/xxx.txt</a><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> 3<wbr><wbr><wbr><wbr><wbr><wbr> sally This is a README file.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> 5<wbr><wbr><wbr><wbr><wbr><wbr> harry You should read this.</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

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

格式
<wbr> svn cat TARGET[@REV]...</wbr>

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

选项
<wbr> --revision (-r) REV</wbr>

<wbr> --username USER</wbr>

<wbr> --password PASS</wbr>

<wbr> --no-auth-cache</wbr>

<wbr> --non-interactive</wbr>

<wbr> --config-dir DIR</wbr>

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

<wbr><wbr> $ svn cat <a href="http://svn.red-bean.com/repos/test/xxx.txt">http://svn.red-bean.com/repos/test/xxx.txt</a></wbr></wbr>

<wbr><wbr> This is a README file.</wbr></wbr>

<wbr><wbr> You should read this.</wbr></wbr>


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

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

<wbr><wbr> $ svn cat foo.c</wbr></wbr>

<wbr><wbr> Latest revision fresh from the repository!</wbr></wbr>

<wbr></wbr>

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

格式

<wbr> svn checkout URL[@REV]... [PATH]</wbr>

含义

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

别名
<wbr> co</wbr>

是否访问版本库:

选项
<wbr> --revision (-r) REV</wbr>

<wbr> --quiet (-q)</wbr>

<wbr><wbr>--non-recursive (-N)</wbr></wbr>

<wbr> --username USER</wbr>

<wbr> --password PASS</wbr>

<wbr> --no-auth-cache</wbr>

<wbr> --non-interactive</wbr>

<wbr> --ignore-externals</wbr>

<wbr> --config-dir DIR</wbr>

例子
<wbr><wbr><wbr><wbr><wbr><wbr> 取出一个工作拷贝到 XXX:</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> $ svn checkout <a href="file://tmp/repos/test">file:///tmp/repos/test</a> XXX</wbr></wbr>

<wbr><wbr> A<wbr><wbr> XXX/a</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> XXX/b</wbr></wbr></wbr></wbr>

<wbr><wbr> Checked out revision 2.</wbr></wbr>

<wbr><wbr> $ ls</wbr></wbr>

<wbr><wbr> XXX</wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> 检出两个目录到两个单独的工作拷贝:</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> $ svn checkout <a href="file://tmp/repos/test">file:///tmp/repos/test</a><wbr><a href="file://tmp/repos/quiz">file:///tmp/repos/quiz</a></wbr></wbr></wbr>

<wbr><wbr><wbr>A<wbr><wbr> test/a</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/b</wbr></wbr></wbr></wbr>

<wbr><wbr> Checked out revision 2.</wbr></wbr>

<wbr><wbr> A<wbr><wbr> quiz/l</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> quiz/m</wbr></wbr></wbr></wbr>

<wbr><wbr> Checked out revision 2.</wbr></wbr>

<wbr><wbr> $ ls</wbr></wbr>

<wbr><wbr> quiz<wbr><wbr> test</wbr></wbr></wbr></wbr>

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

<wbr><wbr> $ svn checkout <a href="file://tmp/repos/test">file:///tmp/repos/test</a><wbr><wbr><a href="file://tmp/repos/quiz">file:///tmp/repos/quiz</a> working-copies</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> working-copies/test/a</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> working-copies/test/b</wbr></wbr></wbr></wbr>

<wbr><wbr> Checked out revision 2.</wbr></wbr>

<wbr><wbr> A<wbr><wbr> working-copies/quiz/l</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> working-copies/quiz/m</wbr></wbr></wbr></wbr>

<wbr><wbr> Checked out revision 2.</wbr></wbr>

<wbr><wbr> $ ls</wbr></wbr>

<wbr><wbr> working-copies</wbr></wbr>

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

<wbr><wbr> $ svn checkout <a href="file://tmp/repos/test">file:///tmp/repos/test</a> test</wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/a</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/b</wbr></wbr></wbr></wbr>

<wbr><wbr> ^C</wbr></wbr>

<wbr><wbr> svn: The operation was interrupted</wbr></wbr>

<wbr><wbr> svn: caught SIGINT</wbr></wbr>

<wbr><wbr> $ svn checkout <a href="file://tmp/repos/test">file:///tmp/repos/test</a> test</wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/c</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/d</wbr></wbr></wbr></wbr>

<wbr><wbr> ^C</wbr></wbr>

<wbr><wbr><wbr>svn: The operation was interrupted</wbr></wbr></wbr>

<wbr><wbr> svn: caught SIGINT</wbr></wbr>

<wbr><wbr> $ cd test</wbr></wbr>

<wbr><wbr> $ svn update</wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/e</wbr></wbr></wbr></wbr>

<wbr><wbr> A<wbr><wbr> test/f</wbr></wbr></wbr></wbr>

<wbr><wbr> Updated to revision 3.</wbr></wbr>

<wbr></wbr>

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

格式

<wbr> svn cleanup [PATH...]</wbr>

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

选项
<wbr> --diff3-cmd CMD</wbr>

<wbr> --config-dir DIR</wbr>

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

<wbr></wbr>

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

格式

<wbr> svn commit [PATH...]</wbr>

含义

<wbr> 将修改从工作拷贝上传到版本库。如果没有使用--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.<br><wbr> 注意:如果开始了提交且Subversion已经启动编辑器来编辑提交信息,仍可以退出而不会提交修改;如果希望取消提交,只需要退出编辑器但不保存提交信息,Subversion会提示你是选择取消提交、空信息继续还是重新编辑信息。</wbr></wbr>

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

是否访问版本库:

选项
<wbr> --message (-m) TEXT</wbr>

<wbr> --file (-F) FILE</wbr>

<wbr> --quiet (-q)</wbr>

<wbr> --no-unlock</wbr>

<wbr> --non-recursive (-N)</wbr>

<wbr> --targets FILENAME</wbr>

<wbr> --force-log</wbr>

<wbr> --username USER</wbr>

<wbr> --password PASS</wbr>

<wbr> --no-auth-cache</wbr>

<wbr> --non-interactive</wbr>

<wbr> --encoding ENC</wbr>

<wbr> --config-dir DIR</wbr>

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

<wbr><wbr> $ svn commit -m "added howto section."</wbr></wbr>

<wbr><wbr> Sending<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> Transmitting file data .</wbr></wbr>

<wbr><wbr> Committed revision 4.</wbr></wbr>

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

<wbr><wbr> $ svn commit -F msg foo.c</wbr></wbr>

<wbr><wbr> Sending<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> foo.c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> Transmitting file data .</wbr></wbr>

<wbr><wbr> Committed revision 5.</wbr></wbr>

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

<wbr><wbr> $ svn commit --file file_under_vc.txt foo.c</wbr></wbr>

<wbr><wbr> svn: The log message file is under version control</wbr></wbr>

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

<wbr><wbr> $ svn commit --force-log --file file_under_vc.txt foo.c</wbr></wbr>

<wbr><wbr><wbr>Sending<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> foo.c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> Transmitting file data .</wbr></wbr>

<wbr><wbr> Committed revision 6.</wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> 提交已经预定要删除的文件:</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> $ svn commit -m "removed file 'c'."</wbr></wbr>

<wbr><wbr> Deleting<wbr><wbr><wbr><wbr><wbr><wbr><wbr> c</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr> Committed revision 7.</wbr></wbr>

分享到:
评论

相关推荐

    SVN常用命令

    整理一些svn常用命令,包括:svn子命令、svnadmin子命令、svnlook子命令、svnsync子命令

    SVN使用手册中文版快速入门

    svn子命令 svn add svn blame svn cat svn checkout svn cleanup svn commit svn copy svn delete svn diff svn export svn help svn import svn info svn list svn log svn merge svn mkdir svn move svn propdel ...

    SVN使用手册中文版.chm

    svn子命令 svn add svn blame svn cat svn checkout svn cleanup svn commit svn copy svn delete svn diff svn export svn help svn import svn info svn list svn log svn merge svn mkdir svn move svn propdel ...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    svn子命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 svnsync子命令 svnserve svnserve选项 svnversion mod_dav_svn Subversion属性 版本控制的属性 未...

    批量删除.svn文件夹、.svn文件

    批量删除.svn文件夹、.svn文件使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离svn版本控制之后,想删除项目中所有的.svn文件夹,可用下面的方法进行快速删除: 1、打开要删除.svn文件的最外层...

    脚本,循环删除当前目录及子目录下所有的SVN文件

    WINDOWS脚本,循环删除当前目录及子目录下所有的SVN文件

    svn相关资料

    svn help command 获取子命令说明 svn info $URL 查看工作空间信息 svn list 显示当前目录下svn记录文件列表,不访问版本库 svn list $URL 不下载到本地查看目录中的文件 svn log 5:19 查看版本5到19的历史信息 svn ...

    将文件夹添加到排除 .svn 的路径:更改为 genpath 以将 .svn 排除在路径中-matlab开发

    .svn 子文件夹由 SVN 在存储库中的每个文件夹中创建。 当我尝试将文件夹(包括子文件夹)添加到路径时,它会将所有这些 .svn 文件夹添加到路径中。 然后我发现你可以简单地在 GENPATH 函数中添加一行,然后使用...

    svn服务器配置总结

    此命令在 E:\svn 下建立一个版本库 group1 group1 下面会自动生成一些文件夹和文件。 我们也可以使用 TortoiseSVN 图形化的完成这一步: 先建立空目录 d:\repository\group1 ,注意一定是要空的。然后在 group1 ...

    SVN操作手册中文版网页格式

    转换后为网页格式的&lt;SVN操作手册中文版&gt; 目录 译者序 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书组织结构 Subversion 1.1的新特性,svn客户端和linux下命令行。 目录 1. 简介 1.1. 什么是 ...

    SVN培训教程.pptx

    如果选中了这个复选框,更新的时候要使用命令"更新至版本Update to Revision..." SVN培训教程全文共43页,当前为第11页。 Update(更新) 作用:更新工作副本使其成为版本库中的最新版本 SVN将显示出更新的文件和更新...

    TortoiseSVN 1.5.2.13595版(Windows下的SVN客户端)

     所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。  因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:  目录版本控制  CVS ...

    TortoiseSVN 1.5.2.13595(SVN客户端)

     所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。  因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:  目录版本控制  CVS ...

    TortoiseSVN-1.6.4.16808-cn(SVN客户端1.6.4中文版)

     所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。  因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:  目录版本控制  CVS ...

    TortoiseSVN

    “.svn”目录中存储的是你最近一次执行完Update或者Commit命令之后当前目录中文件的副本, 比如:F:\project1\.svn\text-base中存储的a.txt和b.txt 是最近一次执行完Update或者Commit命令之后F:\project1下的a....

    git-info:git-info是一个git子命令,显示有关Git信息库的信息,如`svn info'

    git-info概要git-info-显示有关Git信息库的信息,如`svn info'如何设置只需将这些脚本放在PATH的目录之一中即可。如何使用git infogit info ~/src/somewhere/somefilegit info some/relative/file_or_directorygit ...

    TortoiseSVN和TortoiseMerge的中文帮助文档(chm格式)

    4.40. svn:needs-lock 属性页 4.41. svn:executable 属性页 4.42. 分支/标记对话框 4.43. 切换对话框 4.44. 合并向导 - 选择版本范围 4.45. 合并向导 - 重新合并 4.46. 合并向导 - 树合并 4.47. 合并冲突回调对话框 ...

    javaweb软件开发相关电子手册chm完整集合

    1.7中文、JavaScript语言中文参考手册、jQuery文档、Linux命令大全(Linuxidc.com修改版)、Maven权威指南_中文完整版清晰、MyBatis3.2.3帮助文档(中文版)、mysql、Oracle官方SQL参考手册、PowerDesigner教程、SVN...

    TortoiseSVN-1.7.10.23359-x64-svn-1.7.7

    所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。 因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:  目录版本控制 CVS 只能...

    Git权威指南PDF完整版

    23.3 在子模组中修改和子模组的更新/ 340 23.4 隐性子模组/ 343 23.5 子模组的管理问题/ 345 第24章 子树合并/ 347 24.1 引入外部版本库/ 347 24.2 子目录方式合并外部版本库/ 349 24.3 利用子树合并跟踪上游改动/ ...

Global site tag (gtag.js) - Google Analytics