| 5286 |
dpurdie |
1 |
# This script will:
|
|
|
2 |
# Locate all synced repos on this machine
|
|
|
3 |
# Report on diffs between versions on master and this machine
|
|
|
4 |
#
|
|
|
5 |
#
|
|
|
6 |
|
|
|
7 |
$RepoList = @()
|
|
|
8 |
$Masters = @{}
|
|
|
9 |
$MasterData = @{}
|
|
|
10 |
|
|
|
11 |
# Scan local repo Detecting masters
|
|
|
12 |
# Slurp in all data about all the Repos on Master servers
|
|
|
13 |
# Its quicker than accessing them one at a time
|
|
|
14 |
#
|
|
|
15 |
Get-CimInstance -Namespace "root\VisualSVN" -ClassName VisualSVN_Repository | ForEach-Object {
|
|
|
16 |
|
|
|
17 |
# Only process Slave VFDS repos
|
|
|
18 |
# Type of repository: 0 - FSFS, 1 - VDFS (master), 2 - VDFS (slave)
|
|
|
19 |
#
|
|
|
20 |
if ( $_.type -eq "2" )
|
|
|
21 |
{
|
|
|
22 |
$entry = @{}
|
|
|
23 |
$entry.Add( 'Repo', $_.Name)
|
|
|
24 |
$masterServer = $_.MasterServer
|
|
|
25 |
$entry.Add('Master', $masterServer)
|
|
|
26 |
|
|
|
27 |
if ( -not $Masters.ContainsKey($masterServer)) {
|
|
|
28 |
$Masters.Add($masterServer, 1)
|
|
|
29 |
Get-CimInstance -ComputerName $MasterServer -Namespace root\VisualSVN -ClassName VisualSVN_Repository | ForEach-Object {
|
|
|
30 |
|
|
|
31 |
$mName = $masterServer + $_.Name
|
|
|
32 |
$MasterData.Add($mName, $_)
|
|
|
33 |
}
|
|
|
34 |
|
|
|
35 |
}
|
|
|
36 |
$RepoList += $_
|
|
|
37 |
}
|
|
|
38 |
}
|
|
|
39 |
|
|
|
40 |
# Generate output
|
|
|
41 |
foreach ($repo in $RepoList.GetEnumerator() | Sort-Object {$_.Name}) {
|
|
|
42 |
$MasterServer = $repo.MasterServer
|
|
|
43 |
$MasterName = $repo.MasterRepository
|
|
|
44 |
$SlaveRevNo = $repo.TotalRevisions
|
|
|
45 |
|
|
|
46 |
#
|
|
|
47 |
# Get data from Master
|
|
|
48 |
#
|
|
|
49 |
#Write-Host "MasterServer: $MasterServer"
|
|
|
50 |
$mName = $MasterServer + $MasterName
|
|
|
51 |
$master = $MasterData.Item($mName)
|
|
|
52 |
$MasterRevNo = $master.TotalRevisions
|
|
|
53 |
|
|
|
54 |
$diff = $MasterRevNo - $SlaveRevNo
|
|
|
55 |
$DiffStr = ""
|
|
|
56 |
if ($diff -ne 0 ) { $DiffStr = " - $diff version to go" }
|
|
|
57 |
|
|
|
58 |
Write-Host ("{4,20} {0,20} {1,10} {2,10} {3}" -f $repo.name, $MasterRevNo, $SlaveRevNo, $DiffStr, $MasterServer)
|
|
|
59 |
|
|
|
60 |
}
|
|
|
61 |
|