Subversion:如何在所有xcode源文件中添加svn:keywords?

时间:2011-06-27 16:26:09

标签: xcode svn xcode3.2

我使用subversion(Xcode)提交我的文件,我想在我的所有文件头上添加我的svn信息 - 请告诉我是否有其他可用的脚本?

喜欢

Node Kind: directory
Schedule: normal
Last Changed Author: karthikeyan
Last Changed Rev: 9
Last Changed Date: 2011-06-21 23:55:20 +0530 (Tue, 21 Jun 2011)

#import "TestController.h"
@implementation TestController

2 个答案:

答案 0 :(得分:4)

Shell-fu救援......

我不知道'Node Kind'和'Schedule'是什么,但请执行以下操作:

将以下内容放在shell脚本中,为了参数的目的将其称为insert_header.sh

#!/bin/bash

FILE=$1

sed '1s:^:\
:
1i\
Node Kind: directory
1i\
Schedule: normal
1i\
Last Changed Author: $Author$
1i\
Last Changed Rev: $Rev$
1i\
Last Changed Date: $LastChangedDate$
' $FILE > $FILE.somerandombackupextension

mv $FILE.somerandombackupextension $FILE

打开终端会话。

使用chmod +x insert_header.sh使文件可执行并将其放在PATH中,或者使用其相对路径运行它(见下文)。

然后,在源检出目录中运行以下命令(例如,如果要更改扩展名为.cpp的文件):

find . -name \*.cpp -exec insert_header.sh {} \; -exec svn propset svn:keywords "Author Rev LastChangedDate" {} \;

运行svn status,并期望使用以下“MM”状态代码查看所有已更改的文件:

MM      path/to/file1.cpp
MM      path/to/file2.cpp

如果您不喜欢这些更改,请使用svn revert -R .还原,否则svn commit -m "+1 for opyate ;-)"

PS我尝试了一个虚拟项目,结果看起来像这样,这是正常的:

Node Kind: directory
Schedule: normal
Last Changed Author: $Author: opyate $
Last Changed Rev: $Rev: 2 $
Last Changed Date: $LastChangedDate: 2011-06-30 23:20:33 +0100 (Thu, 30 Jun 2011) $

...the rest of my file

答案 1 :(得分:3)

SVN Keywords应该完全按照您的意愿完成