Software zur Versionsverwaltung

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Software zur Versionsverwaltung

Beitrag von fabske » 15.09.2012 21:58:14

Hallihallo!

Bisher nutze ich die Versionsverwaltung Assembla.com und habe subclipse in meinem Eclipse installiert. Klappt alles wunderbar, nur wäre es an der Zeit das auf den eigenen Server umzuziehen. Die Frage ist nun, welche Software soll ich einsetzen? Von git ist viel die Rede, aber kann man so einfach von svn auf git umsteigen? Ist git auch so organisiert wir svn mit branches und trunk? Sprich: Soll ich nun git anstatt svn installieren, weil es die modernere Technologie ist, oder ist git für einen anderen Anwendungszweck?

Danke, Gruß fabske :)
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Software zur Versionsverwaltung

Beitrag von catdog2 » 16.09.2012 01:11:11

Die Frage ist nun, welche Software soll ich einsetzen? Von git ist viel die Rede, aber kann man so einfach von svn auf git umsteigen?
Ja das geht relativ problemlos . Du kannst sogar git mit einem svn Server im Hintergrund benutzen (natürlich mit gewissen Einschränkungen, weil git mehr kann).
Ist git auch so organisiert wir svn mit branches und trunk?
Nein nicht direkt. git und svn sind vom Konzept her sehr unterschiedlich. Du musst dich auf jeden Fall ein bisschen damit beschäftigen, Dokumentation findet sich zu hauf, z.B. http://git-scm.com/book . Wenn du etwas über das zugrundeliegende Konzept wissen willst, gern mal ein Video anschaust und kein Problem mit gerante gegen svn bzw. Linus Torvalds Humor allgemein hast, dann gibts das hier https://www.youtube.com/watch?v=4XpnKHJAok8 .
Sprich: Soll ich nun git anstatt svn installieren, weil es die modernere Technologie ist, oder ist git für einen anderen Anwendungszweck?
Nein der Anwendungszweck ist der selbe. Git ist nur anders (und besser), es lohnt sich auf jeden Fall sich damit zu beschäftigen. Und mit EGit gibts auch eine brauchbare Eclipse Integration.

//edit: Von wegen eigenem Server solltest du dir gitolite anschauen.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
shoening
Beiträge: 916
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Software zur Versionsverwaltung

Beitrag von shoening » 16.09.2012 07:17:23

Hi,

der wesentliche Unterschied zwischen Git und SVN ist: Git ist ein "verteiltes" Versionskontrollsystem.

Jeder hat immer ein vollstaendiges Repository auf seinem Rechner und kann daher - auch ohne Verbindung zu einem "zentralen" Repository alle wesentlichen Aktionen durchfuehren - z.B. auch branchen und mergen.

Wenn bei Dir bisher immer online mit den Subversion Repository verbunden seid, dann bringt der Wechsel zu git nicht so viel.
Anders verhaelt es sich, wenn man auch schon mal oefter offline ist aber auch noch arbeiten moechte.

Aber dann kommt direkt die Frage nach den anderen Dingen die man sonst zentral hat: Issue Tracking, Wiki etc.
Vielleicht lohnt es sich dann mal Debianfossil anzuschauen.

Ciao
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Software zur Versionsverwaltung

Beitrag von catdog2 » 16.09.2012 10:54:32

Wenn bei Dir bisher immer online mit den Subversion Repository verbunden seid, dann bringt der Wechsel zu git nicht so viel.
Anders verhaelt es sich, wenn man auch schon mal oefter offline ist aber auch noch arbeiten moechte.
Dem muss ich widersprechen das ist auch sinnvoll, wenn man immer online ist. Es ist z.B. generell gut oft zu commiten, allerdings musst du das bei svn sofort auf dem Server tun. Wenn das ein inkonsistenter Zwischenstand ist will man das ja nicht unbedingt im zentralen Repository haben (und wenn man es trotzdem am Ende nach einem einzigen Commit aussehen lassen will, auch das geht). Wenn man das weiterspinnt legt man sich bei größeren Vorhaben auch mal schnell einen lokalen Branch dafür an und merget das dann in den master wenns fertig ist. Dann ist da noch der Geschwindigkeitsvorteil, wenn man lokal arbeitet und was machst du bei svn, wenn der Server mal ausfällt?

Außerdem hat git außer der Verteiltheit noch einige Features mehr. http://git-scm.com/about ist da recht schön. Dann noch so nette Kleinigkeiten und Lebensretter wie git stash oder git bisect.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Re: Software zur Versionsverwaltung

Beitrag von fabske » 16.09.2012 11:10:02

