Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Subversion und VisualSVN für Ein-Mann-Entwicklung (https://www.delphipraxis.net/190770-subversion-und-visualsvn-fuer-ein-mann-entwicklung.html)

Harry Stahl 5. Nov 2016 13:59

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?

Namenloser 5. Nov 2016 15:06

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

Zitat von Harry Stahl (Beitrag 1352689)
ob ich nicht auch als Einzelperson von der Subversionsverwaltung profitieren kann.

Auf jeden Fall! Wie hast du es denn bisher ohne ausgehalten? :shock:

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 von Harry Stahl (Beitrag 1352689)
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?

Ich würde immer die gleiche Identität nehmen. Du bist ja schließlich auch immer die gleiche Person, egal an welchem Rechner du gerade arbeitest.

Zitat:

Zitat von Harry Stahl (Beitrag 1352689)
2. Dann eine Frage zu den globalen / geteilten Units, die in unterschiedlichen Projekten verwaltet werden. Wie bindet man die richtigerweise ein?

Git Sub-Modules wären eine Möglichkeit. (Nur der Vollständigkeit halber: Unter Subversion gibt es sowas ähnliches, nennt sich svn:externals.)

Zitat:

Zitat von Harry Stahl (Beitrag 1352689)
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?

Unter Git, indem du einfach auf den (neuen) Branch wechselst und dann deine Änderungen dort committest.
Code:
git checkout -b neuer-branch
git add -u
git commit
(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
Delphi-Quellcode:
git checkout master
ausführen)

Interessant ist auch
Delphi-Quellcode:
git add --patch
, 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
Delphi-Quellcode:
git add --patch
kann ich beides sauber trennen.

Auch interessant ist
Delphi-Quellcode:
git rebase
, 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).

Lies auf jeden Fall ein Git-Tutorial.

Zitat:

Zitat von Harry Stahl (Beitrag 1352689)
4. Nutzt das auch jemand von Euch als Einzelperson, welche Erfahrungen habt ihr damit gemacht?

Siehe oben. Ja! Ich kann es mir ohne gar nicht mehr vorstellen. Dabei verwende ich meistens nicht mal mehrere Rechner. Der größte Vorteil ist, dass es einem Sicherheit für Experimente gibt, wenn man weiß, dass man jederzeit zu einem vorherigen Stand zurückgehen kann. Auch habe ich festgestellt, dass es oft hilfreich ist, wenn man länger an einer Sache nicht arbeiten konnte und nicht mehr weiß, was man zuletzt gemacht hat. Man kann sich dann einfach mal die letzten Änderungen anschauen, die man gemacht hat, und findet so schneller wieder rein.

haentschman 5. Nov 2016 15:06

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

Jim Carrey 5. Nov 2016 15:09

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

Mir ist es einfach nur schleierhaft wie du bisher ohne Verionskontrolsytem auskommen konntest...
Mir ist schleierhaft, wie man ein solches System zur Pflicht erklären kann :lol:

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.

Phoenix 5. Nov 2016 15:10

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.

haentschman 5. Nov 2016 15:36

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
 
Moin...:P
Zitat:

Also ich bin da voll bei Namenloser.
...ich nicht. :P

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

vagtler 5. Nov 2016 15:38

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

Git over Subversion: +1

:mrgreen:

Harry Stahl 5. Nov 2016 15:59

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?

stahli 5. Nov 2016 16:06

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...

Harry Stahl 5. Nov 2016 16:07

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

Zitat von haentschman (Beitrag 1352700)
Ein eigener Server im lokalen Netz (von außen erreichbar) ist mir lieber. :P

Hast Du dafür einen EXTRA-PC als Server eingerichtet, wo dann auch der SVN-Server läuft (welchen nutzt Du?) oder ist es Dein Entwicklungs-PC, den Du dann von außen erreichen kannst (per Port-Weiterleitung)?

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.

vagtler 5. Nov 2016 16:08

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: https://www.google.de/webhp?q=git%20tutorial

Such Dir einfach das für Dich passende aus.

Harry Stahl 5. Nov 2016 16:13

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

Zitat von stahli (Beitrag 1352703)
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...

Ja, ich fand den Einstieg auch nicht so leicht, man muss ja erst mal drauf kommen, dass man irgendwo einen Server braucht, wo das hingeht bzw. es wieder her kommt. Wenn man Videos bei Youtube sucht, dann sieht man immer nur was man in Delphi machen kann mit der Versionsverwaltung, aber der vollständige Zusammenhang ergibt sich nicht von alleine.

Klar, ich sag Dir gerne, was es dann geworden ist...

haentschman 5. Nov 2016 16:26

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:

