4

i m using subversion (Xcode) to commit my files , i would like to add my svn info on all my file headers - please let me know is any other script available to do this ?

Like

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
Karthikeyan
  • 1,790
  • 12
  • 19

2 Answers2

4

Shell-fu to the rescue...

I don't know what 'Node Kind' and 'Schedule' are, but do the following:

Put the following in a shell script, call it insert_header.sh for argument's sake:

#!/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

Open a Terminal session.

Make the file executable with chmod +x insert_header.sh and put it in your PATH, or run it with its relative path (see below).

Then, run the following command in your source checkout directory (e.g. if you want to change files with extension .cpp):

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

Run svn status, and expect to see all the changed files with the following 'MM' status code:

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

If you don't like the changes, revert with svn revert -R ., otherwise svn commit -m "+1 for opyate ;-)"

PS I tried it with a dummy project, and it ended up looking like this, which is normal:

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
opyate
  • 5,388
  • 1
  • 37
  • 64
3

SVN Keywords should do exactly what you want

RyanR
  • 7,728
  • 1
  • 25
  • 39
  • @Thanks Ryan , exactly is that possible to add in all my xcode files – Karthikeyan Jun 27 '11 at 17:36
  • You could write an Applescript to add that to all your existing source files. I haven't found a reliable way to change the template for new files in XCode 4 yet. – RyanR Jun 27 '11 at 18:13