Locale Versionierung

Hi Leute,

wie einige evtl. durch http://forum.byte-welt.net/threads/12487-Maven-Projekt-via-Eclipse-erstellen schon mitbekommen haben bin ich gerad (als Anfänger) noch dabei ein Projekt zu erstellen.

Der Anfang funktioniert soweit. Jetzt möchte ich es weiter ausbauen. Könnt ihr mir ein gutes, einfaches Tool nennen mit dem ich über Eclipse meinen aktuellen Stand versionieren kann, so das wenn ich jetzt weiter arbeite und irgendetwas funktioniert nicht und ich den Fehler nach etlichem Suchen nicht finden kann, es auf den momentanen Stand zurücksetzen kann?

P.S. GitHub will ich nicht verwenden da es ja nur für mich ist und SVN glaube ich ist für mich alleine zu mächtig. Welche Alternativen gäbe es noch? Bzw. wie macht ihr soetwas?

Git kannst du auch ohne zentrales Repository lokal verwenden. Da hast du den vollen Funktionsumfang.

Bei IntelliJ IDEA ist eine lokale Versionsverwaltung integriert. Ich könnte mir vorstellen, dass es das bei Eclipse auch gibt.

Aber selbst wenn Eclipse eine lokale Versionsverwaltung hat, würde ich git benutzen.

[QUOTE=cmrudolph]Git kannst du auch ohne zentrales Repository lokal verwenden. Da hast du den vollen Funktionsumfang.

Bei IntelliJ IDEA ist eine lokale Versionsverwaltung integriert. Ich könnte mir vorstellen, dass es das bei Eclipse auch gibt.

Aber selbst wenn Eclipse eine lokale Versionsverwaltung hat, würde ich git benutzen.[/QUOTE]
Hast du evtl. einen guten Doku - Link wo man sich es näher über locales Git durchlesen kann?

Zu dem Thema bin ich nicht der beste Ansprechpartner, da gibt es hier im Board deutlich kompetentere Leute.

Wie du ein lokales Repo erstellst, kannst du hier lesen: http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository#Initializing-a-Repository-in-an-Existing-Directory

Es funktioniert wirklich alles ganz genauso wie bei einem remote repository, abgesehen davon, dass du keine pushes mehr machst.
In dem verlinkten Buch geht es eigentlich an der Stelle so richtig mit den grundlegenden Operationen los. Aber ob das die beste Quelle ist, kann ich leider nicht sagen.

Alternativ kannst Du natürlich auch gitHub oder Bitbucket nutzen. Letztes ermöglich auch kostenlos das Erstellen privater Repositories. So behältst Du Deine Daten auch, wenn Dein Rechner mal abbrennt (was bei den Temperaturen zur Zeit ja vorkommen kann. :D)

Ein Lokales SVN-Repo ist recht schnell eingerichtet. Du meintest, es sei potentiell zu “mächtig”, aber… die ganzen Versionsverwatlungstools nehmen sich in bezug auf die (nützliche) “Mächtigkeit” nicht viel: Einchecken, auschecken, taggen - viel mehr braucht man nicht (und “Branchen” hab’ ich mal bewußt weggelassen, weil das für ein-Mann-Projekte oft nicht sooo wichtig ist). Wichtig ist IMHO, dass das wenige, was man oft braucht, einfach anzusteuern ist. Speziell für SVN gibt’s halt Eclipse-Plugins mit hervorragender Integration.

Natürlich kann man auch GIT verwenden, aber … flamewar-alarm ich bin mit GIT nie richtig warm geworden: Für den trivialsten, alltäglichen Mist muss man dann doch wieder an die Kommandozeile - und herauszufinden, WAS man da einzippen muss, kann die Hölle sein. (Sowas wie das hier spricht IMHO Bände. Wenn ein Versionsverwaltungstool so eine Frage (und Antwort!) provoziert, ist das für mich gelinde gesagt ein “FIAL”, aber das sehen andere vielleicht anders)

Du hast GIT nur nie richtig verwendet… :smiley:

Wie versionierst Du denn lokal und auf einem Server? IDEA kann das ziemlich gut, weil intern GIT verwendet wird, aber mit Eclipse habe ich da z.B. noch keine Möglichkeiten gefunden.

[quote=Marco13]Für den trivialsten, alltäglichen Mist muss man [bei git] dann doch wieder an die Kommandozeile[/quote]Das kann ich so nicht stehen lassen. Welchen “trivialsten, alltäglichen Mist” meinst Du denn?

Mit EGit (der Eclipse-Integration) kommt man auch ohne Kommandozeile sehr weit:
Das Erstellen eines lokalen Repositories geht direkt per rechtsklick.
Einchecken und Committen geht sowieso per Rechtklick, Vergleich mit älteren Ständen und “Annotierte Ansicht” auch.
Und das Kontext-Menü der History-View lässt kaum einen Wunsch offen.

Ich sehe den größten Vorteil von git darin, dass das Repository eben keinen Server benötigt, sondern einfach nur ein Verzeichnis ist. Das gilt sogar für die “remotes” und oben drein kann man beliebig viele “remotes” haben (zb. auf einen Netzwerk-Share und beliebig vielen USB-Sticks/Platten oder eben GitHub…) und diese nachträglich einrichten.

bye
TT

Ja, wie gesagt, das hat viel Flamewar-Potential (und im Zweifelsfall gehe ich immer davon aus, dass ich ~“einfach irgendwas noch nicht richtig verstanden” habe). Aber der in der verlinkten Frage beschriebene Fall tritt bei mir häufiger auf: Ich will einfach nur schauen, was sich sonst so im Repo getan hat. Und das ist IMHO nur sehr unständlich möglich, im Vergleich zu SVN. (Bitte jetzt keine Liste von Kommandzeilen angeben, mit denen das eine oder andere (ähnliche) doch “ganz einfach” ist. Ein Schweizer Taschenmesser ist praktisch und vielseitig, aber wenn ich mir ein Brötchen schmieren will, nehme ich da trotzdem kein Schweizer Taschenmesser dafür…)

Du hast nicht unrecht. Einige Dinge sind nicht unbedingt trivial. Es ist halt ein mächtigeres Werkzeug zum Versionieren von Dateien. Damit steigt auch die Komplexität. Allerdings möchte ich lokale Commits nicht mehr missen, ganz zu schweigen von der einfachen Möglichkeit eines Rebase (das Zusammenführen mehrerer Commits zu einem).

[quote=Marco13]Ich will einfach nur schauen, was sich sonst so im Repo getan hat[/quote]Auch wenn das für den Einsatzfall des TO als Einzelkämpfer ehr nicht “alltäglich” ist geht das in EGit mit 3 Mausklicks. Die spare ich mir aber, weil ich Deine Realität nicht durcheinander bringen will… ;o)

bye
TT