AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Subversion und VisualSVN für Ein-Mann-Entwicklung

Subversion und VisualSVN für Ein-Mann-Entwicklung

Ein Thema von Harry Stahl · begonnen am 5. Nov 2016 · letzter Beitrag vom 14. Nov 2016
Antwort Antwort
Seite 6 von 13   « Erste     456 78     Letzte » 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.477 Beiträge
 
Delphi 11 Alexandria
 
#51

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 6. Nov 2016, 23:23
Also, ich habe jetzt mal ein wenig (bzw. ein wenig mehr) an einem Projekt gearbeitet (noch weiterhin mit Subversion) und das ein- und auschecken über die in Delphi integrierte Lösung gemacht.

Soweit hat das eigentlich ganz gut funktioniert. Ist schon toll, wenn ich an einem Rechner gearbeitet habe und öffne das Projekt an einem anderen Rechner, wähle dann per rechten Mausklick auf den Projektnamen den Kontextbefehl "Subversion", "Aktualisieren", "Aus Repository Stammverzeichnis" und schon wird mein Projekt auf den aktuellen Stand gebracht.

Das ist schon mal viel einfacher, als Dateien zwischen den Rechnern über das Netzwerk oder sonstwie zu kopieren.

Und da man sich auch die Unterschiede mit dem eingebundenen Beyond-Compare ansehen kann (das sich im About-Dialog lustigerweise mit "RAD-Studio XE9-Edition" meldet), finde ich das doch alles recht komfortabel.

Was mir noch nicht gelungen ist: Externals einzubinden, also Dateien, die nicht im Projektverzeichnis oder in einem Unterverzeichnis davon liegen.

Falls jemand Subversion nutzt, wäre ich für einen Tipp dankbar.

(Auch wenn jetzt viele gesagt haben, nehm direkt GIT oder Mercurial, ich will die Subversion-Nutzung zumindest einmal von vorn bis hinten bei einem Projekt durchziehen, damit ich einen vollständigen Eindruck bekomme, nur dann werde ich ja auch in der Lage zu sein, zu vergleichen und zu bewerten, was ich evtl. alternativ besser finde)

Noch eine weitere, für mich wichtige Frage: Für meine Lazarus-Pascal-Projekte wäre es natürlich auch toll, ein Versionsverwaltungssystem zu verwenden (ich arbeite dann mit dem jeweiligen Lazarus auf Windows / dem Mac / Linux). Hat jemand unter diesem Aspekt evtl. auch Erfahrungen gemacht, welche Versionsverwaltung hier zu empfehlen wäre?

Zwischenfazit von mir:
Generell habe ich jedoch schon mal den Eindruck, dass die Versionsverwaltung etwas ist, was ich auf jeden Fall hinzu nehmen werde. Man kann zwar auch ohne Versionsverwaltung professionell Software entwickeln, aber ich denke es könnte mir die Sache doch erheblich erleichtern. Gerade, wenn man feststellt, dass plötzlich etwas nicht mehr funktioniert, kann man sehr leicht vergleichen, was in den einzelnen Revisionen geändert wurde und so schnell die Ursache ermitteln.

Und ja, auch für eine einzelne Person ist das eine Hilfe.