Zitat von Jim Carrey (Beitrag 1352697)
Zitat:

Mir ist es einfach nur schleierhaft wie du bisher ohne Verionskontrolsytem auskommen konntest...
Mir ist schleierhaft, wie man ein solches System zur Pflicht erklären kann :lol:

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.

...kann mir nicht mehr vorstellen. :shock: Ich arbeite auch mit BeyondCompare. Mit dem VCS habe ich mit 2 Klicks den Diff aus 2 verschiedene Revisionen.

Lemmy 5. Nov 2016 16:40

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

Zitat von haentschman (Beitrag 1352700)
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

dann denk nochmal drüber nach: Klar wenn Du für dich selbst entwickelst ist es völlig egal - nur im Team wird das mit "ohne Server" einfach weiter entwickeln halt schwer, wenn Du 5 bugs beheben willst, dann gibt es auch je mind. einen Commit dazu. Das kannst du in git machen: lokal committen, wenn der Server wieder bereit steht, veröffentlichen. Bei Subversion wird das schon schwer - selbst mal eben einen Branch anlegen geht bei Subversion ohne Server einfach nicht. Daher greife ich bei neuen Sachen inzwischen auch auf git zurück.


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.

haentschman 5. Nov 2016 16:51

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

wenn Du für dich selbst entwickelst ist es völlig egal
...genau. :P
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

Jim Carrey 5. Nov 2016 17:01

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

Ich habe beides mal versucht, aber bin damit nicht klar gekommen - und lieber bei Sicherungen in Zips (auch eigene Lösung) geblieben.
Ein Mensch meiner Gattung :thumb:

Warum immer so super kompliziert und erst diesen Kram lernen, wenn ZIP-Backups viel, finde ich, sicherer sind?

Namenloser 5. Nov 2016 17:08

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

Zitat von Harry Stahl (Beitrag 1352702)
Wo gibt es denn ein gutes GIT-Tutorial? (Gerne auch ein Youtube-Video oder so).

Ich weiß nicht mehr, welches ich verwendet habe, aber ich glaube dieses ist ganz gut: https://git-scm.com/doc. Die Domain kommt mir zumindest bekannt vor, und auf den ersten Blick macht es einen guten Eindruck.

Zitat:

Zitat von Harry Stahl (Beitrag 1352702)
Das kann ich aber auch auf dem Webserver laufen lassen (wo kriegt man das GIT-Server-Programm)?

Ja, natürlich.

Zitat:

Zitat von Harry Stahl (Beitrag 1352702)
Gibt es Fans von Mercurial, was ja auch in Delphi 10.1 integriert ist?

Ist auch nicht schlecht, habe ich auch lange verwendet. Aber Git hat einfach eine größere Verbeitung und größere Community, und inzwischen gefällt mir der Workflow auch besser, auch wenn das sicherlich ein bisschen Gewöhnungssache ist.

Zitat:

Zitat von haentschman (Beitrag 1352700)
ohne irgendwelche Konsolenbefehle. 8-)

Grafische Frontends gibt es natürlich auch für Git. Ich hatte vor Jahren auch zuerst mit TortoiseGit angefangen. Kam dann aber wieder recht schnell davon ab und wechselte zu Mercurial. Wirklich verstanden habe ich Git erst, als ich es Jahre später erneut auf der Konsole ausprobierte.

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.

stahli 5. Nov 2016 17:11

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.)

Jim Carrey 5. Nov 2016 17:13

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:

haentschman 5. Nov 2016 17:13

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

wenn ZIP-Backups viel, finde ich, sicherer sind?
...das bezweifle ich. Die Übersicht zu behalten und z.b. einzelne Dateien aus der Sicherung wiederzustellen halte für nicht SICHER. :?

Harry Stahl 5. Nov 2016 17:17

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.

ThomasBab 5. Nov 2016 17:23

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:
https://www.atlassian.com/git/tutorials/

https://rogerdudler.github.io/git-guide/

https://www.tutorialspoint.com/git/

https://www.ralfebert.de/tutorials/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

Harry Stahl 5. Nov 2016 17:24

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

Zitat von Namenloser (Beitrag 1352711)
Wirklich verstanden habe ich Git erst, als ich es Jahre später erneut auf der Konsole ausprobierte.

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.

Heißt das dann, dass Du die integrierten SVN-Befehle in Delphi gar nicht nutzt (zum ein- und auschecken oder einzelne Dateien zu aktualisieren oder Rücksetzen), sondern ALLES über die Konsole machst?

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?

haentschman 5. Nov 2016 17:25

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
 
mach mal ein paar Screeshots...