Vielen Dank für die tollen infos!! Vor allem Erklärende Videos finde ich Super! :) Gibt es auch ein HowTo wie man die ersten Schritte durchführt? Und vor allem, welches Paket aus Debian installiere ich mir nun als Server? Einfach das Paket git-all?
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Software zur Versionsverwaltung

Beitrag von michaels » 16.09.2012 11:42:14

Kommt ganz auf deine Anforderungen/Wünsche an. Wenn du einen einfachen git-Server aufsetzen möchtest, der als "zentrales" Repo dient, findest du gaaaanz viele Anleitungen im Netz (ist leider nicht so einfach wie die Installation eines svn-Servers).
Wenn du eine Weboberfläche mit Managementfunktionen möchtest, wirst du dir wohl noch andere Software anschauen müssen:
- GitWeb ( https://git.wiki.kernel.org/index.php/Gitweb )
- GITORIOUS ( http://www.gitorious.org/gitorious/pages/Installation )
- Gitblit ( http://gitblit.com ) - All in One Java basierte Lösung
- Gitlab ( http://gitlabhq.com/ ) - Orientiert sich an Github - keine öffentlichen Repos möglich. Sieht ansonsten ganz gut aus

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Software zur Versionsverwaltung

Beitrag von catdog2 » 16.09.2012 12:16:57

Kommt ganz auf deine Anforderungen/Wünsche an. Wenn du einen einfachen git-Server aufsetzen möchtest, der als "zentrales" Repo dient, findest du gaaaanz viele Anleitungen im Netz (ist leider nicht so einfach wie die Installation eines svn-Servers).
Kommt drauf an, wenn man damit leben kann, dass user vollen shell zugriff haben und keine zu große Ansprüche an die rechteverwaltung hat ist sshd installieren und user anlegen das was im wesentlichen zu machen ist.
Aber gitolite ist so kompliziert auch nicht, wenn man mehr will.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Re: Software zur Versionsverwaltung

Beitrag von fabske » 17.09.2012 07:46:11

Ich habe mir nun das Video von Linus angeschaut und finde git echt toll! ABER: Wozu installiere ich nun einen git-Server, wenn es doch ein dezentrales Konzept ist? So wie ich Linus verstanden hab, braucht man gar keinen Server mehr! Also jeder installiert sich seinen eigenen git-Server auf seinem Rechner und dann verbindet man sich untereinander, oder wie?

Also Java mag ich nicht so, deshalb hab ich nun diese Software zur Auswahl:
- GitWeb ( https://git.wiki.kernel.org/index.php/Gitweb )
- GITORIOUS ( http://www.gitorious.org/gitorious/pages/Installation )
- http://sitaramc.github.com/gitolite/
- Gitlab ( http://gitlabhq.com/ )

Wozu braucht man denn die grafische Oberfläche? Zum mergen? Und hat dann jeder eine eigene grafische Oberfläche auf seinem PC? Ich suche eine Software die man einfach mit Apache VHost in Betrieb nehmen kann, ohne viel Aufwand..

Vielen Dank, fabske! :)
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Software zur Versionsverwaltung

Beitrag von michaels » 17.09.2012 09:12:50

Java magst du nicht und nutzt Eclipse :wink:

Arbeitest du dann allein an deinen Projekten? Wenn ja, benötigst du eigentlich keinen zentralen git-Server...so ein zentraler Server ist ja nur interessant, wenn du mit mehreren Leuten an Projekten arbeitest und ihr einen zentralen Stand haben möchtet, von dem ihr z.B. neue Versionen veröffentlicht/baut.

Jeder arbeitet komplett selbstständig mit seinem lokalen git-Repo. Du kannst dann ja gegen beliebig viele weitere Repos commiten und so u.a. ein gemeinsam genutzt Repo "füllen".

Ich nutze NetBeans (*g*), in NetBeans kann ich einfach einen Rechtsklick auf ein Projekt machen und ein neues git-Repo für das Projekt erzeugen (mit allen möglichen Aktionen, grafischen Diffs, Logs etc). Für meine privaten/lokalen Projekte habe ich somit auch keinen zentralen Server, sondern nutze ein lokales git-Repo für jedes Projekt.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Software zur Versionsverwaltung

Beitrag von catdog2 » 17.09.2012 10:47:28

Ich habe mir nun das Video von Linus angeschaut und finde git echt toll! ABER: Wozu installiere ich nun einen git-Server, wenn es doch ein dezentrales Konzept ist?
Theoretisch musst du das nicht, allerdings müsste dann jeder Projektteilnehmer sein repo im Netz erreichbar haben und du dann von jedem die Änderungen pullen. Machbar aber ein zentrales repo in das alle pushen ist dann in der Regel doch angenehmer. ;)
Wenn du alleine bist und auch dein Zeug nicht öffentlich zugänglich machen willst kannst du dir ein zentrales repo natürlich sparen.
Wozu braucht man denn die grafische Oberfläche? Zum mergen? Und hat dann jeder eine eigene grafische Oberfläche auf seinem PC?
Es gibt halt zum einen diese Weboberflächen wie gitweb oder cgit, die sind halt zum anschauen da (history, tree). Zum anderen gibts natürlich auch lokale GUIs wie Debiangit-gui, Debiangitk oder Debianqgit, nutzt man in der Regel auch eher um durch die history zu browsen oder auch für andere Zwecke, wenn man GUI Liebhaber ist.
Ich nutze NetBeans (*g*), in NetBeans kann ich einfach einen Rechtsklick auf ein Projekt machen und ein neues git-Repo für das Projekt erzeugen (mit allen möglichen Aktionen, grafischen Diffs, Logs etc). Für meine privaten/lokalen Projekte habe ich somit auch keinen zentralen Server, sondern nutze ein lokales git-Repo für jedes Projekt.
Das geht in Eclipse ähnlich, einfach EGit aus dem Marketplace installieren oder von da http://www.eclipse.org/egit/download/ .
Ich suche eine Software die man einfach mit Apache VHost in Betrieb nehmen kann, ohne viel Aufwand..
Also für repositories mit Schreibzugriff läuft das in der Regel über ssh (oft in Zusammenspiel mit gitolite oder den all in one Lösungen wie GITORIOUS) aber das hat man ja eh. Wenn du unbedingt den apache benutzen willst geht das aber wohl auch mittlerweile http://www.mabishu.com/blog/2011/02/09/ ... gest-auth/ bzw. http://git-scm.com/2010/03/04/smart-http.html .
Gitweb und co. sollten mit apache auch kein großes Problem sein.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Re: Software zur Versionsverwaltung

Beitrag von fabske » 21.09.2012 08:15:09

Ich hab jetzt einfach mal angefangen git lokal auf meinem Rechner zu verwenden. Dazu schaue ich dieses echt gute Video: http://www.youtube.com/watch?v=ZDR433b0HJY
Bisher arbeite ich rein auf der Konsole, aber ich hätte auch gerne bisschen was grafisches dazu. Bei Minute 33:20 gibt er auf der Konsole ein "git lol" und bekommt einen Tree der Historie! Ich kann das nicht reproduzieren! Und conflicts hatte ich auch schon beim Testen und wusste nicht wie ich sie auflösen soll.
Gibt es ein grafisches Programm mit dem man so einen Tree sehen kann und vielleicht mit integriertem diff um Konflikte aufzulösen? Oder was verwendet ihr da?
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Re: Software zur Versionsverwaltung

Beitrag von hupfdule » 21.09.2012 10:46:58

fabske hat geschrieben: Bisher arbeite ich rein auf der Konsole, aber ich hätte auch gerne bisschen was grafisches dazu.
Ich finde die Kommandozeilentools von git großartig. Zwar muss man dafür schon wissen, wie git funktioniert und sich auch gelegentlich mal in die Tools einarbeiten, aber grundsätzlich sind weder cvs noch svn so gut aus der Konsole zu bedienen, wie git.
Unabhängig davon bringt git aber eigene grafische Tools mit.
  • git-gui: tk-Frontend für git
  • gitk: Repository browser
  • tig: ncurses Frontend für git (extra Paket: Debiantig)
tig ist hierbei klar mein Favorit.
Bei Minute 33:20 gibt er auf der Konsole ein "git lol" und bekommt einen Tree der Historie! Ich kann das nicht reproduzieren!
"git lol" kenn ich nicht. Hab spontan nur das gefunden.
Und conflicts hatte ich auch schon beim Testen und wusste nicht wie ich sie auflösen soll.
Gibt es ein grafisches Programm mit dem man so einen Tree sehen kann und vielleicht mit integriertem diff um Konflikte aufzulösen? Oder was verwendet ihr da?
Konflikte sind ja bei git weder seltener, noch häufiger als bei anderen Versionierungstools. Um sie aufzulösen, ruf

Code: Alles auswählen

git mergetool
auf. Folgende Tools kannst du dafür standardmäßig nutzen:

Code: Alles auswählen

merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff opendiff emerge vimdiff
Und hier noch ein paar hilfreiche Links:
  • Git Pro Buch: Vollstaendiges Buch zu git
  • Git Ready: Lauter kleine Tipps, um bestimmte Aufgaben mit git zu lösen

Antworten