Geändert von Harry Stahl ( 6. Nov 2016 um 23:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#52

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 06:35
Was mir noch nicht gelungen ist: Externals einzubinden, also Dateien, die nicht im Projektverzeichnis oder in einem Unterverzeichnis davon liegen.
Wie du das mit Tortoise machst, kannst du hier in der Doku nachlesen:
https://tortoisesvn.net/docs/release...externals.html

Noch eine weitere, für mich wichtige Frage: Für meine Lazarus-Pascal-Projekte wäre es natürlich auch toll, ein Versionsverwaltungssystem zu verwenden (ich arbeite dann mit dem jeweiligen Lazarus auf Windows / dem Mac / Linux). Hat jemand unter diesem Aspekt evtl. auch Erfahrungen gemacht, welche Versionsverwaltung hier zu empfehlen wäre?
Alle diskutierten VCS sind crossplatform, SVN, Git und Mercurial. Auf Serverseite kenne ich nur die Windows-Server VisualSVN Server und Bonobo Git Server, aber es gibt auch und vor allem Server für andere Plattformen. Auf Clientseite gibt es diverse Clients außerhalb von Windows, aber kein Tortoise. Mittlerweile gibt es aber auch für Linux und andere Plattformen graphisch ansprechende Clients, die man sehr angenehm nutzen kann. Paradoxerweise kosten die meisten allerdings anders als Tortoise für Windows etwas. Angesichts der kostenlosen Alternativen, die ich kenne, würde ich aber in die Richtung tendieren.

Alternativ funktioniert die reine Git-Kommandozeile auf allen Plattformen gleich, aber ich persönlich brauche damit so extrem viel mehr Zeit, dass ich nicht dazu raten kann.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
warschonweg

Registriert seit: 2. Okt 2014
31 Beiträge
 
#53

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 08:06
Wobei Git im Gegensatz zu Mercurial unter Windows nur via Emulation funktioniert.
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#54

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 08:41
Hallo,

4. Nutzt das auch jemand von Euch als Einzelperson, welche Erfahrungen habt ihr damit gemacht?
Ja, sowohl im Team als auch für eigene private Projekte. Benutze nur noch SVN. Mittlerweile auch für dinge die nichts mit Programmieren zu tun haben.

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.
Ist bei mir auch so. Komisch, ist das noch nicht der Vorschlag kam, alles nur noch mit dem Notebook und einer Dockingstation zumachen, denn dann würde man ja ein Versionsverwaltungssystem nicht benötigen. Es soll ja noch Leute geben die einen richtigen Rechner zum Entwickeln benötigen. Sei es weil Hardware drinsteckt die einfach nicht in ein Notebook passt oder der Kunde genau das gleiche System einsetzt und er sich bestimmt nicht ein Notebook ins Rack stellt.

Habe mir dazu auf meinem Strato-Webserver (Windows 2012 Server) das Programm VisualSVN eingerichtet und mir dort Repositories angelegt.
Mir persönlich wäre das zu unsicher. Habe lieber alles zu Hause. Lieber wird mein Sourcecode durch Brand vernichtet, als das jemand anderes ihn in die Finger bekommt. Und dafür habe ich so ein selbstgebauten Windows Home Server.

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?
Wie du magst. Ich habe auf meinem SVN-Server nur eine Identität für mich (mir reichen schon die vielen im Kopf ).

2. Dann eine Frage zu den globalen / geteilten Units, die in unterschiedlichen Projekten verwaltet werden. Wie bindet man die richtigerweise ein?
Das ist ein Schweres Thema. Es gibt da mehrere Möglichkeiten.

A: So ein Repository ist je wie ein Verzeichnis. Man kann alle Projekte und die gemeinsam verwendeten Sachen in ein Einziges einchecken. Vorteil die Relativen Pfade zwischen den Projekten und dem Gemeinsamen sind immer gleich. Nachteil es gibt nur eine Revisionsnummer (jedenfalls bei SVN) und sollte es mal einen Fehler im Repository geben sind mitunter alle Projekte betroffen.

B: Jedes Projekt und somit auch das Gemeinsame bekommen ihr eigenes Repository. Nachteil man muss auf die Abhängigkeiten zwischen den Projekten und somit zwischen den Repositorys aufpassen. Dazu kann man bei SVN die Eigenschaft svn:externals benutzen. Entweder man macht sich ein Ober-Repository und hängt mittels svn:externals alle anderen dort rein. Dann würde man auf einem anderen Gerät nur das Ober-Repository auschecken und alle anderen würden mit der richtigen Struktur automatisch mit auf der Platte landen. Oder man hängt das Gemeinsame per svn:externals in jedem Projekt ein. Hat beides seine Vor- und Nachteile. Bei dem einen sind Änderungen am Gemeinsamen sofort bei allen Projekten verfügbar und beim anderen kann man das Gemeinsame bei verschiedenen Projekten in unterschiedlichen Versionen verwenden.

Das Subversionssystem übernimmt offensichtlich nur alle Dateien aus dem Projektverzeichnis und aus den
Ja. Die Versionsverwaltungssysteme, welche ich mir bis jetzt angesehen habe, arbeiten immer auf einem Verzeichnis. Was außerhalb dieses liegt, liegt außerhalb des Repositorys.

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?
Wie und ob das mit Delphi geht, habe ich noch nicht getestet. Ich kann dir da nur TortoiseSVN empfehlen. Aber die nötige Verzeichnisstruktur Trunk, Tags und Branches hast du in den Repositorys angelegt?

ob ich nicht auch als Einzelperson von der Subversionsverwaltung profitieren kann.
Auf jeden Fall! Wie hast du es denn bisher ohne ausgehalten?

Aber tu dir bitte einen Gefallen: Nimm gleich Git, nicht Subversion.
Nein nehmen auf gar keinen Fall Git. Es gibt zwar viele Leute die diese veralteten Konzepte aus der Linuxwelt toll finden, sie sind es aber nicht. Sie sind schrecklich. Git hat nur einen Vorteil, dass es ein verteiltes System ist. Aber bei genauer Betrachtung ist das dann auch wieder ein Nachteil, wie alles andere bei Git. Deshalb igittigitt.

Ich würde _immer_ über die Konsole arbeiten, damit ich die Kontrolle über die versionierten Dateien habe.
Konsole und Kontrolle schließen sich doch wegen mangelnder Übersichtlichkeit aus. Keine Bildchen, keine Kontextsensitivität, fängt schon damit an das die Konsole keine Informationen von sich aus herausgibt.

Zu den versionierten Dateien können ja auch Dateien gehören, die überhaupt keinen direkten Bezug zum Source-Code habe: Doku, Beispiel-Daten etc.
Da hilft aber auch keine Konsole. Da hilft nur Tortoise..., und das noch nicht mal vollständig.

Was mir noch nicht gelungen ist: Externals einzubinden, also Dateien, die nicht im Projektverzeichnis oder in einem Unterverzeichnis davon liegen.

Falls jemand Subversion nutzt, wäre ich für einen Tipp dankbar.
Auch Externals landen in dem Verzeichnis des Repositorys. Aber noch mal den Tipp, installier dir TortoiseSVN. Das ist wesentlich übersichtlicher. Und dann siehe oben.

Und ja, auch für eine einzelne Person ist das eine Hilfe.
Ja, auf jeden Fall.

PS: Ist die Mehrzahl von Repository in einem deutschen Text Repositories oder wie Google meint Repositorys?
Mit freundlichen Grüßen, einbeliebigername.

Geändert von einbeliebigername ( 7. Nov 2016 um 09:09 Uhr) Grund: Rechtschreibung von Repositorys korrigiert
  Mit Zitat antworten Zitat
warschonweg

Registriert seit: 2. Okt 2014
31 Beiträge
 
#55

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 08:45
Repositorys natürlich. Im Deutschen gelten englische Deklinationsregeln nicht.
Nach Diktat verreist,
[war schon weg].
  Mit Zitat antworten Zitat
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#56

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 09:03
[OT]
Repositorys natürlich. Im Deutschen gelten englische Deklinationsregeln nicht.
Du hast wohl Recht. Mir fehlte dazu aber noch ein Beweis. Das wurde wohl mit der Rechtschreibreform geändert (http://www.neue-rechtschreibung.net/...wortern-auf-y/).[/OT]
Mit freundlichen Grüßen, einbeliebigername.
  Mit Zitat antworten Zitat
mse1

Registriert seit: 21. Nov 2007
115 Beiträge
 
#57

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 09:14
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?
Wie und ob das mit Delphi geht, habe ich noch nicht getestet. Ich kann dir da nur TortoiseSVN empfehlen. Aber die nötige Verzeichnisstruktur Trunk, Tags und Branches hast du in den Repositories angelegt?

ob ich nicht auch als Einzelperson von der Subversionsverwaltung profitieren kann.
Auf jeden Fall! Wie hast du es denn bisher ohne ausgehalten?

Aber tu dir bitte einen Gefallen: Nimm gleich Git, nicht Subversion.
Nein nehmen auf gar keinen Fall Git. Es gibt zwar viele Leute die diese veralteten Konzepte aus der Linuxwelt toll finden, sie sind es aber nicht. Sie sind schrecklich. Git hat nur einen Vorteil, dass es ein verteiltes System ist. Aber bei genauer Betrachtung ist das dann auch wieder ein Nachteil, wie alles andere bei Git. Deshalb igittigitt.
Beim "veralteten Linux Konzept" Git geschieht das Umschalten zwischen Branches durch "git checkout <BRANCHNAME>", nix da mit Unterverzeichnissen anlegen und so.
In MSEgit reicht ein Klick in die 'C'-Spalte der entsprechenden Zeile der Branches-Liste. Dazu ist keine Serververbindung notwendig, da im ".git" Archiv im Arbeitsverzeichnis die gesamte Historie enthalten ist. Verblüffenderweise sind Git-Clones trotzdem meistens kleiner als entsprechende SVN-Checkouts.
Martin Schreiber
  Mit Zitat antworten Zitat
ThomasBab

Registriert seit: 7. Mai 2007
Ort: Hallenberg
57 Beiträge
 
FreePascal / Lazarus
 
#58

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 09:29
Hallo!

Hier sind mir gerade noch zwei Links begegnet:

http://t3n.de/news/eigentlich-github-472886/

http://t3n.de/news/github-fuer-einst...hritte-762760/
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#59

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 09:37
Und jetzt noch eine Portion Senf von mir (Mercurial Anwender):
Branching mit SVN, ist der einhelligen Meinung aller Beteiligten nach suboptimal. Nicht nur darum hat man andere Versionsverwaltungen erfunden (und nein, git oder hg sind nicht älter als SVN, eher umgekehrt). Branching ist mit den modernen Versionskontrollsystemen mit Null aufwand verbunden, da jeder Commit prinzipbedingt innerhalb eines Branches erfolgt. Dies kann jetzt eben immer der selbe Branch sein, oder man führt einfach einen neuen ein, und schon hat man zwei bis n Branches mit denen man treiben kann, was man will. Hier etwas zum Thema Branching und damit auch Merging in SVN gegenüber den modernen Systemen wie hg oder git: http://softwareengineering.stackexch...out-svn-merges

Ein Tutorial, daß mir die hg Welt näher gebracht hatte, weil ich von JEDI VCS weg wollte/musste ist http://hginit.com/. Interessanterweise ein konsolenbasiertes Tutorial. Das bringt dann zweierlei: Es nimmt die Angst vor der Konsole und zeigt wie einfach die Bedienung dann doch ist. Wenn man danach auf TortoiseHg setzt, hat man überhaupt keine Probleme und weiss sich im Zweifelsfall auf der Konsole zu helfen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#60

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung

  Alt 7. Nov 2016, 10:09
Hallo Harry,

na, wenn so viele etwas dazu zu sagen haben, dann will ich auch mal.

Ich nutze seit einigen Jahren SVN. SVN statt Git letztlich deshalb, weil ich damit so ein bis zwei Jährchen angefangen habe, bevor plötzlich alle meinten, dass ein zentrales VCS jetzt veraltet sei und man auf jeden Fall Git benutzen muss. Da SVN allerdings alles kann, was ich brauche und ich auch mit Tags und Branches nie Probleme hatte, bin ich dabei geblieben und damit bis heute eigentlich sehr zufrieden.

Was ich aber noch loswerden wollte, weil du danach gefragt hattest und es ansonsten bisher eher in Nebensätzen angeklungen ist: Ich benutze nicht die in Delphi eingebaute SVN-Integration, sondern den Windows-Client "TortoiseSVN". Das hat den Vorteil, dass das Tool einfach noch mehr kann als die Delphi-Integration und vor allem, dass du im Netz viel mehr Material dazu findest, falls doch mal etwas unklar ist. Vor allem bringt TortoiseSVN schon selbst eine sehr gute Dokumentation mit.

Die von dir noch offene Frage zur Einbindung von externen Dateien in ein Projekt wird z.B. hier in der Doku behandelt:
https://tortoisesvn.net/docs/release...externals.html

Bis denn
Bommel
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz