zoukankan      html  css  js  c++  java
  • SVN的属性

       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

  • 相关阅读:
    Security+考试通过心得
    Splunk Power User认证
    Splunk笔记
    关于工作
    智能合约安全-parity多重签名钱包安全漏洞
    kickstart构建Live CD 添加文件问题
    Local Authentication Using Challenge Response with Yubikey for CentOS 7
    计算Linux权限掩码umask值
    IntelliJ IDEA 常用快捷键
    关于常量池-----小例子
  • 原文地址:https://www.cnblogs.com/frydsh/p/2677159.html
Copyright © 2011-2022 走看看