Получить имя автора файла, который фиксируется в SVN

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

Приведенные ниже команды используются для получения сведений только о зафиксированных файлах, а не о файле, который фиксируется.

  1. Информация SVN "Repos_Path"
  2. автор svnlook "repos_path"

Я даже не могу получить номер версии для файла, который фиксируется. Если я могу получить номер редакции, то я могу получить и имя автора.

Итак, есть ли способ получить имя автора или номер версии файла, который фиксируется?


person Kathir Subramaniam    schedule 22.03.2016    source источник


Ответы (2)


Прежде всего, вы должны прочитать SVNBook | Реализация хуков репозитория. Раздел должен отвечать на все ваши вопросы. Прочтите внимательно, пожалуйста.

В сценариях ловушек вы должны использовать команду svnlook author. Сценарий ловушки перед фиксацией передает идентификатор транзакции (TXN-NAME) в качестве параметра %2 и путь к репозиторию в качестве параметра %1. Поэтому, чтобы поймать имя автора транзакции, которую нужно зафиксировать, используйте команду svnlook author "%1" --transaction %2.

Прочитайте SVNBook!

Изменить:

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

Если вы просто хотите проверить команду, используйте --revision вместо --transaction. Например, запустите команду svnlook author <REPOS-PATH> --revision REVNUM. REVNUM = любой номер версии в репозитории по адресу .

person bahrep    schedule 22.03.2016
comment
@KathirSubramaniam, вы должны выяснить, почему это не работает. - person bahrep; 22.03.2016
comment
Он не показывает никаких исключений и не дает никакого вывода. поэтому я не могу исследовать первопричину. - person Kathir Subramaniam; 22.03.2016
comment
@KathirSubramaniam Нет, ты можешь. Я собираюсь обновить ответ. - person bahrep; 22.03.2016

Вместо того, чтобы писать код в pre-commit, я написал код в хуке start-commit. В котором мы можем получить четыре аргумента, как показано ниже:

   [1] REPOS-PATH   (the path to this repository)
   [2] USER         (the authenticated user attempting to commit)
   [3] CAPABILITIES (a colon-separated list of capabilities reported
                     by the client; see note below)
   [4] TXN-NAME     (the name of the commit txn just created

Наконец, я получил этот самый простой ответ.

person Kathir Subramaniam    schedule 22.03.2016