Подрывная деятельность: Добавьте данные пересмотра к файлу кода на фиксации

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

Я вижу, что существует способ использовать свойства подрывной деятельности для достижения чего-то подобного, но я не вижу, как получить фактический комментарий фиксации в файл, и также я не вижу, как сохранить синхронный журнал, который имеет всю историю пересмотра в противоположность просто последней информации о фиксации.

Я лично не думаю, что это - хорошая идея, поскольку файл кода должен просто иметь код в нем, но к сожалению это - требование для моего текущего проекта.

19
задан Mike Gates 5 January 2010 в 20:34
поделиться

6 ответов

Я бы предложил использовать вместо этого CVS . В него встроена эта возможность. CVS около 24 лет. Звучит так, как будто ваши требования к документации, возможно, относятся к эпохе, когда контроль версий не был обычным явлением, так что вам, вероятно, лучше использовать инструмент, который был создан в ту эпоху.

.
2
ответ дан 30 November 2019 в 04:24
поделиться

Мы используем $Revision: 9584 $ в некоторых наших исходных файлах, и эта ревизия обновляется каждый раз, когда изменяется ревизия этого конкретного файла. Но я уверен, что вы имели в виду что-то другое.

0
ответ дан 30 November 2019 в 04:24
поделиться
[

] Я знаю, что это не тот ответ, который вы ищете, но я бы попытался отговорить их от этого.[

] [

] Лучше всего было бы использовать подстановку ключевых слов, но SVN не предоставляет []$Log$[] ключевое слово по уважительным причинам (см. []http://subversion.tigris.org/faq.html#log-in-source[]), что является той же самой причиной, по которой я бы использовал для аргументации против наличия лога в коде. [

]
5
ответ дан 30 November 2019 в 04:24
поделиться
[
] [

] Я вижу, что есть способ использовать подрывную деятельность. свойства для достижения чего-либо похожий, но я не понимаю, как получить комментарий фактического коммита в файл, а также я не вижу, как хранить бегущий журнал, в котором есть весь история изменений в противовес простому информацию о последнем коммите.[

] [
] [

]Вам не нужен комментарий к коммиту в вашем файле. В конце концов, для этого и нужен []svn log[]. [

]
1
ответ дан 30 November 2019 в 04:24
поделиться

Subversion поддерживает различные ключевые слова, такие как $Id$, $Author$, $Revision$ и так далее. Для их использования необходимо установить свойство svn:keywords соответственно. Однако, вы не можете вставить комментарий коммита, как это делает $Log$. Смотрите FAQ subversion о причинах этого, и я могу согласиться только с приведенными там причинами. Помещение комментариев фиксации в файл просто нарушено, и любой такой комментарий ошибочен в тот момент, когда вы не можете проверить его по репозиторию.

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

Пожалуйста, не спорьте, что что-то подобное является "требованием для проекта". Если выпущенный код должен включать историю изменений, вы можете довольно легко добавить эту историю при создании релиза с помощью какого-нибудь вспомогательного скрипта. По крайней мере, диверсия просто не поддерживает его. И я бы настоятельно отказался от попыток достичь этого с помощью крючка для предварительной коммитации. Крючки для коммитов должны никогда не изменять данные, которые будут коммитированы.

18
ответ дан 30 November 2019 в 04:24
поделиться

Кроме того, как вы сами говорите, будучи глупой идеей, я не могу придумать простой способ сделать это с помощью бортовых методов SVN. После проверки (или обновления) каждого файла по скрипту вы должны будете пройтись по каждому файлу, определить блок "change log" в этом файле и обновить этот блок выводом svn log. Это можно сделать, но это будет большая работа, вам придется следить за каждой рабочей копией на предмет изменений, и это очень ресурсоемко.

В остальном, возможно, лучше всего работать с крючком, но манипулирование файлами внутри репозитория вне контекста ревизии звучит ужасно, если это вообще возможно.

0
ответ дан 30 November 2019 в 04:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: