( log69 | 2013. 08. 29., cs – 23:52 )

Ez a "compare-object" is a powershell része?

Miért lassú a metaadatok nyálazása? Exponenciálisan elfut az összehasonlítások száma?

Ugye 1 irányú szinkről van szó?

Azon gondolkodok, hogy ha a meta adatok szerint rendezed a fájlokat (amúgy is végig kell menni minden fájl meta adatán legalább egyszer), akkor a fenti gondolatmeneted első része kellene hogy működjön szerintem.

Tehát a meta adat 3 részből állna. 2 rész: fájl méret és utolsó módosítás dátuma, a harmadik pedig vagy név, vagy pedig checksum. Ez utóbbi jobb lenne, nem tudom elérhető-e windows-on.

Ha ez meg van, akkor nem értem hogy miért lenne lassú.

Ha mindkét oldalon megcsinálnád a listát, majd pl. egymásba merge-eled, de úgy, mintha minden meta adatra (az összes elemére) egy hash-t generálnál, majd a 2 listát egyetlen változóba tolod, majd ezt sorba rendezed. Meg kell jegyeztetni még soronként a path-t és hogy helyi vagy távoli-e. Elsődlegesen meta adat, másodlagosan path alapján kell rendezni.

Ekkor az egyforma hash-ek egymás mellett lesznek. Így sorba kell menni a lista egyforma tagjain, melyek egymás mellett lesznek. Ezek után vizsgálnád a path-t. Ha jól gondolom, akkor a következő lehetőségek lesznek:

1) meta adatok egyeznek + path is egyezik -> nincs tennivaló

2) meta adatok egyeznek + path nem egyezik (itt ez azt jelenti, hogy habár művelet kellhet, de mivel van ilyen metaadattal fájl a távoli gépen, ezért mindenképp csak a távoli gépen hajtjuk végre a műveletet az ottani fájllal a hálózati átvitelt megspórolva):

2-a) helyi path-al nincs távoli fájl és távoli path-al nincs helyi fájl -> fájl mozgatása távoli path-ról helyi path-ba a távoli gépen

2-b) helyi path-al nincs fájl a távoli gépen -> a távoli path-ról másoljuk a fájlt a helyi path-ra a távoli gépen

2-c) távoli path-al nincs fájl a helyi path-on, akkor fájl törlése a fenti műveletek után

3) nincs távoli meta adat a helyin, ekkor távoli törlése

4) nincs helyi meta adat a távolin, ekkor helyi másolása a távolra

Ugye a fentieknél ha egy állítás igaz volt és végeztünk műveletet, akkor tovább nem vizsgáljuk a többi feltételt (1-4-ig).