function Copy-File-Exclude-Svn {
Param(
[string] $sourceLocation=".",
[string] $destinationClocation=".\No_SVN"
)
$files = gci -force -exclude *.svn-base,".svn",".gitignore" $sourceLocation | ? { $_.PSIsContainer -and $_.Length -lt 230 } | gci -recurse
$files | foreach {
$fileEnding = $_.FullName.Replace($sourceLocation, "");
$firstItem = $_.FullName;
$secondItem = $destinationClocation + $fileEnding ;
Write-Host "Copy from $firstItem to $secondItem";
Copy-Item $firstItem $secondItem;
}
}
Wywołanie kopiowania plików wygląda następująco:
Copy-File-Exclude-Svn -sourceLocation "C:\Source\Project1" -destinationClocation ""C:\Source\Project1_without_svn"
wystarczy wpisac svn export ...
OdpowiedzUsuńBardzo dobra wzmianka. Akurat nie znałem svn export.
OdpowiedzUsuńDzięki bardzo za nią.
Sprawdziłem jak jest w wydajnością dla projektu, który ma 24,912 plików i zajmuje 2.41GB.
Svn export potrzebował 35 min, aby wyczyścić z svn, natomiast powyższa funkcja w PS tą samą robotę zrobiła w 11 min.