Revision: 48797
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 9, 2011 08:48 by michanne
Initial Code
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 $item = (get-diff -tfs $tfs -pathl $serverpathL -pathr $serverpathR ) |foreach{$_|?{($_.TypeDiff -eq 'Diff' -or $_.TypeDiff -eq 'LeftOnly') -and $_.DateCheckInL -ge $startDate }} #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" $diff = (get-diff -tfs $tfs -pathl $serverpathL -pathr $serverpathR) |foreach{$_|?{$_.TypeDiff -eq 'Diff' -and $_.DateCheckInL -ge $startDate -and $_.DateCheckInL -gt $_.DateCheckInR }}|sort DateCheckInL -descending 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)
Initial URL
Initial Description
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.
Initial Title
Compare TFS Server Paths
Initial Tags
Initial Language
Windows PowerShell