svn命令copy使用

名称 svn copy — 拷贝工作拷贝的一个文件或目录到版本库。 概要 svn copy SRC DST 描述 拷贝工作拷贝的一个文件或目录到版本库。_SRC和DST_既可以是工作拷贝(WC)路径也可以是URL: WC -> WC 拷贝并且预定一个添加的项目(包含历史)。 WC -> URL 将WC或URL的拷贝立即提交。 URL -> WC 检出URL到WC,并且加入到添加计划。 URL -> URL 完全的服务器端拷贝,通常用在分支和标签。 注意 你只可以在单个版本库中拷贝文件,Subversion还不支持跨版本库的拷贝。 别名 cp 变化 如果目标是URL则包括版本库。 如果目标是WC路径,则是工作拷贝。 是否访问版本库 如果目标是版本库,或者需要查看修订版本号,则会访问版本库。 选项 --message (-m) TEXT --file (-F) FILE --revision (-r) REV --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive --force-log --editor-cmd EDITOR --encoding ENC --config-dir DIR 例子 拷贝工作拷贝的一个项目(只是预定要拷贝—在提交之前不会影响版本库): $ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt 拷贝你的工作拷贝的一个项目到版本库的URL(直接的提交,所以需要提供一个提交信息): ...

November 20, 2012

svn命令delete使用

名称 svn delete — 从工作拷贝或版本库删除一个项目。 概要 svn delete PATH... svn delete URL... 描述 _PATH_指定的项目会在下次提交删除,文件(和没有提交的目录)会立即从版本库删除,这个命令不会删除任何未版本化或已经修改的项目;使用--force选项可以覆盖这种行为方式。 URL指定的项目会在直接提交中从版本库删除,多个URL的提交是原子操作。 别名 del, remove, rm 变化 如果操作对象是文件则是工作拷贝变化,对象是URL则会影响版本库。 是否访问版本库 对URL操作时访问 选项 --force --force-log --message (-m) TEXT --file (-F) FILE --quiet (-q) --targets FILENAME --username USER --password PASS --no-auth-cache --non-interactive --editor-cmd EDITOR --encoding ENC --config-dir DIR 例子 使用svn从工作拷贝删除文件只是预定要删除,当你提交,文件才会从版本库删除。 $ svn delete myfile D myfile $ svn commit -m "Deleted file 'myfile'." Deleting myfile Transmitting file data . Committed revision 14. 然而直接删除一个URL,你需要提供一个日志信息: ...

November 20, 2012

svn命令diff使用

名称 svn diff — 比较两条路径的区别。 概要 diff [-r N[:M]] [TARGET[@REV]...] diff [-r N[:M]] --old OLD-TGT[@OLDREV] [--new NEW-TGT[@NEWREV]] [PATH...] diff OLD-URL[@OLDREV] NEW-URL[@NEWREV] 描述 显示两条路径的区别,svn diff有三种使用方式: **svn diff [-r N[:M]] [–old OLD-TGT] [–new NEW-TGT] [PATH…]**会显示_OLD-TGT和NEW-TGT的区别。如果给定路径PATH,它会被看作OLD-TGT和NEW-TGT的相对路径,输出也会限制在这些路径的区别上。OLD-TGT和NEW-TGT可以是工作拷贝路径或者是URL[@REV]。OLD-TGT缺省是当前工作目录,而NEW-TGT缺省是OLD-TGT。N缺省是BASE,M缺省时当前目录的版本,但如果NEW-TGT是一个URL,则默认是HEAD。svn diff -r N设置OLD-TGT的修订版本为N,svn diff -r N:M设置NEW-TGT的修订版本是M_。 svn diff [-r N[:M]] URL1[@N] URL2[@M]是svn diff [-r N[:M]] –old=URL1 –new=URL2的缩写。 _TARGET_是一个URL,然后可以使用前面提到的--revision或“@”符号来指定N和M。 如果_TARGET_是工作拷贝路径,则--revision选项的含义是: --revision N:M 服务器比较 TARGET@N和TARGET@M。 --revision N 客户端比较_TARGET@N_和工作拷贝。 (无--revision) 客户端比较base和 TARGET的TARGET。 如果使用其他语法,服务器会比较_URL1和URL2各自的N和M。如果省掉N或M_,会假定为HEAD。 缺省情况下,svn diff忽略文件的祖先,只会比较两个文件的内容。如果你使用--notice-ancestry,比较修订版本(也就是,当你运行svn diff比较两个内容相同,但祖先历史不同的对象会看到所有的内容被删除又再次添加)时就会考虑路径的祖先。 别名 di 变化 无 是否访问版本库 获得工作拷贝非BASE修订版本的区别时会 ...

