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.