[实践OK]svn打版本号:Subversion 的 svn:keywords,SVN使用详解之如何设置svn:keywords。

jackxiang 2013-10-9 11:18 | |
背景:在线上代码和线下代码不一致时,用这个时间先比对是很重要的,首先看时间确定是不是最新的代码,再进行问题排查是很有必要的。再就是线上代码的调试,要注意其函数和调用层次位置,一定要区分开线下最新代码区分看(线下有zend 等跳转有可能心里觉得线下是最好的样板,而给调试带来不便。),主要是通过版本号来判定线上是否已经更新上去了。
实践OK如下:
只需要对svnClient安装后,选中目录或文件点右键,TortoiseSVN-> properties->New...->Keywords,选中:ID即可:
* @version    $Id: imageinfo.php 230 2014-10-10 07:33:10Z xiangdong $
提交后自己就给变成自己的当前文件,日期及版本号。
—————————————更多参数———————————————————————————————————————————
Subversion 的 svn:keywords 是一个非常有用的功能,可以让你将发生在源代码中的一些属性的变化自动地更新到源代码中。
所有php的开头都要加上
/**
* @version    $Id: activitymodule.php 1571 2013-10-08 07:02:15Z yu****chun $
*/
选中目录或文件点右键,TortoiseSVN-> properties->New...->Keywords,先中:Author,Date,ID,Revision,URL.选后就算是打上标就可以了。每次递交就会自动更新,TortoiseSVN-> properties->New...->Advanced里可自己写。

常用.h .cpp文件头
/**
  @(#)$Id$
  @brief     Multi-threaded programming critical section (lock)
  @Author $Author$
  @Date $Date$
  @Revision $Revision$
  @URL $URL$
  @Header $Header$
*/
附加:
  $Id$
  $Author$
  $lastChangedBy$
  $lastChangedDate$
  $Date$$Revision$
  $URL$
  $Header$

一般搞这种的都是从cvs时代过来时就搞这个keyword,现转向svn了svn也和cvs一样支持keyword,而且用法也一样。


SVN使用详解之如何设置svn:keywords :
Subversion 中可以使用的 Keyword 包括下面这些。
Id
这是一种综合的格式,例如“$Id: V2EXCore.php 4 2005-10-29 23:08:09Z livid $”。
LastChangedDate
最后被修改的时间,这个属性也可以缩写为 Date。
LastChangedBy
最后修改该源代码文件的用户名,这个属性也可以被缩写为 Author。
LastChangedRevision
最后修订的版本号,这个属性也可以被缩写为 Revision 或者 Rev。
HeadURL
该源代码文件所位于的 Repository 上的绝对 URL 地址,这个属性也可以被缩写为 URL。
使用命令行设置:
先CD到你的工作目录(对于工作目录在二楼有解释,简而言之就是你用于暂时存放Subversion中为本库的一个Copy的目录,
如果你安装了TortoiseSVN工作目录上是带个小图标的,更新了文件没有更新是一个叹号,更新后有一个绿色的勾)
E:\MakeWeb\www.zxlm.cn\blogdevelopment\admin>svn propset svn:keywords "LastChangedDate Author" *.php
属性“svn:keywords”设定于“admincp.php”
属性“svn:keywords”设定于“adminfunctions.php”
属性“svn:keywords”设定于“article.php”
属性“svn:keywords”设定于“attachment.php”
属性“svn:keywords”设定于“cache.php”
属性“svn:keywords”设定于“category.php”
如果提示  svn: “.”不是工作拷贝
说明你不在工作目录下执行些命令.
CD到工作目录即可.
对于每个项目的工作目录都需要单独设置.
如果提示  svn: 本客户端已过时,无法存取工作拷贝
那么你就得检查一下你的SVN的客户端和SVN服务器的版本是不是一致了,看这里了解详细.
最好两者都使用最新的版本.
使用TortoiseSVN设置svn:keywords
在你的工作目录中需要设置的文件上右键:选择属性.
然后出来一个这样的对应框:
在属性中选中 svn:keywords.
在取值中键入需要设置的关键字,所有关键字只能一次全部输入.
再确定.
这样你就设置好了 svn:keywords 了.

引用:
Subversion 的 svn:keywords 是一个非常有用的功能,可以让你将发生在源代码中的一些属性的变化自动地更新到源代码中。
比如你可以在客齐集社区的每一个页面的底部都看到的这样的一行字。
$Id: V2EXCore.php 4 2005-10-29 23:08:09Z livid $这行字的意思是表示,V2EXCore.php 这个源代码文件最后被用户 livid 更新于 2005-10-29 23:08:09Z,修订版本号为 4。要实现这样的自动更新,你只要对需要这样的属性的文件上使用下面这行指令。
svn propset svn:keywords "Id" V2EXCore.php然后在源代码文件中需要 Subversion 进行自动更新的地方插入 $Id$ 这样的 Keyword,那么在你下次进行 svn commit 之后,该 $Id$ 就会被 Subversion 自动替换为 $Id: V2EXCore.php 4 2005-10-29 23:08:09Z livid $ 这样的格式。
Subversion 只会对你明确设置了 Keyword 进行更新,比如如果你对某个源代码文件执行了下面这条指令。
svn propset svn:keywords "Id Date" V2EXCore.php则在 V2EXCore.php 中所有的 $Id$ 和 $Date$ 都会被替换,而 $Author$ 之类的没有被设置的属性则不会发生替换。  

来自:http://blog.cntv.cn/11430895-3106020.html
更多参考:
http://blog.ihipop.info/2011/08/2698.html
http://jdkcn.com/entry/how-to-add-auto-props-in-subversion.html
http://blog.ihipop.info/2011/08/2698.html
http://ad-hoc.blog.sohu.com/107465483.html
直接修改配置文件的方法,时间相差8小时:
http://hi.baidu.com/cyrist/item/97a5e6f12b44b3c4a835a2dc
SVN嵌入属性(获得最后一次提交的人,时间...):
http://blog.csdn.net/lsd123/article/details/3345388

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6721/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2014-10-10 15:46
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]