最喜欢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你的仓库的大小。