Blame | Last modification | View Log | RSS feed
# This script will:# Locate all synced repos on this machine# Report on diffs between versions on master and this machine##$RepoList = @()$Masters = @{}$MasterData = @{}# Scan local repo Detecting masters# Slurp in all data about all the Repos on Master servers# Its quicker than accessing them one at a time#Get-CimInstance -Namespace "root\VisualSVN" -ClassName VisualSVN_Repository | ForEach-Object {# Only process Slave VFDS repos# Type of repository: 0 - FSFS, 1 - VDFS (master), 2 - VDFS (slave)#if ( $_.type -eq "2" ){$entry = @{}$entry.Add( 'Repo', $_.Name)$masterServer = $_.MasterServer$entry.Add('Master', $masterServer)if ( -not $Masters.ContainsKey($masterServer)) {$Masters.Add($masterServer, 1)Get-CimInstance -ComputerName $MasterServer -Namespace root\VisualSVN -ClassName VisualSVN_Repository | ForEach-Object {$mName = $masterServer + $_.Name$MasterData.Add($mName, $_)}}$RepoList += $_}}# Generate outputforeach ($repo in $RepoList.GetEnumerator() | Sort-Object {$_.Name}) {$MasterServer = $repo.MasterServer$MasterName = $repo.MasterRepository$SlaveRevNo = $repo.TotalRevisions## Get data from Master##Write-Host "MasterServer: $MasterServer"$mName = $MasterServer + $MasterName$master = $MasterData.Item($mName)$MasterRevNo = $master.TotalRevisions$diff = $MasterRevNo - $SlaveRevNo$DiffStr = ""if ($diff -ne 0 ) { $DiffStr = " - $diff version to go" }Write-Host ("{4,20} {0,20} {1,10} {2,10} {3}" -f $repo.name, $MasterRevNo, $SlaveRevNo, $DiffStr, $MasterServer)}