Hallo Forum. Aufgrund einer Abschlussarbeit kommt der dringende Wunsch nach einer privaten Datei-Versionierung. Arbeitsablauf ist so, das ich zu Hause am PC an Programmcode und Doku arbeite. Zu Hause und unterwegs arbeite ich auch noch am Laptop und ab und zu auch an einem weiteren stationären PC ausserhalb meines LANs. Da die Daten nicht öffentlich sein sollen, kommen Github und co nicht in Frage. Da ich zu Hause ein Synology NAS einsetze, habe ich mir GIT und SVN näher angeguckt, da Synology da fertige Pakete anbietet. Die Funktion die ich benötige ist folgende: Datei vom Server holen (hier liegt immer die aktuellste Version), bearbeiten und wieder zurückschicken. Nun versuche ich herauszufinden welches Versionierungssystem besser geeignet wäre. Den zentralen Unterschied habe ich so verstanden: Bei SVN checke ich Dateien aus, bearbeite diese und checke diese wieder ein. Bei GIT ziehe ich mir ne Kopie des kompletten Projekts auf den lokalen Rechner, bearbeite die Dateien und Synchronisiere es anschließend wieder mit dem Server. So gesehen wäre SVN die bessere wahl, oder hab ich was entscheidenes übersehen? Ich bin dankbar für alle Hinweise und Tipps. Gruß! Elektroniker
Für deinen Anwendungsfall ist es wohl vollkommen egal. Git ist im Moment wohl etwas "hipper".
Elektroniker schrieb: > Aufgrund einer Abschlussarbeit kommt der dringende Wunsch nach einer > privaten Datei-Versionierung. > > Arbeitsablauf ist so, das ich zu Hause am PC an Programmcode und Doku > arbeite. Zu Hause und unterwegs arbeite ich auch noch am Laptop und ab > und zu auch an einem weiteren stationären PC ausserhalb meines LANs. "Außerhalb meines LANs" interpretiere ich jetzt mal so, daß du von da auch keinen Netzzugang (SSH o.ä.) zu deinem NAS hast? > Da ich zu Hause ein Synology NAS einsetze, habe ich mir GIT und SVN > näher angeguckt, da Synology da fertige Pakete anbietet. > > Die Funktion die ich benötige ist folgende: Datei vom Server holen (hier > liegt immer die aktuellste Version), bearbeiten und wieder > zurückschicken. Du wirst auch noch folgende Funktionen haben wollen: - prüfen ob die lokalen Files noch aktuell sind - unterschiede zwischen lokalen Files und dem aktuellenen Stand im Repository anzeigen - lokale und Repository Versionen mergen > Nun versuche ich herauszufinden welches Versionierungssystem besser > geeignet wäre. > > Den zentralen Unterschied habe ich so verstanden: > Bei SVN checke ich Dateien aus, bearbeite diese und checke diese wieder > ein. Bei GIT ziehe ich mir ne Kopie des kompletten Projekts auf den > lokalen Rechner, bearbeite die Dateien und Synchronisiere es > anschließend wieder mit dem Server. Jein. Auch mit Git checkst du lokal aus. Der Unterschied ist, daß bei Git zusätzlich noch die gesamte History lokal vorliegt. > So gesehen wäre SVN die bessere wahl, oder hab ich was entscheidenes > übersehen? Hast du. Mit SVN kannst du ohne Netzwerkverbindung nur an lokalen Files arbeiten. Es funktioniert weder svn status noch svn diff noch svn checkout oder svn checkin. Am meisten wird dir vermutlich das letzte fehlen. Denn auch wenn man entfernt von daheim arbeitet, wird man hin und wieder Zwischenstände einchecken wollen, damit man im Fall des Falles dahin zurückrollen kann. Mit Git hast du die gesamte History dabei. Die lokal erzeugte immer komplett, die von anderen Checkouts erzeugte nur insofern wie du sie synchronisiert hast. Du kannst auch immer lokal einchecken, ohne dazu Verbindung zum parent Repository zu brauchen. Langer Rede kurzer Sinn: Git ist für dich besser.
Auch mit SVN holst du dir das ganze Projekt aus dem Repository, und checkst es wieder ein. Ansonsten, wie schon gesagt wurde, ist es Geschmackssache. Die Vorteile von Git bei Multi-User-Parallelentwicklung kommen bei dir nicht zum tragen, daher nimm, was dir besser gefällt. Oliver
Hallo, Github bietet für Studenten/Schüler ein kostenloses Upgrade für ein Jahr, bei dem du unter anderem fünf private Repositories erstellen kannst. Siehe hier: https://education.github.com/ Direkt das Formular für den Antrag: https://education.github.com/discount_requests/new Wird sehr schnell und unkompliziert bearbeitet. Vielleicht stellt Github dann doch eine Alternative für dich dar ;).
Axel Schwenke schrieb: > Langer Rede kurzer Sinn: Git ist für dich besser. sekundiert. Noch ein Punkt: Git ist (im Softwarebereich) die Zukunft. Wer SVN kann, tut sich mit git wesentlich schwerer als jemand ganz ohne Vorkentnisse. Also gleich git lernen.
Git hat meiner Meinung nach nur Vorteile gegenüber SVN. Mit Git kannst du auch SVN Repos auschecken. Der große Vorteil ist das lokale Repo, du hast quasi überall den gesamten Stand. Raucht dein Server ab, packst du deinen GIT Ordner auf einen zweiten Server und weiter gehts ;) Außerdem kannst du problemlos lokal einchecken, mergen, branchen, ohne online sein zu müssen. Das heißt du checkst deine Daten ein ('committen' heißt das bei git) und schreibst was kurzes dazu, wann immer du das Gefühl hast, dass ein neuer Versionsstand erreicht ist. Und sei es nur zu Backupzwecken. Willst du was großes ausprobieren, erstellst du einen Branch und checkst den aus, ohne dass du - wie bei SVN - z.B. neue Ordner oder sowas erstellen müsstest. Das funktioniert alles prächtig mit der Git Bash oder einer grafischen Geschichte wie Tortoise GIT oder so. Und solange du nur alleine auf deinem Repo arbeitest musst du viele Sachen die sonst wichtig wären gar nicht beachten (History umschreiben und veröffentlichen z.B. ist gar nicht schön) Schöne Grüße, Jan
Git ist so eine Fanboy-Sache. Wie man schon an Sprüchen wie Tom schrieb: > Git ist (im Softwarebereich) die Zukunft. sehen kann. Der Weg der Informatik zur Hölle ist mit tausenden von Technologie-Leichen gepflastert, die alle mal "die Zukunft" waren. Das ist irgend so eine Art Gendefekt der Informatik. Auch wenn etwas funktioniert muss es unbedingt in ein paar Jahren durch etwas neues ersetzt werden. Nicht weil das Neue besser ist (meist ist es nur ein Haufen stinkender Müll), sondern weil es neu ist. Wenn niemandem in der Informatik gerade etwas Neues einfällt, wird was altes umbenannt und als neue Sau durchs Dorf getrieben. SVN funktioniert seit Jahren problemlos und wunderbar. Getreu der allgemeinen Philosophie der Informatik muss es daher weg. Git ist geil wenn man seinen Quelltext auf zig lokalen Repositorien verbummeln möchte, auf denen man den Überblick verliert, wenn man irgendwann nicht mehr weiß was an Tree 0dea46e42f0625246c3d06a71d6559eaec5419ca Head 07f2039(ja, reales Beispiel) denn so besonders war.
:
Bearbeitet durch User
Hannes Jaeger schrieb: > Git ist so eine Fanboy-Sache. Nein. Ich bin kein Git-Fanboy und nutze privat meist SVN. Aber ich sehe die Vorteile und bleibe nicht auf dem Zwischenstand der Technik stehen, der zufällig aktuell war, als ich noch geistig rege war und leicht dazugelernt habe.
Bitbucket bietet unbegrenzt viele private Repos. Falls gewünscht: Dazu gibts noch einen super Client (SourceTree) für Win/Mac/(Linux?).
Wenn du ssh-Zugriff auf irgendeinen Server hast, ist git trivial einzurichten und zu benutzen. Einfach auf dem Server in /pfad git init . und dann auf dem Client git remote add origin ssh://user@server:/pfad Fertig. Kann ich empfehlen, ist sehr praktisch.
Wenn du auf deinem NAS einen ssh Zugang und git installiert hast (in den Synology Paketen drin) ist es einfacht. Einloggen per SSH dann # mkdir diplom.git # cd diplom.git # git init --bare Auf jedem "Client" dann. # mkdir diplom # cd diplom # git remote add origin ssh://user@remote.addr:diplom.git oder # git remote add origin user@remote.addr.:diplom.git Wenn ein @ in der URL vorkommt nimmt git als Standortprotokoll "git over ssh" Und git arbeitet Content basierend. Du kannst bei einer geänderten (Text)-Datei jede einzelen Zeile "einchecken" Zu dem git bashing mal ne Frage: Was passiert unter SVN wenn ich den den gleichen Zweig nochmal "versehentlich" mergen will? Bei SVN gibt es einen Merge Konflikt. Ja, ich weiß, bei git kann es auch zu einem Merge Konflikt kommen. Aber auch nur dann wenn vorher der Zweig Rebased wurde, damit wird ja auch die History geändert.
Hannes Jaeger schrieb: > Git ist so eine Fanboy-Sache. Nein. > Wie man schon an Sprüchen wie >> Git ist (im Softwarebereich) die Zukunft. > sehen kann. Diese Begründung ist sicher schlecht. Trotzdem ist Git klar besser als SVN, insbesondere wenn man offline arbeiten können will. > SVN funktioniert seit Jahren problemlos und wunderbar. SVN hat schon immer die Einschränkung, daß man für viele (zu viele) Operationen eine Netzwerkverbindung zum zentralen Repository-Server braucht. Deswegen wurden schon lange (auch vor Git) Alternativen entwickelt, die diese Einschränkung nicht haben. Bekannt sind Bitkeeper, Mercurial, Bazaar und eben Git. Und wenn der TE die Wahl zwischen SVN und Git hat und die Anforderung, offline arbeiten zu können, dann ist Git nun mal die bessere Wahl. Vollkommen unabhängig davon ob du es magst oder auch nur verstehst.
Wenn Du einfach nur synchronisieren willst (mit unterstützung wechselseitiger Änderungen auf Datei-Ebene): Schau Dir mal Unison an: http://www.cis.upenn.edu/~bcpierce/unison/ Damit habe ich meine studentischen Arbeiten bequem (und ohne Cloud) zwischen mehreren Rechnern synchronisiert. Versioniert ist dabei aber nichts.
Git und Artverwandte sind SVN überlegen, in vielen Punkten. Alleine die Tatsache, ein komplettes lokales Repository zu haben, ist ein großer Vorteil: Man kann systematisch kleine Änderungen commiten, kann ganz einfach neues Probieren und wieder zurückspringen, kann lokal mehrere Branches bearbeiten, mergen und Cherry-Picking etc. machen. Das Netz ist voll mit Anleitungen und Vergleichen zu Git. Hannes Jaeger schrieb: > Git ist so eine Fanboy-Sache. Nein. Git ist eine verteilte Versionsverwaltung unter vielen. Es gibt ein gutes halbes Dutzend relevanter Vertreter dieser Gattung die in der Praxis in nennenswerten Umfang benutzt werden. Verteilte Versionsverwaltung ala Git und Konsorten ist schon seit Jahren Industriestandard. Die haben die zentralistischen Vorgänger wie SVN etc. schon seit beinahe 10 Jahren verdrängt. Willkommen im Jahr 2015!
Guten Morgen! Danke für die vielen Infos. Ich werde dann GIT auf das NAS installieren und testen. Besonders die offline Versionierung scheint bei mir ideal zu sein. Wenn mal die Verbindung zum NAS nicht klappt (Internet fällt aus (passiert leider häufig)) kann ich immer noch vernüftig damit arbeiten. Ich schrieb: > Wenn Du einfach nur synchronisieren willst (mit unterstützung > wechselseitiger Änderungen auf Datei-Ebene): Schau Dir mal Unison an: > http://www.cis.upenn.edu/~bcpierce/unison/ > > Damit habe ich meine studentischen Arbeiten bequem (und ohne Cloud) > zwischen mehreren Rechnern synchronisiert. Versioniert ist dabei aber > nichts. Sowas habe ich bereits seit mehreren Jahren per "Synology Cloud" laufen. Dabei ist die Cloud nur Lokal über LAN erreichbar. Doch bei den vielen Codezeilen wünsch ich mir jetzt doch die Versionierung. Und das nicht so: TOPLEVEL_20141212_BAK2_PC1_NEU.vhd! ;-) Vg! Elektroniker
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.