博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVN的属性
阅读量:5294 次
发布时间:2019-06-14

本文共 1790 字,大约阅读时间需要 5 分钟。

   SVN中的属性是指附着在某个文件,某个目录,或者某个版本库上的键值对,与文件或者版本库的内容相比,它们算是某种隐形内容。可以在一个对象上附着任意多个属性(键值对),唯一的限制就是内存。键名由ASCII字符组成,类似变量名,键值则可以是任意值,包括字符串和二进制。

   属性的修改,提交,更新,冲突解决与内容的修改,提交,更新,冲突解决一致。

   SVN支持两种类型的属性:版本化属性和非版本化属性。

   版本化属性依赖于某一个版本文件或目录而存在,与文件内容一样,接受版本控制。提交针对某个文件或者目录属性的修改,与提交文件内容的修改一样,会产生新的修订版本号(revision number)

   非版本化属性则针对整个版本库,与某个修订版本号(revision number)对应,它显然是无法接受版本控制的(当然你可以查看它在上一个修订号时的值,如果有的话)。

   可以自己定义并添加属性,但是很多实践者并不鼓励这种做法,因为属性类似隐形内容,难以搜索和管理。在实践中,一般是在提交修改时,在log中嵌入一些信息(最好预先设定log的格式,便于编程处理),携带想要的键值对。这种做法当然只能与某次版本对应,但是对于大部分实践,已经够了。

   自定义版本化属性的一个例子是:图片文件的版权信息。

   自定义非版本化属性的一个例子是:提交对应的bug ID。

   那么,SVN属性的重点是,它自身使用一些保留属性为使用者提供方便的特性。这些保留属性的名字以svn:开头,自定义属性的名字最好不要也以这个开头。svn在提交的时候,会自动添加一些保留属性,比如:svn:mime-type,svn:executable。svn还允许定一些配置信息,自定义自动化属性设置。

   保留的版本化属性举例:svn:mime-type,它的值是文件对应的mime类型。

   保留的非版本化属性举例:svn:date(版本提交的日期),svn:author(版本提交的作者),svn:log(版本提交的日志信息)。

   属性操作举例:

   1.添加一个版本化属性:

      svn propset copyright '(c) 2006 Red-Bean Software' calc/button.c(设置button.c的版权信息)

      svn propset license -F /path/to/LICENSE calc/button.c(设置button.c的版权信息,LICENSE的内容被作为licence的值)

      svn propset copyright '(c) 2006 Red-Bean Software' calc/*(设置calc目录下所有文件的版权信息)

      svn propedit copyright calc/button.c(设置或者编辑button.c文件的版权信息,推荐的修改方式)

   2.列出属性:

      svn proplist calc/button.c

      输出:

      Properties on 'calc/button.c':

         copyright

         license

      svn proplist -v calc/button.c

      输出:

      Properties on 'calc/button.c':

         copyright

            (c) 2006 Red-Bean Software
         license

            (c) 2006 Red-Bean Software 

      svn propget copyright calc/button.c

      输出:

      (c) 2006 Red-Bean Software

   3.删除属性:

      svn propdel license calc/button.c

   4.操作非版本化属性(可能存在权限问题,需要svn服务器允许):

      svn propset svn:log "* button.c: Fix a compiler warning." -r11 --revprop

      svn propset svn:log "* button.c: Fix a compiler warning." -r11 --revprop http://svn.example.com/repos/project

转载于:https://www.cnblogs.com/frydsh/archive/2012/09/09/2677159.html

你可能感兴趣的文章
Linux上安装JDK1.7步骤
查看>>
微信聊天和通讯录按钮样式
查看>>
一步一步学EF系列【4、升级篇 实体与数据库的映射】live writer真坑,第4次补发...
查看>>
决策树
查看>>
对称加密和非对称加密
查看>>
python时间序列数据的对齐和数据库的分批查询
查看>>
OpenJudge 2712
查看>>
ubuntu+github配置使用
查看>>
练习015:删除排序数组中的重复项
查看>>
UML用例图总结
查看>>
POJ 2117 求无向图的割点
查看>>
2016.12.13
查看>>
一.安全NA之syslog SNMP SSH NTP
查看>>
HTTP状态码
查看>>
python的re模块
查看>>
级建造师考前冲刺大调查
查看>>
hdu-----(1532)Drainage Ditches(最大流问题)
查看>>
hdu 3172 Virtual Friends (映射并查集)
查看>>
hdu 1272
查看>>
<c:forEach>详解
查看>>