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