Добавить комментарий к subversion без изменения файла?
Я хотел бы добавить комментарий к журналу subversion или истории для данного файла, но с этим файлом нет никаких изменений.
есть ли способ добавить или ввести комментарий в журнал svn без фактического изменения файла.
Я ищу способ просто пометить файл в журнале после некоторого события, например, обзора кода.
Я не хочу делать копию svn для создания новой ветви. Я просто хочу комментарий, связанный с a один файл в определенный момент времени.
какие тут предложения?
2 ответов
вы можете установить / изменить определяемое пользователем свойство в файле, который должен быть зафиксирован, т. е. изменить только некоторые метаданные, не вызывая побочных эффектов.
svn propset my:log reason filename
svn commit filename
в Subversion, есть два типа свойств:
- Свойства Файла: это свойства, связанные с файлом. Они пересматриваются, как будто они являются частью самого файла.
- Свойства Ревизии: это свойства, связанные с индивидуальными изменениями. Для каждой ревизии может быть только один тип свойства. Они не являются версионными, поэтому изменение свойства ревизии потеряет исторический информация о старой информации. В качестве меры предосторожности вы не можете изменить свойство ревизии без предварительного создания крючка pre-revprop-change, который позволяет это сделать.
кроме того, есть три специальных свойства ревизии, связанные с каждой ревизией, которые являются довольно важными:
-
svn:log
: это сообщение фиксации -
svn:date
: это дата и время фиксации сделанный. -
svn:author
: это пользователь, который сделал коммит.
Итак, вопрос в том, что вы пытаетесь сделать. Если вы хотите добавить комментарий к файлу, вы можете добавить свойство файла в этот файл. Однако это считается изменением файла, поэтому вам придется сделать проверку,svn pset
а затем фиксация, которая создает новую ревизию в этом файле.
если вы хотите добавить новый комментарий к определенной ревизии в репозитории, вы для этого не нужно создавать новую редакцию. Однако, вам придется создать pre-revprop-commit
файл крючка, который позволяет вам вносить эти изменения. У вас есть два способа сделать это:
-
изменить
svn:log
С вашим комментарием это, вероятно, самый простой способ. Однако изменения в сообщениях фиксации не регистрируются, поэтому вы теряете исходное сообщение фиксации в процессе. Преимущество в том, что этот комментарий будет отображаться автоматически с .
например:
$ old_comment=$(svn pget -r 100 -revprop svn:log http://myhost/svn/repos)
$ new_comment="$old_comment
> ================ COMMENT ON REVISION ================
> This was a change needed for a particular customer"
$ svn pset -r 100 --revprop svn:log "$new_comment"
- можно также создать новое свойство ревизии, содержащее комментарии. Например
corp:comment
(я используюcorp
для обозначения особых свойств, связанных с моей компанией). Вы можете отобразить эти комментарииsvn log
сообщение, но только в формате XML.
например:
$ svn pset --revprop -r 100 foo:comment "This was a change needed for a particular customer" http://host/svn/repos
теперь, когда вы делаете свой журнал, вы можете увидеть этот комментарий:
$ svn log --with-revprop foo:comment --xml -r 100 http://host/svn/repos
<?xml version="1.0"?>
<log>
<logentry
revision="100">
<revprops>
<property
name="foo:comment">This was a change needed for a particular customer</property>
</revprops>
</logentry>
</log>