Dateivergleich über Git möglich?

Guten Morgen,

ich versuche zur Zeit einen automatischen Dateivergleich durch ein Versionsverwaltungstool durchzuführen.
Die Datei die vergleichen möchte liegt auf einem Windows CE Rechner und ist z.b. über ftp erreichbar.

Dabei soll nur verglichen werden, ob die Datei im Vergleich zur Masterdatei im Repository Unterschiede aufweist und falls ja dann bestenfalls irgendeine Nachricht oder Meldung abgeben.

Gibt es hier einen Experten, der sich gut genug mit Git auskennt um mir sagen zu können ob das möglich wäre?

mfg und vielen Dank schonmal
Eric

Hallo,
Ja das ginge mit git, aber ist natürlich viel zu viel für das geschilderte Problem.
Zum Vergleich, ob es Unterschiede gibt, kann man z.B. sha1sum benutzen. Sinngemäß:

$ sha1sum MASTER > SHA

und dann zum Vergleichen:

$ curl -o MASTER ftp://rechner/pfad/MASTER
$ sha1sum -c SHA && echo "Stimmt" || echo "Stimmt nicht"

Der Knackpunkt ist, daß sha1sum mit Erfolg zurückkehrt, falls die SHA1 Summe von MASTER der in der Datei SHA entspricht. Und mit Mißerfolg anderenfalls.

Hi,

vielen Dank für die schnelle Antwort!

Ich möchte Git nicht nur für diese Funktion nutzen. Die Versionsverwaltung nutze ich selbstverständlich auch.
Das Problem ist halt, dass an meinen Programmen (SPS-Projekte) mal ganz gerne rumgebastelt wird wenn sie einmal auf der Anlage sind.

Aber zurück zu meinem eigentlichen Problem:
Kann man die sha1sum Funktion auch automatisiert periodisch aufrufen lassen?
Oder gibt es eine GUI, die das kann?

beste Grüße
Eric

Klar, mittels cron:

$ crontab -e

und dann hinschreiben:

59 4 * * * sha1sum -c SHA || echo "alles kaputt"

Das wuerde jeden Tag um 04:59 die Zeile hinten ausfuehren und eine email schreiben (mit Body „alles kaputt“), wenn etwas mal schiefgeht.

Ok, man muss noch ins richtige Verzeichnis vorher wechseln, und den Master holen, vielleicht machst Du das alles in einem kleinen Skript:

#!/bin/sh
cd /pfad/zu/dem/Projekt/
curl -o MASTER ftp://...
sha1sum -c SHA

nennen wir es mal check.sh, dann muss noch ein chmod a+x check.sh und dann in der crontab:

59 4 * * * /pfad/zu/check.sh || echo "alles kaputt"
1 Like