![]() |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Hallo zusammen,
ich habe nicht alles gelesen. Aber ich gebe meinen Senf auch noch dazu. Ich benutze seit ca. 2,5 Jahren Git. Meine Repositories liegen auf zwei Servern. Der eine Server ist mein Produktionsserver und der zweite Server nur ein Backup, wo ich gelegentlich einen Push gegen absetze, damit dieser wieder auf dem aktuellen Stand ist. Alle Repositories werden so konfiguriert, dass beide Server beim Push oder Commit ausgewählt werden können. Beide Server sind mit Ubuntu installiert. Auf meinem Produktionsserver liegt auch noch ein Apache Webserver der einen Bugtracker beherbergt. Dieser Bugtracker kommuniziert ebenfalls mit den GIT-Repositories und ich kann jeden Commit einem Ticket zuweisen und auch das Ticket schließen. Dazu sind lediglich ein paar Schlüsselwörter notwendig, die ich an den Anfang der Commit-Bemerkung setze. Somit kann ich jederzeit nachvollziehen, was ich wie und wann geändert habe zu welchem Ticket. Als Client benutze ich unter macOS das Programm SourceTree, welches es ebenfalls für Windows. Das Tool ist übersichtlich und sehr leicht zu erlernen. Das beste daran ist, die ganze Software hat mich keinen Cent gekostet. Ich zahle lediglich nur meine Gebühr für meinen Produktionsserver der bei einem Anbieter steht. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
@RWarnecke welchen Bugtracker nimmst Du?
Alternativ zu einem Server - Man kann git auf einem Synology NAS aktivieren und dieses als remote seinen lokalen repos für gelegentliche pushs hinzufügen. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Das erste Plugin ist das Hauptplugin. Die restlichen 4 Plugins sind optional und müssen für die entsprechende Variante hinzugefügt werden. Ich selber benutze das Gitweb-Plugin. Das Github ist nur für Repositories auf ![]() ![]() |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich benutze privat gerne git, auf der Arbeit mehr oder weniger gerne SVN. Hat beides seinen Sinn.
Als deutlichen Vorteil von git empfinde ich das lokale Log. Für ein SVN log muss man immer mit den Server verbunden sein. Für diffs der Revisionen sowieso. Bei git braucht man bspw. seinen Server gar nicht ins Internet zu hängen: Wenn der Server nur im LAN ist funktioniert das ganze genau so gut - auch auswärts. (Vll. ein Argument für die Informationssicherheit) Auf der Arbeit habe ich auch mehrere Netze, sodass man nicht immer an dem LAN hängt wie der SVN Server. Man kann trotzdem das Log einsehen, diffen und comitten :thumb: Für das Haupt-Repo würde aber git ehrlicherweise keinen Sinn machen. Das Arbeitsverzeichnis ist 12GB und bekommt jeden Tag 100 commits. Zusätzlich wird SVN als Veröffentlichungstool für die Kompilate genutzt. Zudem ist SVN für neue Kollegen (keine Informatiker) gefühlt einfacher zu lernen. Und wenn die SSD zu klein wird, kann man auf den .svn-Ordner die NTFS-Komprimierung aktivieren. Hilft etwas. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Hallo,
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
Der Unterschied ist nur, dass du bei SVN deutlich weniger Funktionen hast, so dass die GUIs diese gut abdecken können, während bei Git viele zusätzlichen (!) Funktionen nicht über die GUI funktionieren, weil es einfach zu viele sind. Beispiel commit, das es ja bei beiden gibt, wenn auch mit anderen Auswirkungen: SVN: Zitat:
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
"git checkout <DEINE-VERSIONSNUMMER>". In MSEgit geht das Anlegen eines Tag auch mit RightClick-'Tag' in der entsprechenden Zeile des Commit-Log. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
![]() Wenn du des Englischen mächtig bist empfehle ich noch die Lektüre von ![]() ![]() Mercurial ist wie Git aber in benutzerfreundlich. Ich benutze notgedrungen auch immer wieder Git und das schon seit Jahren, konnte mich aber trotz der Lektüre zweier Bücher und zweier mehrstündiger Videokurse (von O'Reilly) nicht damit anfreunden. Seltsam, denn bei Mercurial ging das Lernen viel intuitiver vonstatten und mithilfe des entsprechenden Buches von O'Reilly ging auch der Einstieg in die fortgeschrittenen Themen einfach und schnell. Will heißen, es handelt sich nicht um ein Vorurteil in Sachen Git. So, und wer hier Git immer noch vorzieht kann mit jetzt erklären wie benutzerunfreundlich ein Kommandozeilenwerkzeug denn bitte sein kann, welches, wenn ich es um Hilfe bitte, anstatt mir eine Kurzhilfe anzuzeigen wie das bei --help nunmal gang und gäbe ist, mir auf Windows nen Browser mit dem Handbuch öffnet? Ernsthaft? Und abgesehen davon braucht man zur Lektüre des Handbuchs als Einsteiger noch ein Fachwörterbuch Git. Wenn man sich schon mit dezentralisierter Versionskontrolle auskennt, mag es nicht ganz so schlimm sein. ![]() Git ist ein zusammengefrickeltes Konglomerat von (Unix-)Shellskripten und kompilierten Programmen, was auf unixoiden Systemen auch hervorragend funktioniert. Für Windows wurden dann Brücken geschlagen, die auch halbwegs funktionieren. Mercurial ist eine Versionskontrolle mit Architektur und Design, die Dank Python, auf allen Systemen auf denen Python läuft auch gleich gut läuft. So, viel Erfolg bei der Entscheidungsfindung. Falls du jemals deine Entscheidung bereust, nimmste ![]() Nachtrag: Subversion wird bei größeren Projekten gern mal a****langsam. Außerdem kannste dir zwar alle Zweige und so weiter auschecken, hast dann aber ein vielfaches der Größe des SVN-Repos (Größe auf dem Server) bei dir rumliegen. Eine Konvertierung von SVN auf Mercurial oder Git spart meiner Erfahrung nach 80% Platz ein. Und das ist für das Repo selbst. Also auf dem SVN Server > 30 GiB und als Mercurial Repo (ohne etwas rauszuwerfen) ~ 6 GiB. Besagtes Repo als Arbeitskopie wiegt bei SVN mal gut über 100 GiB. Kommt natürlich einfach auf die Menge der Zweige und Tags an. Bei Subversion ist aus meiner Sicht das schlimmste die Vermischung des Konzepts der Zweige und Tags mit dem von Pfadnamen. Bazaar hat das zum Teil auch kopiert. Auch sind Tags nur entsprechend der üblichen Konvention Tags. Prinzipiell hält dich niemand davon ab in einen Tag eine Änderung einzuchecken. Es sei denn der Admin war clever und hat diese Pfade mit irgendwelchen Hookskripten geschützt (was aber leider auch nicht trivial ist). |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Vielen Dank für die weiteren Hinweise.
Habe jetzt eine Menge Informationen erhalten, die mir und im Zweifelsfalle auch anderen helfen. Werde nun neben Subversion auch GIT und Mercurial einrichten und beide Systeme testen. Wollte gerade mit Mercurial anfangen. Client soweit klar (Tortoise HG, da auch für MAC und Linux verfügbar), ist auch schon geladen und installiert. Welches Serverprogramm (Windows - möglichst mit Grafischer Oberfläche) würdet Ihr hier für Mercurial empfehlen? Ich gehe mal davon aus, dass es kein Problem sein wird, auf meinem Web-Server mehrere SVN-Systeme laufen zu lassen, oder sind da Schwierigkeiten zu erwarten? |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
App im Store suchen, installieren klicken, 'ne Sekunde warten, starten und dann nur noch Benutzer und das Repo einrichten. Subversion läuft leider nur überall da, wo man z.B. VisualSVN installieren kann (also im Windows) und zur Nutzung des Apache-SVN muß halt ein Apache laufen (den Apache gibt es für fast alle Systeme, nur nicht für Android oder iPhone) So gesehn ist das Handy auch eine witzige Angelegenheit, für 'ne Verionsverwaltung ... immer und überall dabei, auch wenn kein Internet verfügbar, und dennoch getrennt vom PC/Schlepptop, falls der mal kaputt geht. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
falls hier jemand eine Möglichkeit besitzt virtuelle Maschinen einzubinden (z.B. ESXI) und eine fertige Lösung aus bugtracking und SCM braucht und nicht den "harten" Weg gehen will:
![]() Redmine finde ich inzwischen ganz gut, mit integriert auch ein Wiki für die Dokumentation und als SCM steht SVN, Git, Mercurial und Bazaar zur Verfügung, incl. Integration ins Bugtracking (also Zuweisung von Commits zu Bugs) Das Ding nutze ich für so ziemlich alle meine Projekte |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Auch können beide über SSH angesprochen werden. Da du dein Repository sowohl mit Mercurial wie auch mit Git vollständig lokal hast, macht es eigentlich wenig Sinn sich da extra einen Server aufzusetzen um eine grafische Oberfläche zu bekommen. Denn die Oberfläche hast du ja mit TortoiseHg respektive TortoiseGit bereits. Git GUI ist bei Git for Windows dabei und ansonsten gibt es noch SourceTree als kostenlose aber nicht quelloffene Alternative. Als Weboberfläche ginge für beide Phabricator oder Kallithea, nur für Git gibt es noch weitere wie bspw. cgit, Klaus, GitLab und einige andere Weboberflächen die du mit gängigen Webservern (Nginx, Apache) laufenlassen kannst (teils wird auch noch PHP oder Python usw. benötigt). Im Grunde hängt es davon ab was du erreichen willst (bspw. ob du Benutzerkonten brauchst usw.). Redmine, welches Lemmy empfahl, kann ich auch nur wärmstens empfehlen, so man sich mit der Wiki-Syntax abfinden kann (die ich etwas gewöhnungsbedürftig fand). Windows kann ich nun aber wirklich nicht als Serversystem empfehlen. Zitat:
![]() Zitat:
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Wir benutzen den
![]() Das war auch der Grund weshalb wir uns gegen Mercurial entschieden haben: Wir haben schlicht keinen einfach installierbaren und gut wartbaren Serverdienst gefunden. Bonobo hat einen integrierten Webserver, sprich du kannst deine Repositorys einfach per Weboberfläche anlegen, verwalten usw. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Noch 2 Fragen:
1. Kann man für die verwendeten Clients (wenn Grafischer Client) eigentlich unterschiedliche unter Windows / MAC / Linux nutzen, oder ist es erforderlich (sinnvoll) einen vom gleichen Hersteller zu nutzen? 2. Was vergleichbares wie den VisualSVN-Server (herrlich leicht zu installieren und zu verstehen) gibt es nicht für GIT und Windows? Bei dem Bonobo-Server müsste man sich erst mal ein wenig durch die Installation kämpfen und als IIS-Server einbinden. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Du kannst bei den grafischen Clients auch mehrere verschiedene GUIs auf dem selben Computer benutzen. Du bekommst dann schon eine Fehlermeldung, wenn die sich ins Gehege kommen.
Bei SVN heißt die irgendwie "svn working copy locked". Bei git bekommst du Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
Mir ist nichts dergleichen bekannt wie VisualSVN-Server jedoch für Git, aber ich hoste sowas nicht auf Windows. Sicher kann jemand anderes weiterhelfen. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Woher kommt eigentlich die irrige Annahme, ausgerechnet unter Windows sei irgendwas komplizierter zu installieren als unter Linux?
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Übrigens war dies mit Git einst der Fall; also daß es komplizierter zu installieren war. Git for Windows gibt es noch nicht so lange. Das alternative Vorgängerprojekt mußtest du selbst lokal kompilieren und zwar ohne dafür eine code-signierte Basis (sprich Compiler) nehmen zu können. Das Resultat war mit etwas Glück Git als Kommandozeilenversion und mehrere Gigabyte Objektdateien. Juhu! Das war aber auch bevor libgit2 eingeführt wurde, wenn ich mich recht entsinne. Seit es das gibt, sprießen die Clients ja wie die Pilze aus dem Boden (inklusive Visual Studio etc). Und Git for Windows sehe ich allein aufgrund der Signaturen als Riesenfortschritt an. Ansonsten ist Windows vor allem anders und in Sachen Netzwerkstack gegenüber BSD oder Linux durchaus benachteiligt. Aber man kann sich das auch schönreden. Hab ich schließlich auch gemacht, als ich noch aktiv Windows-Domänenadministrator war :mrgreen: ... einfach Apache draufgeklatscht damals und so getan als ob damit alles in Butter wäre. Lief auch, nur eben nicht so schnell wie auf Linux oder eben FreeBSD. Aber auch auf der Unixseite habe ich schon einige hartgesottene Adminurgesteine kennenlernen dürfen, die sich an einen schnellen und effizienten Webserver ala Nginx oder Lighttpd nicht gewöhnen können und deshalb bei Apache blieben, oder nicht wußten auf welchem OSI-Layer OpenVPN operiert und deshalb meinten man könne damit keinen Tunnel buddeln, bis ich ihnen das Gegenteil bewies (es ging um die Verbindung zwischen zwei Firmensitzen). |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Fairerweise muss man sagen, daß da alles unter Unixen nur darum so einfach ist, weil es in der Regel schon installiert ist, und sich viele kluge Köpfe Gedanken zu Standardinstallationen gemacht haben. Wenn man aus diesen wirklich guten Standards ausbrechen möchte kann es schon mal haarig werden.
Dennoch habe ich nur Unix-Server, weil sie einfach so leicht zu administrieren sind. Wer KlickiBunti für einfach hält, hat noch nicht wirklich administriert. Auch unter echten Windows Servern ist die Konsole optimal. Nicht umsonst hat MS sehr viel Zeit und Energie in die Powershell gesteckt. Sherlock |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Ist zwar etwas OT, aber ich habe anfang des Jahres (und auch jetzt immer mal wieder) einen neuen Exchange 2016 eingerichtet. Es geht zwar sehr vieles über das Exchange Admin Center, aber einige "tiefer" greifende Systemeinstellungen kann man nur über die Exchange Management Shell (welche auf der PowerShell basiert) einrichten. Aber um noch etwas zum Thema beizutragen: Ich benutze auch seit etwa 1 - 1,5 Jahren eine Versionsverwaltung. Anfänglich SVN, jetzt GIT. GIT hat wohl einige Vorteile, hat mir aber auch schonmal ganz übel mein Projekt zerschossen. Wahrscheinlich eher aus Unwissenheit meinerseits, aber das hat mich wirklich geärgert. Hatte dann schon einige Stunden Zeit gekostet, bis ich meinen aktuellen Stand wieder hatte. Mein Problem bei einer Versionsverwaltung ist immer, dass ich vergesse etwas einzuchecken wenn ich etwas gelöst habe. Auch mit dem Branching habe ich so ein Problem. Wann lege ich einen an und wann nicht? Oder lösche ich bestehende Branches nochmal oder lasse ich die für alle Zeiten stehen? PS: Auch ich arbeite nicht im Team, sondern alleine. Trotzdem würde ich jetzt sagen, dass es sich schon lohnt. Benutze allerdings nicht die GIT Shell, sondern SourceTree. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Wenn du das neue Feature dann in einem eigenen Branch hast, kannst du mit dem unveränderten Projekt debuggen usw. und mergst das neue Feature dann erst am Ende in den Master-Branch. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Liste der Anhänge anzeigen (Anzahl: 1)
Wir benutzen in etwa das Schema im Anhang.
Bis vor 2 Jahren waren wir auf SVN. Git hatte eine Lernkurve aber ich muss sagen, ohne möchte ich nicht mehr arbeiten. Wenn man erst mal mit der Philosophie vertraut ist geht es ganz gut. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Im Team macht da finde ich ein solcher Ablauf Sinn:
![]() Bei einem einzelnen Entwickler wird man das eher nicht so konsequent machen. ;) |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich sehe keinen Grund Branches zu löschen. Die gehen doch mit einem Merge ineinander über. Nur wenn man einen Branch reaktiviert geht die Entwicklung darin weiter. So ist zumindest meine Wahrnehmung bei Mercurial. Ausserdem kann man, wenn man es unbedingt braucht, Branches gezielt schließen. Und selbstverständlich besteht auch ein Branch immer nur aus Changesets, nie aus allen Dateien.
Sherlock |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Hier sieht man diese kranke Vermischung zwischen dem Konzept der Tags/Branches und der Pfade im Repo. Das hat bis auf SVN nur noch Bazaar in einigen Nutzungsszenarien. Ansonsten ist bei den modernen VCS ein Tag und ein Branch immer etwas nicht wirklich "greifbares". Man braucht also andere Operationen als jene die man auch für Verzeichnisse oder Dateien benutzt ("svn copy" etc). Über die Langsamkeit von SVN könnte ich noch hinwegsehen, immerhin hat es statt wie bei CVS eine globale Revision über das gesamte Repo (wer schonmal versucht hat Infos aus einem CVS-Repo zu kratzen oder dieses zu konvertieren, weiß was ich meine, hunderte einzelne Dateien mit eigener Versionshistorie und Tags/Branches sind nicht immer mit dem gleichen Zeitstempel erzeugt, weil: einzelne Dateien). Aber die Vermischung von Tags/Branches mit Verzeichnissen ist ein aus meiner Sicht schwerer Designfehler. Das wird jeder bestätigen können der schonmal die verrücktesten unbeabsichtigten Fehler erlebt hat wie bspw. aus der Wurzel des Repos zu branchen oder über Entwicklungszweige hinweg einzuchecken (was in keinem anderen VCS geht, weil die Arbeitskopie immer exakt einen Zweig umfaßt). |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
@Assarbad
[OT]Der Prof in deiner Sig, ist das der der den Leuten mitten in der Nacht versucht das Universum zu erklären ?[/OT] Zum Thema: Bisher hab ich privat und beruflich immer mit SVN gearbeitet (beruflich in kleinen Teams). Das hat wunderbar funktioniert. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Da es, beruflich, Web-Projekte waren, gabs da nix binäres (Grafiken wurden nicht im SVN gepflegt).
Tags/Zweige gab es nicht viele, Revisionen einige, wurde ja über Jahre auch gepflegt die Software. :) Im wesentlich waren es zwei Zweige (einer für den aktuellen Stand auf den Live-Server, einen für die Entwicklung). Gelegentlich mal einen, wenn einer etwas größeres geändert hat oder ausprobieren wollte. Wieviel Revisionen es nu waren kann ich dir nicht sagen, hab da nie sonderlich drauf geachtet :) Aber bei 2-3 Entwicklern die über Jahre daran täglich arbeiten kommt da schon was zusammen :) |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Einmal hatten wir bei SVN ein Problem, aber das gibt es wohl in allen Versionssystemen.
Irgendwie hatte SVN beim Einchecken mehrere Binärdateien als "Text"erkannt/markiert, was bei den "Zeilenumbrüchen" dann die Dateien schrottete. Als wir dann erstmal rausfanden (dauerte etwas), dass diese Dateien "defekt" waren, half am Ende nur löschen und erneut adden. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
Übrigens, SVN-Externals finde ich noch so ein abgrundtief grottiges "Feature". Aus zwei Gründen:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Wie ich sehe dieses Thema ist ziemlich heiß.
Meine Meinung nach zur Entwicklung gehört nicht nur VCS sondern auch ein Bugtrackingsystem. Auch für Ein-Mann-Entwicklung! Hier wurden schon viele VCS Systeme diskutiert: SVN, GIT, Mercurial. Ich möchte euch noch ein vorstellen: Fossil ![]() ![]() Schaut euch das mal an. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
![]() ![]() Beim letzten Mal fand ich, daß es gefährlich sein könnte auf dieses VCS/SCM zu setzen, weil ich keine Methode gefunden habe um in ein anderes VCS zu konvertieren. Man würde sich also einmauern. Gibt's da mittlerweile etwas? Auch gab es damals dafür meines Wissens nach keine ähnlichen Werkzeuge wie die Tortoise-Reihe. Hat sich das vielleicht auch schon geändert? Bei uns in der Firma benutzen beispielsweise auch die wenigsten die Befehlszeile; sondern setzen auf grafische Werkzeuge. Vermutlich der Hauptgrund warum Git überhaupt von so vielen Leuten als benutzbar angesehen wird :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz