Subversion: Как добавить ключевые слова svn: во все исходные файлы xcode? - PullRequest
4 голосов
/ 27 июня 2011

Я использую 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 ]

4 голосов
/ 01 июля 2011

Shell-фу на помощь ...

Я не знаю, что такое «Node Kind» и «Schedule», но делаю следующее:

Поместите в сценарий оболочки следующее, для аргумента назовите его 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      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
3 голосов
/ 27 июня 2011

Ключевые слова SVN должны делать именно то, что вы хотите

...