Как вы получаете уведомления об обновлениях вашего хранилища? - PullRequest
22 голосов
/ 17 февраля 2010

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

Я создал небольшой BAT-скрипт (да, иногда BAT полезен), который продолжает выполнять svn log -r BASE:HEAD для моей рабочей копии. Он показывает все комментарии и даты пересмотра. Работает очень хорошо, но не удобно для разных репозиториев.

Как вы отслеживаете изменения в своих репозиториях? Используете ли вы небольшую программу, которую вы сделали для себя? Используете ли вы программное обеспечение, сделанное кем-то другим? Меня интересует каждый подход к этой проблеме.

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

Платформа: Windows, Subversion 1.5 и выше.

Ответы [ 7 ]

31 голосов
/ 17 февраля 2010

Я использую CommitMonitor ; это от одного из разработчиков TortoiseSVN . Вы можете легко добавить несколько SVN-URL для отслеживания и указать интервал проверки коммитов. Если какие-либо обновления найдены, в углу экрана отображаются маленькие всплывающие окна.

Существует также SVN Monitor , но это немного сложнее в использовании и настройке. Помимо сообщения о коммитах, он также может показать вам, какие файлы вы изменили, и напомнить вам о необходимости внесения изменений.

5 голосов
/ 17 февраля 2010

Если у вас установлено TortoiseSVN , вы можете использовать Уведомление SVN .

2 голосов
/ 17 февраля 2010

У меня WebSVN установлено и подписка на RSS-каналы интересующих меня путей.

1 голос
/ 24 марта 2015

Я использую PowerShell для обнаружения изменений в ветви SVN и развертывания. Этот скрипт должен вызываться из 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"; $status=@{} }

if-changed trunk { "Deploying trunk..." }

Это намного проще и портативнее, чем использование любого из вышеупомянутых сторонних приложений.

1 голос
0 голосов
/ 17 февраля 2010

Я использую

svn status --show-updates

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

Вы можете использовать скрипты хуков Subversion для настройки уведомлений.

0 голосов
/ 17 февраля 2010

svn info | grep Revision у меня работает.Например, он показывает:

Revision: 183

Если он изменился по сравнению с тем, что, на мой взгляд, должен, я продолжу расследование.

...