Применять автоматические реквизиты subversion к определенному файлу при каждом коммите

Можно ли применять автоматические реквизиты subversion при каждой фиксации определенного файла (даже если он не изменен)?

Причина, по которой я спрашиваю, заключается в том, что я работаю над приложением, которое содержит строку версии в одном исходном файле (фактически константа), которую я хотел бы обновлять при каждой фиксации, чтобы версия и дата автоматически обновлялись.

Этот файл большую часть времени не изменяется, так как он содержит только информацию о версии! Я прошу способ применить ключевые слова svn к этому определенному файлу при каждом коммите.

Спасибо за ответы до сих пор, но ни поиск SE, ни чтение руководства мне пока не помогли. Решение, которое я использую в настоящее время, представляет собой пользовательский сценарий фиксации, который содержится в репозитории, и программисты должны использовать его для фиксации (он просто оборачивает svn commit и изменяет один бит в комментарии в файле, который нужно обновить). Есть ли лучший способ сделать это?


person scravy    schedule 07.02.2012    source источник


Ответы (2)


Вот конкретная документация по ключевым словам< /а>.

Давайте представим, что у нас уже есть файл a в системе контроля версий:

test zacharyyoung$ ls -l
-rw-r--r--   1 zacharyyoung  staff    64 Feb  7 20:39 a

Мы собираемся добавить ключевые слова $Rev$ и $Date$ в файл.

test zacharyyoung$ echo '$Date$' > test/a
test zacharyyoung$ echo '$Rev$' >> test/a
test zacharyyoung$ cat test/a
$Date$
$Rev$

Сообщите SVN, какие ключевые слова нужно знать, чтобы найти и заменить, и зафиксировать:

test zacharyyoung$ svn propset svn:keywords "Date Rev" a
property 'svn:keywords' set on 'a'
test zacharyyoung$ svn ci a -m "1. Added keywords."
Sending        a

Committed revision 2.

После фиксации a проверяем его содержимое:

test zacharyyoung$ cat a
$Date: 2012-02-07 20:39:42 -0800 (Tue, 07 Feb 2012) $
$Rev: 2 $

Теперь добавим в a еще одну строку, зафиксируем и еще раз проверим ее содержимое:

test zacharyyoung$ echo Another line >> a
test zacharyyoung$ svn ci a -m "1. Added another line."
Sending        a
Transmitting file data .
Committed revision 3.
test zacharyyoung$ cat a
$Date: 2012-02-07 20:46:11 -0800 (Tue, 07 Feb 2012) $
$Rev: 3 $
Another line
person Zach Young    schedule 08.02.2012

Прочитайте или выполните поиск здесь о Ключевых словах SVN

person Lazy Badger    schedule 08.02.2012