propset (pset, ps): 在文件,目录或版本上设置属性值。

用法:

  1. propset PROPNAME PROPVAL PATH...
  2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
  1. 在工作副本修改受版本控制的文件或目录属性。

  2. 修改版本库版本中不受版本控制的远程属性。TARGET 仅用来确定要访问的版本库。

也可以使用 --file 选项代替 PROPVAL 来提供属性值。

以 “svn:” 开头的属性名称是保留的。对于文件,Subversion 识别以下几个受版本控制的特殊属性:

  • svn:keywords
: 要展开的关键字。有效的关键字是:
  • URL, HeadURL : 文件头版本的 URL 路径
  • Author, LastChangedBy : 该文件的最后修改者
  • Date, LastChangedDate : 该文件的最后修改日期/时间
  • Rev, Revision, LastChangedRevision : 该文件最后修改的版本
  • Id : 前面四项精简后的摘要
  • Header : 与 ID 类似,但包含完整的 URL 路径
可以使用格式字符串定义自定义关键字,该格式字符串与关键字名称之间以 “=” 分隔。有效的替换格式包括:
  • %a : 由 %r 指定版本的作者
  • %b : 文件 URL 路径的基本文件名称
  • %d : 由 %r 指定版本的短格式日期
  • %D : 由 %r 指定版本的长格式日期
  • %P : 文件路径,相对与版本库根路径
  • %r : 最后修改文件的版本号
  • %R : 版本库根的 URL 路径
  • %u : 文件的 URL 路径
  • %_ : 一个空白(关键字定义不能包含字面空白字符)
  • %% : 一个 % 字符
  • %H : 相当于 %P%_%r%_%d%_%a
  • %I : 相当于 %b%_%r%_%d%_%a
自定义关键字定义示例: MyKeyword=%r%_%a%_%P,一旦为文件定义了自定义关键字,它就可以像其他任何关键字一样在文件中使用: $MyKeyword$
  • svn:executable
: 如果存在,则使文件成为可执行文件。使用 “svn propdel svn:executable PATH...” 进行清除。
  • svn:eol-style
: 文件行尾风格,值为 “native”, “LF”, “CR”, “CRLF” 之一。
  • svn:mime-type
: 文件的媒体类型。用于确定是否合并文件以及 Apache 如何为其提供服务。以 “text/” 开头的媒体类型(或缺少媒体类型)文件被视为文本文件。任何其它文件都被视为二进制文件。
  • svn:needs-lock
: 如果存在,则表示在修改该文件之前应将其锁定。未锁定时工作副本中该文件将作为只读文件。 使用 “svn propdel svn:needs-lock PATH...” 进行清除。

对于目录,Subversion 识别以下几个受版本控制的特殊属性:

  • svn:ignore
: 要忽略的 GLOB 文件通配符​列表,每行一个。
  • svn:global-ignores
: 类似 svn:ignore,但可以继承。
  • svn:auto-props
: 当添加或导入文件时自动为其设置属性。包含键/值对,每行一对,格式为:
PATTERN = PROPNAME=VALUE[;PROPNAME=VALUE ...]
例如(对于 “;” 符号,通过添加另一个 “;” 符号对其进行转义):
*.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8
在设置该属性的目录下,添加或导入的所有文件都将递归地应用这些自动属性。 另请参阅客户端配置文件 中的 [auto-props] 段。
  • svn:externals
: 模块说明符列表,每行一个,使用以下与 “svn checkout” 相似的语法:
[-r REV] URL[@PEG] LOCALPATH
例如:http://example.com/repos/zig foo/bar
LOCALPATH 相对于具有此属性的目录。要将外部定义固定到已知版本,可指定可选的 REV
-r25 http://example.com/repos/zig foo/bar
要明确标识路径中后续可能已被删除或重命名的元素,请指定可选的 PEG 限定版本:
-r25 http://example.com/repos/zig@42 foo/bar
URL 可以是完整的 URL 路径,也可以是使用以下开头的相对 URL 路径:
  • ../ : 相对要提取外部定义目录的父目录
  • ^/ : 相对版本库根
  • / : 相对服务器根
  • // : 相对于 URL 方案(如 httphttpssvnsvn+ssh
  • ^/../ : 相对于同一个 SVNParentPath 位置下的同级存储库
不鼓励使用以下格式,但它支持与 Subversion 1.4 和更早版本的客户端进行互操作:
LOCALPATH [-r PEG] URL
含义歧义的格式 “relative_path relative_path” 会被视作 “relative_url relative_path” 并支持 PEG 限定版本。
以 “#” 字符开头的行将被忽略。
有效选项:  
-F [--file] ARG : 从文件 ARG 读取属性值
--encoding ARG : 指定属性值的字符编码 ARG
-q [--quiet] : 不输出或仅输出概要信息
-r [--revision] ARG : 指定版本 ARG (一些命令也接受 ARG1:ARG2 格式的版本范围),版本参数可以是如下之一:
  • NUMBER 版本号
  • '{' DATE '}' 在指定时间以后的版本
  • 'HEAD' 版本库中的最新版本
  • 'BASE' 工作副本的基准版本
  • 'COMMITTED' 最后提交的版本或基准版本之前的版本
  • 'PREV' 最后提交版本 COMMITTED 的前一版本
--targets ARG : 将文件 ARG 的内容作为附加参数
-R [--recursive] : 向下递归操作各级路径项,与 --depth=infinity 相同
--depth ARG : 限制输出深度为 ARG (empty, files, immediates, 或 infinity)
--revprop ARG : 对版本属性进行操作(与 -r 一起使用)
--force : 强制运行操作
--changelist [--cl] ARG : 仅操作修改列表 ARG 的成员路径