dropbox-style svn / git / mercurial ?: automatisches Commit bei Änderung und automatischem Checkout

8

Ich bin kein professioneller Programmierer, aber ich mache ein paar kleine Soloprojekte und ich hätte gerne eine Versionierung und Synchronisierung, aber den Prozess des Erinnerns zum Commit und Checkout (auf verschiedenen Computern) ist mühsamer als sagen wir, dass der Code in einem Dropbox-Ordner gespeichert wird, der beim Dateiwechsel automatisch in die Cloud hochgeladen wird. Die Verwendung der aktuellen Kopie ist für mich völlig transparent, aber es gibt keine Versionierung. (Das Synchronisieren ist auch ein Schmerz, weil ich meinen Laptop oft nach Tagen nach Hause nicht öffne.)

Gibt es eine Möglichkeit, eine Codebase automatisch bei Dateiänderungen (oder nur alle paar Minuten) zu committen und automatisch die neueste Version herunterzuladen, wenn ich meine Arbeit von einem anderen Computer aus fortsetzen möchte?

Danke!

    
Joe 15.08.2011, 00:18
quelle

3 Antworten

0

Ich habe also btsync verwendet, um meine Codebasen zwischen mehreren Computern zu synchronisieren. Dies schafft die sofortige "Auto-Sync" -Funktion, nach der ich gesucht habe, und sie ist für mich völlig transparent. (Dies sorgt auch für die Probleme mit aufgeblähten Auto-Commits wie oben erwähnt). Aber ein Tipp: Versuchen Sie nicht, Repos über alle Ihre Computer zu synchronisieren. Obwohl dies möglich ist, war es für mich unnötig und es ist besser, nur die Dateien zu synchronisieren und einen Repo auf einem Computer zu behalten, in den Sie remote gehen können, um ihn zu committen und bei Bedarf zu drücken. Auf diese Weise erhalten Sie die Versionierung und automatische Synchronisierung (oder müssen täglich gezwungen werden, sich zu committen, wenn Sie Ihren Computer verlassen müssen, oder müssen sich mit irgendwelchen Commit-Fehlern befassen, die auftreten, bevor Sie Ihren Laptop schließen oder die meisten von allen muss man sich auf seine fehlbare Erinnerung verlassen, um sich daran zu erinnern, sich täglich zu verpflichten (große für mich!)).

    
Joe 20.12.2015, 17:45
quelle
5

Es hängt davon ab, was Ihre "Projekte" sind.

Flashbake wurde erstellt, nachdem der Science-Fiction-Autor Cory Doctorow seinen Schreibprozess in regelmäßigen Abständen automatisch erfassen und versionieren wollte:

>
  

Flashbake schaut sich alle 15 Minuten alle Dateien an, die Sie überprüfen wollen (ich sehe es mir an, in meiner ganzen Fiktion, meiner ToDo-Liste, meiner Datei mit nützlichen Informationen und den fertigen elektronischen Versionen von Meine letzten Bücher), und notiert alle Änderungen, die seit der letzten Überprüfung vorgenommen wurden, notiert sie mit der aktuellen Zeitzone auf der Systemuhr, dem Wetter in dieser Zeitzone, wie von Google geholt, und den letzten drei Überschriften mit Ihrer By-Line unter ihnen RSS-Feed Ihres Blogs (Ich habe dies als "Wo bin ich, wie ist es dort, und woran denke ich?") charakterisiert. Es zeichnet auch die Betriebszeit Ihres Computers auf. Für eine zukünftige Version denke ich, es würde Spaß machen, die letzten drei Songs von Ihrem Musik-Player abspielen zu lassen. ( Quelle )

Es basiert auf Git für Versionierung und Cron für automatische Updates (Git ist ausreichend platzsparend, um dies handhabbar zu machen). Vielleicht möchten Sie noch eine Kritik lesen. Der Code ist hier .

Wenn Sie wirklich wirklich eine Dateimodifikationserkennung wünschen und nicht alle X Minuten ein Commit durchführen wollen (alias paranoid über Daten), können Sie etwas basierend auf inotify ( Details - beachten Sie, dass diese automatisierten Commits möglicherweise summiert sich schnell!).

Eine weitere Option (die die Frage zum automatischen Festschreiben nicht unbedingt löst, so dass Sie sie vielleicht mischen möchten) besteht darin, sich den laufenden Git über die Dropbox anzusehen. Dies wurde bereits hier auf SO diskutiert .

    
huitseeker 15.08.2011 02:17
quelle
1

Dropbox speichert einige Versionen von Dateien im Verlauf. Kaum kann man "Versionierung" nennen, aber Sie können Dateien in der Vergangenheit wiederherstellen.

Wenn Sie wirklich nicht mit Commiting und Merging beschäftigt sind, würde ich sagen, dass Sie einfach mit Dropbox leben, da es nett und automatisch ist.

Sie können einen geplanten Task (wenn unter Windows) oder Cron Job (wenn Linux) einrichten, der alle 5 Minuten einen Commit / Push durchführt. Und ziehen / aktualisieren Sie jedes Mal, wenn Sie Ihren Computer starten. Aber ich kann einen möglichen Albtraum sehen, der darauf wartet, passiert zu werden, besonders beim Ziehen / Aktualisieren, wenn eine manuelle Zusammenführung erforderlich ist.

Ich würde auch empfehlen, Mercurial zu verwenden, da es viel einfacher ist, mit git zu lernen / umzugehen als mit svn. Das wird dem Versionskontrollsystem etwas schaden.

    
trailmax 15.08.2011 00:58
quelle