ThomasBab 5. Nov 2016 17:27

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

Zitat von Harry Stahl (Beitrag 1352719)
Zitat:

Zitat von Namenloser (Beitrag 1352711)
Wirklich verstanden habe ich Git erst, als ich es Jahre später erneut auf der Konsole ausprobierte.

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.

Heißt das dann, dass Du die integrierten SVN-Befehle in Delphi gar nicht nutzt (zum ein- und auschecken oder einzelne Dateien zu aktualisieren oder Rücksetzen), sondern ALLES über die Konsole machst?

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?

Ich würde _immer_ über die Konsole arbeiten, damit ich die Kontrolle über die versionierten Dateien habe. Zu den versionierten Dateien können ja auch Dateien gehören, die überhaupt keinen direkten Bezug zum Source-Code habe: Doku, Beispiel-Daten etc.

Namenloser 5. Nov 2016 17:30

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

Zitat von Harry Stahl (Beitrag 1352719)
Heißt das dann, dass Du die integrierten SVN-Befehle in Delphi gar nicht nutzt (zum ein- und auschecken oder einzelne Dateien zu aktualisieren oder Rücksetzen), sondern ALLES über die Konsole machst?

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?

Ich benutze Delphi gar nicht mehr, aber im Prinzip ja.

Harry Stahl 5. Nov 2016 17:41

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

Zitat von ThomasBab (Beitrag 1352718)
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.

Ja, genau, das ist auch bei mir so ein Grund. Ich entwickle ja einige Client-Server-Programme und da ist es gut, wenn man das für das Server-Programm tatsächlich auf einen anderen PC macht, als den, wo ich das Client-Programm entwickle (es gibt auch gewisse Limits an den Virtuellen Maschinen, manchmal braucht man wirklich eine echte).

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.

Harry Stahl 5. Nov 2016 17:47

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

Zitat von Namenloser (Beitrag 1352722)
Ich benutze Delphi gar nicht mehr, aber im Prinzip ja.

Manchmal lohnt es sich doch, auf das verwendete Entwicklungssystem des Beitragenden zu schauen...8-)

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...

haentschman 5. Nov 2016 18:00

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:

Harry Stahl 5. Nov 2016 18:04

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

Zitat von haentschman (Beitrag 1352725)
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

Ja, die gemeinsamen Units liegen in einem gemeinsamen Ordner (auf den auch andere Projekte zugreifen) und NICHT als Kopie im Projekt Ordner.

haentschman 5. Nov 2016 18:09

AW: Subversion und VisualSVN für Ein-Mann-Entwicklung
 
Ich habe das mit dem Importieren noch nicht verstanden. Woher der Fehler kommt.

Harry Stahl 5. Nov 2016 18:46

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)...

Lemmy 5. Nov 2016 19:06

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

Zitat von Harry Stahl (Beitrag 1352728)
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)...

das dürfte dann eine "Besonderheit" der Delphi-Integration sein.

haentschman 5. Nov 2016 19:10

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)

Uwe Raabe 5. Nov 2016 19:35

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

Zitat von Harry Stahl (Beitrag 1352702)
Gibt es Fans von Mercurial, was ja auch in Delphi 10.1 integriert ist?

Ja, hier! Sollte jedem, der auf den Delphi-Tagen 2014 in Bonn dabei war, bekannt sein. Wie dort schon erwähnt, finde ich Mercurial gerade für DVCS-Anfänger besser geeignet, da man sich dort nicht selbst in den Fuss schießen kann, wie das ja bei Git gelegentlich vorkommen soll. Ja, ich weiß, Git ist Mainstream, aber das ist Delphi ja auch nicht, oder?

Übrigens, man muss nicht zwingend bei einem DVCS die Konsole verwenden. Zumindest bei Mercurial gibt es in der Workbench eine erstklassige GUI-Anwendung.

Phoenix 5. Nov 2016 19:57

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

Zitat von haentschman (Beitrag 1352700)
Moin...:P

Naaahmd ;-)


Zitat:

Zitat von haentschman (Beitrag 1352700)
Ich liebe es das ganze über eine altbekannte Struktur benutzen zu können...ohne irgendwelche Konsolenbefehle. 8-)

Dann nimmt man (kostenlose) GUI-Tools wie GitKraken, SourceTree, oder TortoiseGit (wobei mir das zu SVN-Lastig ist).

Zitat:

Zitat von haentschman (Beitrag 1352700)
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

Das ist das schöne an Git. Du kannst ein Repo komplett lokal, komplett ohne Server betreiben - wenn Du das magst.
Oder Du hast einen zentralen Server (SVN-Like) - wobei Du eben auch weiter arbeiten kannst wenn der Server nicht erreichbar ist.

