/ Published in: Windows PowerShell
Compares two TFS paths after $startdate and returns a list of files that are different.
First section outputs owner, changeset, servername that are only on the Left side.
The second outputs owner, changeset L&R, servername for files that are different. Constrained to files where the Left side change date is after the right side change date.
First section outputs owner, changeset, servername that are only on the Left side.
The second outputs owner, changeset L&R, servername for files that are different. Constrained to files where the Left side change date is after the right side change date.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
Add-pssnapin microsoft.teamfoundation.powershell #snapin from http://pstfs.codeplex.com/ add-pssnapin ServerTFSPSSnapIn cls ; #variables $destPath = "$env:USERPROFILE\My Documents\_Development\TFS_Scripts\LeftOnly.txt" $TFserver = "localhost" $serverpathL = "$/Data Warehouse/D4.0" $serverpathR = "$/Data Warehouse/D5.0" [datetime]$startDate = "1/1/2011" $tfs = get-tfsServer $TFserver #Left only Files (Basically the same logic for RightOnly) if (test-path $DestPath) {del $DestPath} $left = $item | select information,DateCheckInL, TypeDiff, ItemL |?{$_.TypeDiff -eq 'LeftOnly'} |sort DateCheckInL -descending "Owner`tChangeSetID`tDateCheckedIn`tServerItem"|set-content $DestPath foreach($l in $left) { $serverItem = $l.Information $DateCheckedIn = ($l.DateCheckInL).tostring() $ChangeSetID = $L.ItemL.ChangeSetID $owner = (get-tfsItemhistory $serverItem -server $tfServer -stopafter 1).Owner "$owner`t$ChangeSetID`t$DateCheckedIn`t$serverItem"|add-content $DestPath } #get-content $DestPath #Diff Files $destPath = "$env:USERPROFILE\My Documents\_Development\TFS_Scripts\Diff.txt" if (test-path $DestPath) {del $DestPath} "Owner`tD4_ChangeSetID`tD4_DateCheckedIn`tD5_ChangeSetID`tD5_DateCheckedIn`tServerItem"|set-content $DestPath foreach($d in $diff){ $s = $d.Information -split " - " $L = get-tfsitemproperty $s[0] -server $TFserver -workspace $workspace $R = get-tfsitemproperty $s[1] -server $TFserver -workspace $workspace $Owner = (get-tfsItemhistory $L.SourceServerItem -server $tfServer -stopafter 1).Owner $ChangeSetL = $d | select -ExpandProperty ItemL |select changesetid, checkindate $ChangeSetR = $d | select -ExpandProperty ItemR|select changesetid, checkindate "$Owner`t"+ $ChangeSetL.changesetid + "`t" + ($ChangeSetL.CheckinDate).Tostring()+"`t"+$ChangeSetR.changesetid + "`t" + ($ChangeSetR.CheckinDate).Tostring()+"`t"+$L.SourceServerItem |add-content $DestPath } #get-content $DestPath #compare-object $(get-content $L.LocalItem) $(get-content $R.LocalItem)