最喜欢svn的非明显特征?

你最喜欢的svn的非明显特征是什么?

svn log --xml 

以xml输出日志使得它们非常容易parsing和分析。

在svn 1.6中添加:使用命令行时,插入符号^速记符号可缩短颠覆性URL。 脱字符号可以通过存储库名称代替URL的部分。

例如:

 svn switch ^/myProject/branches/fooBranch 

代替

 svn switch http://machine22/repos/SandboxRepo/myProject/branches/fooBranch 

钩子脚本(启动提交,预先提交,提交后)是依靠SVN构build系统的好工具。

另一个可能太“显而易见”的是从构build脚本中调用“svn export”。 这是将文件部署到某个目标目录(例如网站)的一种非常好的方式,因为您可以获得没有.svn隐藏文件的干净副本。 这比更新远程“部署”工作副本要好得多。

外观等。

将第三方库引入您的代码库并使其保持最新的奇妙能力。

svn blame当然。 要知道是谁的错。

从分支点获取分支的历史logging:

 svn log --stop-on-copy 

Subversion API以及构build在其上的客户端绑定。

大多数SCM系统是允许通过命令行调用它们的工具的组合,但是Subversion被devise为一个稳定的API以供多个客户端使用。 它只是提供了一个命令行客户端。

TortoiseSVN , AnkhSVN , SharpSvn ,以及许多其他应用程序和库 [1]不会在没有颠覆作为一个API。

(我很高兴其他一些/新的SCM实现开始意识到命令行客户端不足以成功)

[1]链接页面现在处于脱机状态,但仍然可以在http://svn.apache.org/repos/asf/subversion/branches/1.6.x/www/links.html上看到旧版本;

从工作副本中退出变更集(例如4321):

 svn merge -c -4321 . svn checkin 

或多个变更集:

 svn merge -c -4321,-5432 . 

我最喜欢的svn的非显而易见的function是如何使用.svn元数据子目录清除我所有的源目录。 ;)

svn日志-r基地:头(可能与AV选项)

显示你的版本和头版之间发生了什么。 通常会告诉你谁打破了这个构build。

“svn:忽略”属性

颠覆api和库。 即使您希望使用分布式VCS,也可以使用中央SVN存储库 – 使用“svn native”SVK或Mercurial(通过桥接 )。 好的API也意味着更好的工具是可能的 – 他们可以直接使用SVN,而不是使用命令行客户端,并试图parsing结果。

svn diff ,甚至当你离线时,也可能认为差异是不可能的。

对Unicode文件名的跨平台支持

我在一家日本公司工作,所以Subversion的Unicode文件名支持非常好。 我一直很失望,看看比较(尤其是在Windows下) git和Mercurial是如何处理糟糕的Unicode文件名 。

(我也很感谢Subversion在日志消息中如何处理Unicode)

在较新的版本中:交互式冲突解决。 这样,冲突不需要手动解决(在大多数情况下,这样做是非常微不足道的,如果必须为大批量的文件进行操作,这是很烦人的)。 但实际上,冲突处理一般(即阻止你提交冲突的文件)。

第二个答案:

 svn status --depth files <path> 

1.5中引入的深度支持使Subversion比其他工具快得多。

通过合并以前的版本w / HEAD来执行回滚。

遇到了一些东西。 。 这里是我最喜欢的一个非卵巢的人..你可以复制粘贴“svn工作副本”到任何其他机器或任何其他操作系统,其作品就好像它被检出。 即使这是由不同的用户检出这个工程!

configuration从属存储库以反映主存储库的选项。 因此,远程组可以从本地副本中进行所有读取。 它真的加快了发展。

svn cleanup

当这也说“运行svn清理干净”

find . |grep \\.svn/lock |xargs rm

从pipe理的angular度来看, svndumpfilter exclude $file可以大大减less你的仓库的大小。