sobota, 5 stycznia 2013

Porównanie 2 repozytoriów

Czy natrafiłeś na taka sytuacje, ze musiałeś porównać 2 repozytoria??
Mi parę razy się tak zdarzyło, a dokładnie musiałem porównać 2 wersje tego samego projektu. Przygotowałem skrypt, który pobiera z pierwszego repozytorium wszystkie pliki .cs, .sln i .user i porównuje je z plikiem w drugim repozytorium. Jako aplikacja do porównania plików wybrałem KDiff3. Poniżej przedstawiam skrypt w PowerShell:
function Compare-Repo {

Param(
     
     [string] $firstlocation = "C:\sourcecodes\ProjectX_ver1",
     [string] $secondLocation = "C:\sourcecodes\ProjectX_ver2",
     [int] $takeFileNumber =10
)


$fileExtension = @(".cs", ".sln", ".user")
$appToCompare = "C:\Programs\KDiff3\kdiff3.exe" 
#



$itemsFirstlocation  = gci -recurse  -Path $firstlocation  |
 where { ! $_.PSIsContainer -and $fileExtension -contains $_.Extension.ToLower()}

$itemsFirstlocation = $itemsFirstlocation | 
select -first $takeFileNumber

$itemsFirstlocation | foreach {

        $fileEnding = $_.FullName.Replace($firstlocation,"");
        $firstItem = $_.FullName;

        $secondItem = $secondLocation  + $fileEnding ;
        if(Test-Path($secondItem))
        {
            Write-Host "Comparing file $firstItem with $secondItem";

            & $appToCompare $firstItem $secondItem 
            #Run compare app
        }
    }
}

Więcej o KDiff3 można poczytać w obszernej dokumentacji.

1 komentarz:

  1. Jaka jest przewaga użycia narzędzia Kdiff3 rodem z KDE nad Windowsowym COMP?

    OdpowiedzUsuń