Question

I'm working on several repositories at work and would like to be informed, if anything changes in the SVN repositories.

I made a small BAT script (yes, BAT is useful sometimes) that keeps executing an svn log -r BASE:HEAD on my working copy. It shows all submit comments and revision dates. It works really well, but it's not comfortable for different repositories.

How do you keep track of changes in your repositories? Do you use a small program you made for yourself? Do you use software someone else made? I'm interested in every approach to this problem.

I would like to get notifications and more information about the commit. The IDE integrated functions are good, but work only if I request the information.
I don't want to act to get this information.

Platform: Windows, Subversion 1.5 and higher.

Was it helpful?

Solution

I'm using CommitMonitor; it's from one of the TortoiseSVN developers. You can easily add several SVN URLs to monitor and specify an interval to check for commits. If any updates are found, it shows a little popup windows in the corner of the screen.

There is also SVN Monitor, but that is a bit more complicated to use and setup. Besides giving a message on commits, it can also show you which files you have modified and remind you to commit your changes.

OTHER TIPS

If you have TortoiseSVN installed, then you could use SVN Notifier.

I have WebSVN installed and subscribe to RSS feeds of the paths I'm interested in.

I use PowerShell to detect changes on an SVN branch and deploy. This script should be called from Task Scheduler and executed from the SVN root (or you can simply loop and sleep forever):

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..." }

This is far easier and portable than using any of the above mentioned third-party applications.

svn info | grep Revision works for me. It shows, for example:

Revision: 183

If it's changed from what I think it should, then I investigate further.

I use

svn status --show-updates

to show you which files I've changed as well as those files which have changed in the repository.

You could use Subversion's hook scripts to set up notifications.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top