November 20, 2012

svn命令add使用

名称 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 A foo.c 当添加一个目录,svn add缺省的行为方式是递归的: $ svn add testdir A testdir A testdir/a A testdir/b A testdir/c A testdir/d 你可以只添加一个目录而不包括其内容: $ svn add --non-recursive otherdir A otherdir 通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下: $ svn add * --force A foo.c A somedir/bar.c A otherdir/docs/baz.doc [...]

November 16, 2012

svn命令blame使用

名称 svn blame — 显示特定文件和URL内嵌的作者和修订版本信息。 概要 svn blame TARGET... 描述 显示特定文件和URL内嵌的作者和修订版本信息。每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。 别名 praise、annotate、ann 变化 无 是否访问版本库 是 选项 --revision (-r) REV --username USER --password PASS --no-auth-cache --non-interactive --config-dir DIR --verbose 例子 如果你希望在测试版本库看到blame标记的readme.txt源代码: $ svn blame http://svn.red-bean.com/repos/test/readme.txt 3 sally This is a README file. 5 harry You should read this.

November 16, 2012

svn命令checkout使用

名称 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 --config-dir DIR 例子 取出一个工作拷贝到mine: $ svn checkout file:///tmp/repos/test mine A mine/a A mine/b Checked out revision 2. $ ls mine 检出两个目录到两个单独的工作拷贝: $ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz A test/a A test/b Checked out revision 2. A quiz/l A quiz/m Checked out revision 2. $ ls quiz test 检出两个目录到两个单独的工作拷贝,但是将两个目录都放到working-copies: ...

November 16, 2012

svn命令cleanup使用

名称 svn cleanup — 递归清理工作拷贝。 概要 svn cleanup [PATH...] 描述 递归清理工作拷贝,删除未完成的操作锁定。如果你得到一个“工作拷贝已锁定”的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。 如果,因为一些原因,运行外置的区别程序(例如,用户输入或是网络错误)有时候会导致一个svn update失败,使用--diff3-cmd选项可以完全清除你的外置区别程序所作的合并,你也可以使用--config-dir指定任何配置目录,但是你应该不会经常使用这些选项。 别名 无 变化 工作拷贝 是否访问版本库 否 选项 --diff3-cmd CMD --config-dir DIR 例子 svn cleanup没有输出,没有太多的例子,如果你没有传递路径,会使用“.”。 $ svn cleanup $ svn cleanup /path/to/working-copy

November 16, 2012

svn命令commit使用

名称 svn commit — 将修改从工作拷贝发送到版本库。 概要 svn commit [PATH...] 描述 将修改从工作拷贝发送到版本库。如果你没有使用--file或--message提供一个提交日志信息,svn会启动你的编辑器来编写一个提交信息,见“config”一节的editor-cmd小节。 提示 如果你开始一个提交并且Subversion启动了你的编辑器来编辑提交信息,你仍可以退出而不会提交你的修改,如果你希望取消你的提交,只需要退出编辑器而不保存你的提交信息,Subversion会提示你是选择取消提交、空信息继续还是重新编辑信息。 别名 ci(“check in”的缩写;不是“checkout”的缩写“co”。) 变化 工作拷贝,版本库 是否访问版本库 是 选项 --message (-m) TEXT --file (-F) FILE --quiet (-q) --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 3. 提交一个修改到foo.c(在命令行明确指明),并且msg文件中保存了提交信息: $ svn commit -F msg foo.c Sending foo.c Transmitting file data . Committed revision 5. 如果你希望使用在--file选项中使用在版本控制之下的文件作为参数,你需要使用--force-log选项: ...

November 16, 2012