Добавить файл с номером ревизии при фиксации в SVN - PullRequest
2 голосов
/ 09 февраля 2012

Я не уверен, что это может быть реализовано с Subversion, но есть ли способ добавить файл с номером ревизии при коммите?

  • Имя файла: revision.txt
  • Будет только одна строка: номер редакции
  • Если существует, обновить с новым номером редакции

UPDATE:

ОК, я добавил эту опцию в свою конфигурацию SVN

[auto-props]
enable-auto-props = yes
*.php = svn:keywords=Id

Вот файл, который я проверяю с помощью SVN (командная строка)

<?php
/**
 * $Id$
 */
?>
$Id$

Глядя в хранилище, я вижу только код выше, а не номер ревизии.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012
0 голосов
/ 10 февраля 2012

Введение

Если вы хотите иметь глобальный номер редакции для хранилища, вы получаете неправильное решение и реализуете даже это плохое решение неоптимальным способом

Face

  • Максимальный идентификатор редакции для хранилища всегда доступен внутри Рабочей копии без дополнительных уловок.
$svn info .

...

Revision: 9012
Node Kind: directory

...

Last Changed Rev: 5381

...

или

$ svnversion

9012

  • Редакция файла (которая отличается от репо-ревизии) может быть получена с чистым ключевым словом $ Revision $
  • Редакция файла - это локальное свойство, не связанное с ревизиями репозитория, показывать только когда этот файл был изменен в последний раз , вам нужно менять файл revisions.txt на каждый коммит в вашем рабочем процессе
  • Я не вижу причин для использования 1. auto-props 2. для всех php-файлов. Если вы хотите иметь ключевое слово svn: в одном файле, вы можете добавить ключевое слово в этот файл (revisions.txt) и svn propset для этого и только для этого файла
  • svn: ключевое слово будет расширено до его значения внутри рабочей копии , все обозреватели репо покажут исходный текст без расширения (вы можете извлечь указанный файл и просмотреть все используемые ключевые слова приятно расширяется)
  • В конце концов, если вы хотите предоставить 1. номер редакции 2. репозитория 3. для неверсионной копии ваших источников (потому что для версионного WC у нас уже есть), вы можете подумать о каком-то типе системы сборки, которая, кроме 'svn export', создайте необходимый файл с запрашиваемыми данными внутри экспортированного дерева исходных текстов . Какие инструменты (и техника) использовать зависят от ОС (и вопрос о доступных инструментах): SubWCRev в Windows (часть TSVN) работает хорошо, порт и эквивалент в Tux-мире также существуют. Общее - у вас есть версионный файл-шаблон, который (как часть процесса сборки) преобразуется в файл с актуальными свежими данными, когда вы готовите неверсионный пакет. Таким образом, я получаю команду svn.exe export ... z:\trunk$WCDATE=%Y%m%d$-r$WCREV$ pattern для экспорта в уникальное dir-имя и тот же шаблон WCDATE в текстовом файле, заменяемый читаемыми и информативными данными, $WCDATE=%Y%m%d$-r$WCREV$ был 20120122-r1143 не позднее совершить
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...