SVN自动属性设置

问题提出:
我们在用svn管理代码时候,有时候我们需要在java代码里添加上该文件的版本信息、最后修改日期、最后修改用户等信息。
而这个又不能每次把文件提交到svn上时,更改这些信息。
解决方法:
幸好svn有一个自动属性的功能,即给给该文件添加一些属性,比如svn:keywords,添加该文件的关键字,这样在该文件内容里就会识别该关键字,而把关键字的地方替换成svn服务器上的相应属性。
比如:

  1.     我现在在svn控制目录下创建一个文件”自动属性.txt”
  2. 往里面添加内容为:
    txt代码
    1. $Id$
    2. $Date$
  3. 把该文件添加到svn版本控制中(add,commit),此时txt中的内容还是:
    txt代码
    1. $Id$
    2. $Date$
  4. 点击自动属性.txt的属性 ,弹出属性的对话框。在subversion选项卡上选择properties,添加一个svn:keywords属性:LastChangedDate LastChangedRevision
    Id Date  各属性之间用空格隔开。
  5. 把“自动属性.txt”再commit到服务上去,这时“自动属性.txt”的文件内容就添加了svn服务器上的相应属性(注“自动属性.txt”的的编码必须为utf-8,否则中文会出现乱码)
    txt代码
    1. $Id: 自动属性.txt 2543 2007-12-28 06:52:06Z chen_xk $
    2. $Date: 2007-12-28 14:52:06 +0800 (星期五, 28 十二月 2007) $
  6. 但是这样必须每次要往svn服务器添加一个文件时,都要设置该文件的属性,有没有一个全部设置的方法,后来终于发现在一个方法: 修改C:\Documents and Settings\Administrator\Application Data\Subversion\config文件,Administrator是windows用户名,添加(注:#表示注释,该把#去掉)
    txt代码
    1. enable-auto-props = yes
    2. [auto-props]
    3. *.php = svn:keywords=Date Rev Id
    4. *.txt = svn:keywords=LastChangedDate LastChangedRevision
  7. 这样就大功告成。