Ich möchte meinen Computer so konfigurieren, dass er jede halbe Stunde automatisch das Programm schreibt, an dem ich gerade arbeite. Ich benutze ein SVN-Repository, selbst wenn es nur ein Skript wäre, das 'svn ci' alle 30 Minuten ausführt, wäre das in Ordnung. Das Problem ist, dass ich nicht weiß, wie das geht.
Könnte jemand mir bitte etwas sagen oder mich zu etwas führen, das mich dazu bringen könnte, dieses periodische Commit-Zeug zu benutzen?
Vielen Dank im Voraus.
EDIT: Es tut mir leid, dass ich Leute verwirrt habe, warum ich das machen möchte. Der einzige Grund, warum ich das machen möchte, ist, weil ein Dozent von mir möchte, dass wir wissen, wie sich unser Code im Laufe der Zeit entwickelt, und ich dachte, dass es eine großartige Idee wäre, svn für diesen Zweck zu verwenden. Es spielt keine Rolle, ob das letzte Commit funktioniert oder nicht. Es muss nur die Änderungen zeigen, die ich im Laufe der Zeit am Code vorgenommen habe.
Ich würde Ihr Control-Versions-System mit solchen Serien von Auto-Commits nicht verschmutzen. Aber ich stimme der Idee zu, ein Kontrollversionssystem zu verwenden, um diese Information zur Verfügung zu stellen.
Dann ist mein Vorschlag: Verwenden Sie ein Repository für Ihre Software und ein anderes, um die automatischen Commits zu speichern. Wenn die Arbeit abgeschlossen ist, führen Sie alle automatischen Commits im Haupt-Repository in nur einem logischen Commit zusammen.
Mit git würde ich das tun:
Nach alldem denke ich, dass mit solchen Daten keine nützlichen Informationen gesammelt werden können. Also würde ich versuchen, diesen Workflow zu vermeiden. Aber wenn es wirklich nötig wäre, würde ich das tun.
Entgegen der allgemein verbreiteten Meinung, denke ich, ist dies eine große Verwendung von svn, im Zusammenhang mit der Aufgabe.
Werkzeuge wie kdesvn (oder besser noch, tortoisesvn, aber das ist nur unter Windows) könnten Ihnen einen guten Einblick geben, was mit ihren Log-Ansichten, Diffs und visuellen Fehlern passiert.
Wenn Sie ubuntu verwenden, führen Sie dieses Bash-Skript von einer Konsole aus, die von der Konsole getrennt ist, an der Sie gerade arbeiten.
%Vor%Sie könnten einen Cron-Job versuchen, der ein Shell-Skript ausführt. Auf welchem Betriebssystem arbeiten Sie?
Aber ich bin neugierig, warum Sie das tun wollen. Ihre Commits sollten aus Funktionen oder Fehlerbehebungen bestehen und nicht auf einem Zeitintervall basieren. Sie werden wahrscheinlich mitten in einer Änderung (bei einer Gruppe von Dateien) festschreiben, was Ihre Revisionen nutzlos macht.
Ich denke nicht, dass das Festlegen von Commits nach einem Zeitplan sehr sinnvoll ist. Vor allem, wenn Sie in die Testphase und kontinuierliche Integration einsteigen. Das Commit in festgelegten Intervallen unterbricht den Build, da es keine Garantie gibt, dass Sie den Changeset im Zeitrahmen abgeschlossen haben.
Ein besserer Weg, wenn Sie automatisch committen wollen, ist das Commit-Teil des Build-Prozesses selbst zu machen. Machen Sie den letzten Schritt des Build-Prozesses zu einem Commit für das Repository. Auf diese Weise, wenn der Build fehlschlägt, werden Sie keinen Müll übergeben.
Völlig möglich mit allen Varianten von make und ich weiß, dass Visual Studio Pre- und Postbuild-Events hat, die so eingestellt werden können. Ich bin mir ziemlich sicher, dass die meisten modernen IDEs damit umgehen können.
Als besondere Berücksichtigung speziell für dieses Problem:
Bewegen Sie den Commit Hook an den Anfang des Prozesses, damit Sie verfolgen können, wann Sie auch königlich vermasseln und wie Sie die Fehler beheben.
Ich würde Subversion verwenden, aber ich würde mich stattdessen einfach daran gewöhnen, an einzelnen Änderungen zu arbeiten und diese an ein Repository zu übergeben.
Auf diese Weise kann der Dozent, wenn er will, nicht nur sehen, was sich geändert hat, sondern warum er sich geändert hat. Das wäre viel nützlicher, würde ich mir vorstellen.
Tags und Links svn autocommit