笔记 by 车东

svn diff版本如何忽略空格

· 技术笔记|Tech Notes

最近才了解并开始使用svn ,其实和cvs的操作还是略有一些差别的。cvs其实很多功能是rcs和其他一些系统命令的组合;svn中的diff 如何忽略空格,就不像cvs diff -b一样能忽略空格来比较文件的差别。 而svn help说的:

svn diff **-x** [--extensions] arg : Default: '-u'. When Subversion is invoking an external diff program, ARG is simply passed along to the program. But when Subversion is using its default internal diff implementation, or when Subversion is displaying blame annotations, ARG could be any of the following: -u (--unified): Output 3 lines of unified context. -b (--ignore-space-change): Ignore changes in the amount of white space. -w (--ignore-all-space): Ignore all white space. --ignore-eol-style: Ignore changes in EOL style
但内置的diff命令似乎不支持-b选项:
$ svn diff -x -b svn: '-b' is not supported
需要在 ~/.subversion/config文件中设置了
[helpers] diff-cmd = /usr/bin/diff
才可以使用svn diff -x扩展选项。

以上例子中svn的版本: svn, version 1.4.2 (r22196) compiled Feb 3 2007, 12:58:02

另外一直也在寻找一个工具,对于一些单独的文件,比如: apache的配置文件, 某个启动脚本。 如何进行本地化的版本管理呢?一一导入到集中的svn库里还是略微有些麻烦。 是不是使用rcs就可以了呢?

感谢Livid的介绍: 有套叫bzr的工具,只需在文件相应的目录下bzr init 然后就可以即可添加管理相应的文件了,此外: bzr还有一个比较方便就是基于ssh的bzr push 发布;

摘录一段关于Bazaar 用户文档中对于版本控制工具的演进介绍:

Version control tools have been evolving for several decades now. In simple terms, there have been 5 generations of tools: 1. file versioning tools, e.g. SCCS, RCS 2. tree versioning tools - central style, e.g. CVS 3. tree versioning tools - central style, done right, e.g. Subversion 4. tree versioning tools - distributed style, e.g. Arch 5. tree versioning tools - distributed style, done right, e.g. Bazaar.

💬 历史评论

以下 5 条评论从旧版 Movable Type 博客迁移而来。 原始评论时间:2002–2016 年。

kernel1983 · 2008-01-09 09:12

bzr不是简易,是分布式

哈哈,最近在看bzr的merge3.py,收益良多


David · 2008-01-09 09:53

1.4.4似乎已经没有你说的这个问题了,应该是1.4.2的bug,同时制定diff命令可以直接用 –diff-cmd


最好的丁丁 · 2008-01-12 14:14

的确是这样


遇到麻烦的人 · 2008-01-18 13:26

你好,车东老师,我很喜欢你的博客里的技术文章,我最近遇到一个麻烦,公司要求在服务器上安装AWstats软件,我照着网上的做了,还是不行,总是报错,你能不能提供帮肋呢/或联系方式,我来找你,方便的话,把你的联系方式 发到我的邮箱,谢谢车东老师!!!!!


nap · 2008-01-26 03:23

悄悄的问一声:能提供全文rss输出吗?