![]() |
Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich habe mich bislang nicht mit dem Thema Subversionsverwaltung beschäftigt, frage mich aber, ob ich nicht auch als Einzelperson von der Subversionsverwaltung profitieren kann.
Und zwar unter dem Aspekt, dass ich im Netzwerk mal an unterschiedlichen PC's die gleichen Projekte (zu Testzwecken) verwalte, bzw. von Unterwegs (auf Reisen) mit einem Notebook vor Ort gerne mal ein Projekt weiter bearbeiten möchte, so dass ich dann nach Rückkehr an meinem Hauptentwicklungs-PC die Änderungen aus dem Repository übernehmen kann. Habe mir dazu auf meinem Strato-Webserver (Windows 2012 Server) das Programm VisualSVN eingerichtet und mir dort Repositories angelegt. Als SVN unter Delphi nutze ich Subversion. 1. Dazu schon mal direkt eine Frage zu den Benutzern: Sollte ich (obwohl ich ja nur eine Person bin) mehrere Benutzer einrichten und diese Identitäten dann jeweils von den anderen PC's aus nutzen? Oder nur einen Benutzer? 2. Dann eine Frage zu den globalen / geteilten Units, die in unterschiedlichen Projekten verwaltet werden. Wie bindet man die richtigerweise ein? Das Subversionssystem übernimmt offensichtlich nur alle Dateien aus dem Projektverzeichnis und aus den Unterverzeichnissen. Ich habe es jetzt erst mal so gelöst, dass ich ein Dummy-Projekt mit den geteilten Units angelegt habe. Das binde ich dann immer in die Projektgruppe ein und poste Änderungen dann über das Dummy-Projekt. So komme ich auch an anderen PC's an die Shared units. Scheint mir aber ein wenig umständlich zu sein. Gibt es dafür keine bessere Lösung? 3. Prinzipiell würde mich auch das Thema "Branches" interessieren. Mir geht es hin und wieder schon mal so, dass ich ein Programm in eine bestimmte Richtung entwickle, dann aber einen großen Teil oder fast alles wieder verwerfe und dann ist es manchmal recht umständlich wieder auf die gewünschte Ausgangsversion zurückzukommen, bzw. vielleicht möchte man ja einen Teil der Arbeit in die alte Ausgangsversion übernehmen. Wie macht man das? Wie sage ich Delphi, dass die aktuelle Arbeit jetzt Teil eines variablen Zweigs sein soll? Indem ich es erneut in den Braches-Ordner poste? Muss ich mir dort selber Unterordner anlegen? 4. Nutzt das auch jemand von Euch als Einzelperson, welche Erfahrungen habt ihr damit gemacht? |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Aber tu dir bitte einen Gefallen: Nimm gleich Git, nicht Subversion. Ist mittlerweile eigentlich der Industriestandard und hat Subversion abgelöst, und das nicht ohne Grund. Es lässt sich deutlich besser damit arbeiten, vor allem wenn man mehrere Branches hat oder an mehreren Rechnern gleichzeitig arbeitet, aber auch sonst ganz allgemein. Es hat zwar am Anfang eine recht steile Lernkurve, aber es ist besser, gleich damit anzufangen, als erst noch Subversion zu lernen. Wahrscheinlich sind die Konzepte von Git am Anfang auch weniger verwirrend, wenn man nicht durch andere Versionskontrollsysteme wie Subversion, die etwas anders funktionieren, bereits vorbelastet ist. Wenn du Git erst mal beherrscht, willst du nie wieder zurück. Ich werde deine Fragen mal für Git beantworten: Zitat:
Zitat:
Zitat:
Code:
(Du bist dann dauerhaft auf diesem Branch, also wenn du danach wieder zurück zum Haupt-Branch willst, dann musst du anschließend noch mal
git checkout -b neuer-branch
git add -u git commit
Delphi-Quellcode:
ausführen)
git checkout master
Interessant ist auch
Delphi-Quellcode:
, wenn man nur einen Teil der Änderungen committen will. Ich weiß nicht ob es nur mir so geht, aber ich arbeite oft an mehreren Baustellen gleichzeitig. Habe z.B., während ich ein neues Feature implementiert habe, gleichzeitig noch an einer anderen Stelle einen Bug gefunden und gefixt. Mit
git add --patch
Delphi-Quellcode:
kann ich beides sauber trennen.
git add --patch
Auch interessant ist
Delphi-Quellcode:
, um Commits nachträglich umzusortieren oder in andere Branches zu übernehmen. Aber das ist eher was für Fortgeschrittene. Als Anfänger würde ich die Finger davon lassen, auch weil man sonst versehentlich Commits ins Nirwana schicken kann (lassen sich zwar in der Regel wiederherstellen, aber die Panik ist nicht so schön. Ich weiß wovon ich rede).
git rebase
Lies auf jeden Fall ein Git-Tutorial. Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Moin Harry...:P
Mir ist es einfach nur schleierhaft wie du bisher ohne Versionskontrolsytem auskommen konntest... :P Deine Fragen vereinfacht: 1. Normalerweise nur ein Benutzer. Wenn du wissen willst von welchem Computer (Identität) du eingecheckt hast, kann kannst du verschiedene Identitäten anlegen. 2. Du bindest die Units wie gewohnt ein. Hilfreich ist eine Ordnerstruktur z.B. Global / Projekt1 / Projekt2 usw. 3. Branches: Ich mache nur einen Branch für fertige Versionen. Das jeder halten wie er will... :P 4. Ausschließlich als Einzelversion. Ich möchte es nicht mehr missen. :P |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Ich mache täglich ein paar dutzend ZIP Backups meines Projektes. Natürlich alles automatisiert. Wenn ich zu einer alten Version zurück möchte, weiß ich immer ganz genau wo die sind - auf der Festplatte in einem ZIP-Archiv. Zum Vergleichen der Sourcen benutze ich BeyondCopare. ist ja schließlich bei der IDE dabei. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Also ich bin da voll bei Namenloser.
Der Gag ist vor allem, dass man Git auch komplett ohne Server rein lokal nutzen kann. Subversion war zwar damals (so vor 10 Jahren oder so ;-) ) ganz nett, aber heutzutage will man sich den Overhead nicht mehr antun. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Moin...:P
Zitat:
Ich liebe es das ganze über eine altbekannte Struktur benutzen zu können...ohne irgendwelche Konsolenbefehle. 8-) Auch wenn der Server "nicht online" ist kann ich kann ich weiterarbeiten. Beim nächsten "online" wird halt eingecheckt. Das Argument greift bei mir nicht. :P PS: Ich habe mich noch nicht wirklich damit beschäftigt...z.b. ich weiß nicht wo die Daten (QT) liegen. Ein eigener Server im lokalen Netz (von außen erreichbar) ist mir lieber. :P |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Versionskontrollpflicht: +1
Git over Subversion: +1 :mrgreen: |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Hey, vielen Dank erst mal an Euch für die Antworten!!:-D:-D:-D
Scheine ich ja wirklich bislang was verpasst zu haben... Ich habe jetzt erst mal mit Subversion angefangen, weil das ohne zusätzlich irgendwas einrichten zu müssen, funktioniert hat. Bin aber erst im Testmodus, ist also noch keine endgültige Entscheidung, Git werde ich mir dann auch ansehen. Wobei ich gestehen muss, dass ich nach wie vor kein großer Freund der Konsole bin (obwohl mein Haupt-Entwicklungssystem ja inzwischen mit Ubuntu bootet und ich inzwischen so einiges mit Linux mache), aber wenn der Mehrwert es rechtfertigt, wäre ich dazu natürlich bereit... Wo gibt es denn ein gutes GIT-Tutorial? (Gerne auch ein Youtube-Video oder so). Das kann ich aber auch auf dem Webserver laufen lassen (wo kriegt man das GIT-Server-Programm)? Denn nur so kann ich ja den Plan realisieren, unterwegs (stundenlang im Zug oder abends im Hotelzimmer) auf meine Repository zugreifen zu können und mir den letzten Arbeitsstand auf das Notebook zu holen und dann wieder in der Repository zu aktualisieren. Wie ich schon feststellte, muss man dann allerdings auch peinlich darauf achten, dass alle Delphi-Installationen mit den gleichen Paketen und dem gleichen Versions-Stand der Komponenten ausgestattet sind... Gibt es noch Fürsprecher für Subversion? Gibt es Fans von Mercurial, was ja auch in Delphi 10.1 integriert ist? |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich habe beides mal versucht, aber bin damit nicht klar gekommen - und lieber bei Sicherungen in Zips (auch eigene Lösung) geblieben.
Nachdem hier diese Thread gestartet wurde habe ich mir vorgenommen, nochmal Tutorials bei Video2Brain anzuschauen. Da hatte ich aber auch schon mal welche abgebrochen, weil mir das zu theoretisch vorkam. Harry, gib mal bescheid, für was Du Dich dann entscheidest... |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Ist das dann noch performant genug? Gerade auch, wenn es um Upload geht, sind die Webserver doch i.d.R. um einiges schneller. Mein "Super-Duper" Telekom-Internet verabschiedet sich hin und wieder auch mal (alle 1-3 Wochen), so dass der Router neu gestartet werden muss, wäre doof, wenn ich da gerade unterwegs bin. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Das schöne in Git (bzw. bei allen verteilten Quellcodeverwaltungssystemen) ist, dass Du eben keinen Server benötigst.
Und entsprechende Tutorials gibt es wie Sand am Meer: ![]() Such Dir einfach das für Dich passende aus. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Klar, ich sag Dir gerne, was es dann geworden ist... |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Hallöle... :P
Ich habe den Server lokal auf dem Entwicklungsrechner liegen. Erreichbar über https und Portweiterleitung im Router. Da die QT das Heiligtum sind, liegen die Repositories auf gespiegelten Platten mit Backup nach auswärts auf den Webserver. Perfomanceprobleme kenne ich nicht. Außer die Mobilverbindung, wenn man außerhalb ist, gibt es nicht her. :P Wenn der Router nicht will hast du Pech... :? Dann bleibt einchecken wenn du wieder im Büro bist. ...aber du bist ein Mann Unternehmen. Da kann man einiges verschmerzen. :P Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Das Argument Kommendozeile zieht weder bei git noch bei Subversion, für beide gibt es div. GUI Systeme, wobei allerdings das eine oder andere Gimmick wirklich nur über Kommandozeile zu erreichen ist, aber das ist dann doch eher was für nach dem Einstieg. Empfehlen kann ich hier inzwischen für beide Systeme tortoiseGit und tortoiseSVN. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Ich habe Repositories aus Zeiten wo Git noch als Quark im Schaufenster lag. :P Never touch a running system. 8-) Harry soll selbst entscheiden was für ihn passt. :P |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Warum immer so super kompliziert und erst diesen Kram lernen, wenn ZIP-Backups viel, finde ich, sicherer sind? |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
![]() Zitat:
Zitat:
Zitat:
Mir gefällt der Workflow auf der Konsole viel besser. Ich glaube, es gibt inzwischen zwar auch bessere grafische Frontends für Git, aber ich habe gar nicht mehr den Wunsch danach. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
@Jim
Wobei ich darauf weniger Stolz bin als Du. ;-) Aber wenn ich mit dem Tretroller besser vorwärts komme als mit einem Auto, weil das zu viele Schalter hat, dann eben mit Tretroller... (Wenn ich in einem Team arbeiten und angelernt würde, ginge es sicher. So allein hatte ich noch keine Motivation, mich da rein zu beißen.) |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Wenn man alleine arbeitet lohnt sich Git und all der Kram meiner Meinung nach nicht.
Wenn man einen Bug verursacht, weiß man in der Regel genau wo. Da brauche ich keine Versionskontrolle, um den Bug später finden zu können. Daher meine Theorie: sind Versionskontrollsysteme in Wahrscheit für Menschen, die ihren Code nicht kennen? :stupid: |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Also, ich werde jetzt gerade noch etwas mit Subversion weitertesten, um überhaupt mal so einen Eindruck zu bekommen, was machbar ist, wie das Handling so ist, usw.
Folgende Situation: Habe ein Verzeichnis "AServer", welches Unterverzeichnisse "Prog" und "Service" enthalten. Im Verzeichnis "AServer" liegt eine ProjektGruppendatei, welche Projekt.dproj-Dateien aus den Ordnern "Prog" und "Service" enthalten. In den beiden Einzelprojekt-Dateien sind units drin, die in beiden Projekten (PRog und Service) vorkommen. Wenn ich jetzt die Projektgruppendatei mit den 2 enthaltenen Einzelprojekten in die Repository laden will, werden in der Liste "Zu übergebende Dateien" einzelne Dateien doppelt aufgelistet (da ja Dateien sowohl im Projekt "Prog" und "Service" vorkommen. Beim anschließenden Versuch per Klick auf den Schalter "Importieren" kommt der Hinweis "Datei xzy" ist bereits unter Versionskontrolle. Ist das nicht mit Subversion hinzubekommen? Aber mit GIT?. Das wäre dann ein Argument. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Hallo!
Seinerzeit habe ich auch mit zip/arj-Archiven hantiert. Aber es ist immer schlecht, wenn man Unterschiede in einzelnen Versionen ermitteln will. Dann kam svn: damit habe ich einige Jahre gearbeitet (auch mit graphischer Oberfläche). Das fand ich schon sehr angenehm und es vermittelt auch ein gewisses Maß an Sicherheit, wenn man jederzeit auf einen älteren Stand zurückschauen/zurückgehen kann. Als ich dann - aus welchen Gründen auch immer - zu git gewechselt bin, habe ich mich sehr schnell von der graphischen Oberfläche von git verabschiedet und nutze es jetzt ausschließlich über die Kommandozeile. Damit bin ich viel schneller und zielführender. Es ist klar, dass die Einarbeitung in git etwas aufwendig ist, aber es lohnt sich. Hier ein paar auf die Schnelle gefundene Links zur Einführung in git: ![]() ![]() ![]() ![]() Und wenn man bei git eingestiegen ist, lohnt es sich, mal nach "git flow" zu schauen. Ich bin auch nur ein Einzelkämpfer, aber ich arbeite mit unterschiedlichen PC. Dort ist es sehr schön, wenn man mal an einem PC "irgendwas testen" kann, ohne dass man Angst haben muß, ein Durcheinander anzurichten. Außerdem hat git gegenüber svn den Vorteil, dass man das gesamte repository "immer dabei hat". Das war für mich der Grund, von svn auf git zu wechseln. Gruß thomas |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Sprich die arbeitest mit dem lokalen Projekt, arbeitest Änderungen ein. Danach startest Du eine Konsole und postest mit den entsprechenden Git-Befehlen die Änderungen? Oder wie soll man sich das vorstellen? |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
mach mal ein paar Screeshots...
|
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:
Aber auf diesem 2. PC habe ich dann auch meine Shared Units, die sich dann schon mal abweichend von den Shared-Units auf dem 1. PC entwickelt haben. So etwas hoffe ich mit einer SVN-Verwaltung zu vermeiden, bzw. wenn man eine shared Unit "aktualisiert" und damit aber Änderungen versehentlich verwirft, noch mal leicht auf den vorherigen Stand zurück zu kommen. Natürlich verwende ich hier bislang ein mehrstufiges Backup-System (intern und extern), aber da muss man u.U. auch erst mal lange suchen, wo dann das Backup ist, welches die Datei xyz.pas zu einem bestimmten Zeitpunkt enthielt. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Klar, Lazarus hat da ja kein SVN integriert. Da ich allerdings auch für eine Reihe von Projekten (quasi für alle Linux-Versionen meiner Programme) Lazarus verwende, wäre das wieder ein Punkt für GIT, denn da geht es dann auch nicht anders... |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
1. alle Dateien befinden auch ausgecheckt auf dem Computer womit du arbeitest.
2. du änderst den QT einer gemeinsamen Unit. 3. am Original ändert sich nix 4. wenn du lokal die Änderungen rückgängig machen willst musst du auf den Server zugreifen. 5. ! die gemeinsamen Units liegen in einem gemeinsamen Ortner und nicht als Kopie im Project Ordner? ...wo ist das Problem? :P Was hat die Entwicklungsumgebung mit dem VCS zutun? Ich benutze SVN über meinen bevorzugten Dateimanager. (Speedcommander) :gruebel: |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich habe das mit dem Importieren noch nicht verstanden. Woher der Fehler kommt.
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich gehe mal davon aus, dass Projektgruppen-Dateien (die mehrere .droj-Dateien enthalten, die wiederum untereinander gleiche units und Formulare verwenden) so nicht unterstützt werden.
Die Dateien werden dann doppelt gelistet (müsste dann wohl manuell die doppelten abwählen)... |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
:gruebel: Die habe ich auch...
Mache doch mal eine Liste was du wann tust... :P (Screenshot, welche Dateien) |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Übrigens, man muss nicht zwingend bei einem DVCS die Konsole verwenden. Zumindest bei Mercurial gibt es in der Workbench eine erstklassige GUI-Anwendung. |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
Zitat:
Oder Du hast einen zentralen Server (SVN-Like) - wobei Du eben auch weiter arbeiten kannst wenn der Server nicht erreichbar ist. Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Schade, dass es von den Delphi-Tagen keine Videoaufzeichnungen gibt... |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich spiele mal Avocado Diablo oder so:
Alle Vorteile von Git hast du mit Mercurial (unterstützt u.a. von TortoiseHg und SourceTree) auch - und zusätzlich ein wesentlich stabileres, weniger fehleranfälliges Branching. :) "Industriestandard", "Verbreitung" usw.usf. können dir (wie mir) für private Projekte herzlich schnuppe sein, allerdings setzen Mercurial zum Beispiel Mozilla und Firefox ein. Ich persönlich speichere das Gros meiner Projekte übrigens einfach in der Dropbox. Die macht mir auch Dateirevisionen. ;) edit, gerade gesehen: Danach hattest du ja schon oben gefragt. Also: Hier, klarer Fürsprecher! |
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Ich habe hier zu Git mal eine kurze Einführung mit Screenshots geschrieben (wirklich nur kurz zum Einstieg):
![]() Zum Server bin ich leider noch nicht gekommen... Zitat:
![]() Zitat:
|
AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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