Хотел спросить сообщество о подходе, который я здесь использую, чтобы обновить папку клона с мастера.
У меня есть две папки
- Основная папка, представляющая собой решение, связанное с TFS (Azure Dev Opps).
- Клон мастера, но Github - это репо.
Моя основная папка является «решением TFS», она живет в своей собственной экосистеме и имеет своих собственных внутренних пользователей, а для клона «Github» у нее есть свои внешние пользователи и собственная экосистема.
С помощью этого скрипта я собираюсь поддерживать актуальность репо-клона с последними изменениями в мастере.
Мастер вносит изменения ----> Файл клонирования, в котором происходят изменения, обновляется
Важно, чтобы я не вырезал и не вставлял слепо всю папку от мастера к клону каждый раз, когда я вносил изменения. Вот сценарий, который я сделал, сейчас он работает хорошо, но я хотел знать, есть ли дыры в моей логике, спасибо.
#Create path variables
$olddir = "C:\Data\Master"
$newdir = "C:\Users\Clone"
#Get the list of files in oldFolder
$oldfiles = Get-ChildItem -Recurse -path $olddir | Where-Object {-not ($_.PSIsContainer)}
#get the list of files in new folder
$newfiles = Get-ChildItem -Recurse -path $newdir | Where-Object {-not ($_.PSIsContainer)}
Compare-Object $newfiles $oldfiles -Property LastWriteTime -Passthru | sort LastWriteTime | foreach {
$fl = (($_.Fullname).ToString().Replace("$olddir","$newdir"))
$dir = Split-Path $fl
if ($fl -notlike '*\obj\Release\*'){
if( $_.Fullname -ne $fl){
If (!(Test-Path $dir)){
mkdir $dir
}
copy-item $_.Fullname $fl -Force
Write-Host "From to --> " $_.Fullname "TO --> " $fl
}}
}