Как вы получаете уведомление о ваших обновлениях репозитория?
Я работаю над несколькими хранилищами на работе и хотел бы получить информацию, если что-то изменится в репозиториях SVN.
Я сделал небольшой BAT script (да, BAT иногда полезен), который продолжает выполнять svn log -r BASE:HEAD
в моей рабочей копии. В нем показаны все комментарии и даты пересмотра. Он работает очень хорошо, но это не удобно для разных репозиториев.
Как вы отслеживаете изменения в своих репозиториях? Вы используете небольшую программу, которую вы сделали для себя? Используете ли вы другое программное обеспечение?
Меня интересует каждый подход к этой проблеме.
Я хотел бы получить уведомления и дополнительную информацию о фиксации. Интегрированные функции IDE хороши, но работают, только если я запрашиваю информацию.
Я не хочу действовать, чтобы получить эту информацию.
Платформа: Windows, Subversion 1.5 и выше.
Ответы
Ответ 1
Я использую CommitMonitor; это из одного из разработчиков TortoiseSVN. Вы можете легко добавить несколько URL-адресов SVN для контроля и указать интервал для проверки на наличие коммитов. Если обнаружены какие-либо обновления, в углу экрана отображается небольшое количество всплывающих окон.
Существует также SVN Monitor, но это немного сложнее в использовании и настройке. Помимо предоставления сообщения о коммитах, он также может показать вам, какие файлы вы изменили и напомнить вам о внесении изменений.
Ответ 2
Если у вас установлена TortoiseSVN, вы можете использовать Уведомление SVN.
Ответ 3
У меня WebSVN установлен и подписаться на RSS-каналы интересующих вас путей.
Ответ 4
Email. Пример Связью post-commit SVN для отправки электронной почты можно найти в самой subversion.
Ответ 5
Я использую PowerShell для обнаружения изменений в ветке SVN и развертывания. Этот script должен быть вызван из Task Scheduler и выполнен из корня SVN (или вы можете просто петли и спать навсегда):
function get-revision() {
$rev = svn info 2>&1 | sls '^Last Changed Rev:' | out-string
$rev = $rev -split ':'
$rev[1].Trim()
}
function if-changed([string]$branch, [scriptblock]$script) {
Write-Verbose "Checking for changes: $branch"
pushd $branch
$r = get-revision
if ($r -gt $status[$branch]) {
Write-Verbose "|- '$branch' changed, revision $r"
& $script
}
else { Write-Verbose "|- '$branch' is up to date at revision $r" }
$status[$branch] = $r
popd
}
svn update
Write-Verbose "Getting the deploy status"
if (Test-Path status) { $status = Import-Clixml status } else { Write-Verbose "|- No status found"; [email protected]{} }
if-changed trunk { "Deploying trunk..." }
Это намного проще и переносимо, чем использование любого из вышеупомянутых сторонних приложений.
Ответ 6
svn info | grep Revision
работает для меня. Он показывает, например:
Revision: 183
Если он изменится с того, что, как мне кажется, он должен, тогда я буду исследовать дальше.
Ответ 7
Я использую
svn status --show-updates
чтобы показать вам, какие файлы я изменил, а также те файлы, которые были изменены в репозитории.
Для настройки уведомлений вы можете использовать скрипты крюка Subversion.