使用svn merge可以实现版本的回退功能。这里svn中对于merge命令的使用方法转载过来,以备查用。 名称 svn merge — 应用两组源文件的差别到工作拷贝路径。 概要 svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH] svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH] svn merge -r N:M SOURCE[@REV] [WCPATH] 描述 第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号N和M指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD。 第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号N和M的URL定义了要比较的两组源。 WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。 不像svn diff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。 别名 无 变化 工作拷贝 是否访问版本库 只有在对URL操作时会 选项 --revision (-r) REV--non-recursive (-N)--quiet (-q)--force--dry-run--diff3-cmd CMD--ignore-ancestry--username USER--password PASS--no-auth-cache--non-interactive--config-dir DIR 例子 将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建): $ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branchU myproj/tiny.txtU myproj/thhgttg.txtU myproj/win.txtU myproj/flo.txt 如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做: $ svn merge -r 23:30 file:///tmp/repos/trunk/vendorsU myproj/thhgttg.txt… 合并一个单独文件的修改: $ cd myproj$ svn merge -r 30:31 thhgttg.txt U thhgttg.txt 原文地址 http://svndoc.iusesvn.com/svnbook/svn.ref.svn.c.merge.html