Добавить комментарий к 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>