2016-04-12 5 views
0

Dies ist ein einfaches Rezept für das Kopieren von Git-Repository.Chef Git Ressource nicht synchronisiert sogar Ziel nicht übereinstimmt?

git "/home/testuser" do 
repository git_repo 
revision 'master' 
action :sync 
end 

git_repo ist eine Variable, den Pfad der GIT-Repository hat.

Dies funktioniert gut, wenn Sie zum ersten Mal ausgeführt werden. Aber wenn mein Repository ist bereits synchronisieren und wenn einige Datei geändert oder dann in lokalen kopiert Repositoryordner löschen diese git Ressource Sicht wird nicht lokalen Repository aktualisieren und sagen auf dem neuesten Stand sogar einige in lokalen Repository gelöschten Dateien.

Warum geschieht dies sogar einige Dateien nicht in lokal kopiert Repository?

Antwort

0

Was es für idempotence überprüft, wenn der deploy Tracking-Zeiger entspricht der gleichen SHA begehen wie die Fernbedienung für den gewünschten Zweig gibt. Wenn Sie also entweder den lokalen sha durch einen Commit ändern oder (häufiger) der remote neue Commits hat, wird er synchronisiert. Es wird nicht automatisch Dinge wie git clean -fdx laufen, weil der sonst üblichen Anwendungsfall eine Art von Anwendung oder einen Dienst von einem Git-Klon seines Codes ausgeführt wird, wobei in diesem Fall, dass es sehr sehr schlechte ™ wäre. Sie können dies leicht als eine Ausführungsressource hinzufügen, wenn es etwas ist, das Sie brauchen.

+0

Was soll ich tun, für diese Art von Fällen, wie ich einige Dateien in lokalen Repository löschen. –