Какие-либо системы управления версиями, которые допускают использование пользовательских ключевых слов $? - PullRequest
1 голос
/ 01 апреля 2009

Мне было интересно, существуют ли какие-либо системы контроля версий, которые позволяют администраторам определять настраиваемые ключевые слова, которые заменяются при регистрации другим поведением (т.е. аналогично $ Id $ или $ Author $ и т.

Я знаком только с SVN и CVS, в которых есть список ключевых слов, но есть приложения для чего-то вроде $ LineNo $ или $ MyLicenceText $. Я уверен, что были бы другие варианты использования. Идея состоит в том, чтобы создать архитектуру плагинов, в которой поведение ключевого слова может быть определено или изменено.

Итак, мой вопрос - есть ли инструмент (коммерческий или с открытым исходным кодом), который уже имеет что-то подобное?

Редактировать: Выполнение этого как части сборки является допустимым способом решения проблемы, однако может привести к проблемам, если разработчик не выполнил сборку до регистрации. Представьте себе что-то вроде $ LineNo $, если сборка не была синхронизирована с источником точно, значение могло бы быть легко неправильным. Для ключевых слов с более статичным поведением, хотя (например, $ MyLicenceText $) замена на сборку является допустимым решением.

Ответы [ 3 ]

2 голосов
/ 01 апреля 2009

Вы можете посмотреть атрибут filter, который можно установить с помощью файла .gitattributes в Git . Это позволяет вам определить два преобразования, известные как smudge и clean , которые позволяют преобразовывать файл любым произвольным образом при его извлечении и преобразовывать его снова при возврате в файл. .

0 голосов
/ 02 апреля 2009

Почему вы не используете триггер? Разве это не сработает?

Что-то вроде предварительной проверки (или предварительного обновления, в зависимости от жаргона) и предварительной проверки?

0 голосов
/ 01 апреля 2009

Как сказал Брайан выше для Git, Subversion также позволит вам делать хуки до / после коммита, которые могли бы заменить $ Ключевые слова этой формы $. Я думаю, что проблема в мире SVN состоит в том, что вы действительно не должны изменять файлы.

Вот что предупреждает книга SVN:

Хотя сценарии подключения могут выполнять практически все, есть одно измерение, в котором авторы сценариев подключения должны проявлять сдержанность: не изменять транзакцию фиксации с использованием сценариев подключения. Хотя может быть соблазнительно использовать скрипты ловушек для автоматического исправления ошибок, недостатков или нарушений политики, присутствующих в файлах, которые фиксируются, это может вызвать проблемы. Subversion хранит кэши на стороне клиента определенных битов данных репозитория, и если вы измените транзакцию фиксации таким образом, эти кэши станут безнадежно устаревшими. Это несоответствие может привести к неожиданному и неожиданному поведению. Вместо изменения транзакции вы должны просто проверить транзакцию в хуке предварительной фиксации и отклонить фиксацию, если она не соответствует требуемым требованиям. В качестве бонуса ваши пользователи узнают ценность осторожных, ориентированных на соблюдение рабочих привычек.

Есть ли причина, по которой вы не можете сделать это во время процесса сборки с помощью Ant или Maven?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...