Zitat:

Zitat von haentschman (Beitrag 1352700)
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

Auch das kannst Du haben :)

Harry Stahl 5. Nov 2016 23:37

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

Zitat von Uwe Raabe (Beitrag 1352732)
Zitat:

Zitat von Harry Stahl (Beitrag 1352702)
Gibt es Fans von Mercurial, was ja auch in Delphi 10.1 integriert ist?

Ja, hier! Sollte jedem, der auf den Delphi-Tagen 2014 in Bonn dabei war, bekannt sein.

War zwar (als Bonner natürlich) da, aber da war mein Interesse an SVN-System noch nicht geweckt, daher leider verpasst...
Schade, dass es von den Delphi-Tagen keine Videoaufzeichnungen gibt...

warschonweg 5. Nov 2016 23:39

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!

jaenicke 6. Nov 2016 04:36

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):
http://www.entwickler-ecke.de/topic_...it_115462.html
Zum Server bin ich leider noch nicht gekommen...

Zitat:

Zitat von Jim Carrey (Beitrag 1352710)
Warum immer so super kompliziert und erst diesen Kram lernen, wenn ZIP-Backups viel, finde ich, sicherer sind?

Ich zitiere mich mal selbst von hier:
Zitat:

Zitat von jaenicke (Beitrag 1342479)
Und wie ich an anderer Stelle schon einmal geschrieben habe gibt es ja noch einige andere Vorteile, die man auch als Einzelperson hat:
  • Du siehst welche Änderungen du gemacht hast, wenn z.B. plötzlich etwas nicht mehr funktioniert
  • Du siehst beim Abschicken der Änderungen, ob du unbeabsichtigte Änderungen drin hast (z.B. Debugausgaben, ...)
  • Du hast alle Dateien an genau einer definierten Stelle und brauchst nicht (wie es leider viele ohne Versionsverwaltung machen) Kopien anlegen, die dann evtl. aus Versehen benutzt werden usw.
    Kopien, bei denen man dann wiederum nicht weiß was da eigentlich mittlerweile geändert wurde. Dann kehrt man zu einer Version zurück, nur um zu bemerken, dass eine andere Änderung weg ist, ...
  • Du kannst mehrere Entwicklungen parallel machen, zwischen beiden hin- und herschalten und am Ende beide zusammenführen
  • Du kannst einfach zu einer älteren Version zurückgehen und testen, ob ein Fehler dort schon drin war oder ob etwas dort anders funktioniert hat
  • Du kannst jederzeit im Quelltext etwas komplett ändern oder auch löschen um z.B. einen Fehler zu finden, da du die Version ja jederzeit wiederherstellen kannst


Jim Carrey 6. Nov 2016 09:58

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

Du siehst welche Änderungen du gemacht hast, wenn z.B. plötzlich etwas nicht mehr funktioniert
Finde ich sehr Schwach dieses Argument. Wenn etwas plötzlich nicht mehr funktioniert, weiß man in der Regel wo man kürzlich dran gearbeitet hat.

Zitat:

Du siehst beim Abschicken der Änderungen, ob du unbeabsichtigte Änderungen drin hast (z.B. Debugausgaben, ...)
Auch das sollte einem normalerweise nicht passieren und ist mir in mittlerweile 9 Jahren nicht passiert.

Zitat:

Du hast alle Dateien an genau einer definierten Stelle und brauchst nicht (wie es leider viele ohne Versionsverwaltung machen) Kopien anlegen, die dann evtl. aus Versehen benutzt werden usw.
Meine ZIP-Archive sind auch an einer definierten Stelle =)

Zitat:

Kopien, bei denen man dann wiederum nicht weiß was da eigentlich mittlerweile geändert wurde. Dann kehrt man zu einer Version zurück, nur um zu bemerken, dass eine andere Änderung weg ist, ...
Ebenfalls ein schwaches Argument wie ich finde. Man sollte seinen Code schon kennen.

Zitat:

Du kannst mehrere Entwicklungen parallel machen, zwischen beiden hin- und herschalten und am Ende beide zusammenführen
Du kannst einfach zu einer älteren Version zurückgehen und testen, ob ein Fehler dort schon drin war oder ob etwas dort anders funktioniert hat
Du kannst jederzeit im Quelltext etwas komplett ändern oder auch löschen um z.B. einen Fehler zu finden, da du die Version ja jederzeit wiederherstellen kannst
Das sind wenigstens drei nützliche Funktionen. Der Rest oben ist einfach Mumpitz wie ich finde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.
Seite 1 von 4  1 23     Letzte »    

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