![]() |
Subversion: ja/nein bei folgender Anforderung
Hallo,
für ein kleines Projekt habe ich ein SVN-Repository aufgesetzt, soweit so gut. Projekt1.dpr Unit1.pas Unit2.pas Unit3.pas Ich arbeite in Unit2 schon mal an 2 Features und checke das auch ein. Halt! Vorher wird ein Branch dafür angelegt. Ich will ja, dass ich die aktuelle Version (Trunk) immer auch an einem anderen Rechner auschecken kann. Feature 1 ist fertig, Feature 2 noch nicht. Jetzt soll Feature 1 in den Trunk gemerged werden. Das Mergen klappt doch aber nur über Revisions (?). In der letzten Revision sind aber auch die unvollständigen Teile von Feature 2 drin. Wie bekomme ich das jetzt hin, nur Feature 1 zu mergen? So richtig verstehe ich das Subversion hier nicht. Muss ich da 2 Branches nehmen? Wenn ich 10 Features parallel entwickle, muss ich da 10 Branches nehmen, falls ich die einzeln später in die Release-Version reinhaben will? Das SVN-RedBook zeigt ja immer nur den Idealfall (alles im Branch wird gemerged). |
AW: Subversion: ja/nein bei folgender Anforderung
Mit Subversion verlassen mich langsam die Erinnerungen, aber das Redbook scheint da eigentlich doch konkret zu antworten auf deine Frage "Muss ich da 2 Branches nehmen?":
Zitat:
![]() |
AW: Subversion: ja/nein bei folgender Anforderung
Also, ich bin letztlich auch nur relativ einfacher Benutzer von SVN über TurtoiseSVN und kenne sicherlich nicht alle ganz fiesen Tricks, die irgendwo verborgen sind, aber so, wie du beschreibst, was du machst: ja, wenn du parallel an 10 neuen Features arbeitest, von denen die anderen noch halbfertig sind (und damit den Trunk instabil machen, siehe Günthers Anmerkung), dann bräuchtest du 10 Branches.
Wenn du das vermeiden willst, dann müsste zumindest die Änderung in einem Commit sauber sein und sich nur auf eines deiner Features beziehen, dann könntest du einzelne Revisions zurück in den Stamm mergen und damit ein neues Feature einführen. Wenn aber in einem einzelnen Commit die Änderungen sind, die ein Feature fertigstellen, zugleich aber ein anderes Feature halb anfangen, dann wird es schwierig. Eine Möglichkeit, sozusagen nur halbe Revisions zurückzumergen, habe ich bisher noch nicht gefunden (aber auch nicht gesucht ;) ). |
AW: Subversion: ja/nein bei folgender Anforderung
Hallo,
#Günther' oha, habe ich wohl doch überlesen. Peer Review, ja das wollte ich vermeiden. Ich habe hier stellenweise Änderungen von vor 2 Jahren, die immer noch im Code schlummern, aber nicht released werden, weil ich sie noch nicht komplett testen konnte. Aber bei dem vorgeschlagenen Weg, nur dann Branches zu machen, wenn jemand lange isoliert an Features arbeitet, brauche ich ja gar kein Branches ;) #Bbommel#: Ja, habe ich auch nicht gefunden. Ein Beispiel: Unit 2 Feature 1.0: Farbe im Grid ist blau. Feature 1.1: Farbe im Grid wird anhand anderer Werte berechnet Faeture 2 : Grid enthält zusätzliche Daten Jetzt will ich Feature 1.1 aktivieren, Feature 2 ist aber ungetestet und soll deshalb noch nicht aktiviert werden. |
AW: Subversion: ja/nein bei folgender Anforderung
Alles auf einen Haufen werfen hört sich aber nicht gut an :oops:
Ich frage mal anders herum: Was spricht eigentlich dagegen? |
AW: Subversion: ja/nein bei folgender Anforderung
Hallo,
#Alles auf einen Haufen werfen# ? Was meinst du damit? |
AW: Subversion: ja/nein bei folgender Anforderung
Sobald ich mir bei der Benutzung einer Software mehr als N Fragen stellen muss ist für mich klar, dass ich diese nicht verwende.
Ich persönlich halte von SVN und Git absolut nichts. Das ist alles nur verlorene Zeit für nicht und wieder nichts. Ich mache meine Backups alle automatisiert in ZIP-Dateien! Alles immer auf einmal. Und wenn ich meine Codes vergleichen möchte, gibt es noch immer BeyondCompare. Ein super Programm! |
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
Nichtmal auf meiner ehemaligen Arbeitsstelle mit ca. 10 Programmierern haben wir so einen Aufstand gemacht. Jeder hat an etwas programmiert und wenn er fertig war hat er es eingecheckt. Das geht zu 99,9% ohne Probleme. In 0,1% muss man dann vllt. auch mal etwas von Hand mergen. |
AW: Subversion: ja/nein bei folgender Anforderung
Hallo
#Jeder hat an etwas programmiert und wenn er fertig war hat er es eingecheckt.# Und was ist, wenn er an Unit1 arbeitet (noch nicht eingecheckt). Jetzt wird ein Bug in ebend dieser Unit1 gefunden, von ihm behoben und ... einchecken: nicht fertige Sachen werden mit eingecheckt nicht einchecken: Bug kommt nicht ins Release Er könnte jetzt: - seine Unit1 mit den lokalen Änderungen retten - Update to Revision X - Bug beheben - Commit (in Branch oder Trunk, was auch immer) - gerettete Unit1 zurück - Update, damit auch Merge mit dem Committed Bug Also wenn da nicht Fehler vorprogrammiert sind ... Das kommt bei uns leider öfters vor. Das mit dem Zippen geht nicht, wir sind auch mehrere Entwickler. Das mit dem einfachen Beispiel war ebend wegen der Einfachheit des Erklärens. |
AW: Subversion: ja/nein bei folgender Anforderung
Bei Tortoise SVN gibt es "restore after commit", das stellt die ursprüngliche Version einer Datei nach dem Committen wieder her indem es eine temporäre Kopie erzeugt.
Damit ist es möglich nur eine Änderung einer Datei zu committen ohne eine zweite Änderung zu verlieren oder sie vorher retten zu müssen. |
AW: Subversion: ja/nein bei folgender Anforderung
Das wollte ich grade sagen. Du kannst doch nur einen Teil der Datei committen, niemand zwingt dich die ganze Datei zu nehmen. Hat Subversion nicht mittlerweile auch so etwas was git "stash" (oder Mercurial "shelve") nennt? Damit kannst du Changesets nehmen und sie beiseite legen.
|
AW: Subversion: ja/nein bei folgender Anforderung
Gerade für viele "hängende" Features würde ich lieber Git nehmen. Bei Git sind Branches keine Last wie bei SVN (wo da relativ viel kopiert wird usw.), sondern können jederzeit ohne Probleme erstellt und wieder gemerged werden.
Dazu kommt, dass direkt im Sync-Dialog das Stash Save und Stash Apply drin ist um eigene Änderungen zwischenzuspeichern und später wieder einzuspielen. Zitat:
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Gibt es auche ordentliche GUI für Git (lokal, nicht online), die auch funktioniert?
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Ich nutzte Git zwar selber nicht, nur wenn ich mal was aus irgendeinem Git-Repo runterladen muß.
Hab mir dafür Tortoise Git installiert, damit es wenigstens zum Tortoise SVN passt und ich mir für Git keine selten benötigte Consolenparameter merken muß. Wäre nur zu praktisch, wenn Tortoise bissl intelligenter wäre und aufräumt. (z.B. wenn ich in 'nem SVN-Repo bin, dann brauch ich kein Git-Menü im Explorer, bzw. abgesehn vom Auscheckten/Exportieren können auch beide Menüs kombiniert/gleich aufgebaut sein) |
AW: Subversion: ja/nein bei folgender Anforderung
Was wäre eigentlich, wenn Githib mal gehackt wird? Dann hätte der Pirat doch quasi alle Source-Codes?
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
![]() |
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
![]() ![]() |
AW: Subversion: ja/nein bei folgender Anforderung
Ja ist doch egal wie man es schreibt :P Ich meine die Website :P
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
![]() |
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Hallo,
nette Diskussion, geht also nicht nur mir so ;) Das wollte ich grade sagen. Du kannst doch nur einen Teil der Datei committen, niemand zwingt dich die ganze Datei zu nehmen. Hat Subversion nicht mittlerweile auch so etwas was git "stash" (oder Mercurial "shelve") nennt? Damit kannst du Changesets nehmen und sie beiseite legen. Wie kann ich denn nur eine Teil einer Datei committen ??? Klar kann ich die anderen Änderungen vor dem Commit löschen (Sicherheitskopie !!!), aber committed wird doch immer eine Datei? |
AW: Subversion: ja/nein bei folgender Anforderung
Ich habe leider kein Subversion mehr installiert und kann dir keine Bilder machen.
Hier die Anleitung ![]() Und hier ein Bild ![]() Im Endeffekt war es ein Anhaken von "Stelle mir die Datei danach wieder her", dann Rückgängig-Machen deiner ungewollten Änderungen, dann committen, dann waren die restlichen Änderungen wieder da. Hört sich kompliziert an, ich hatte es ständig gemacht. In Mercurial (git nutze ich fast nicht) schiebe ich das ungewollte immer auf den stash und danach wieder rein. Die Subversion-Variante hat mir sogar besser gefallen. |
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
|
AW: Subversion: ja/nein bei folgender Anforderung
Zitat:
![]() Grüße, Christoph |
AW: Subversion: ja/nein bei folgender Anforderung
Kleine Frage am Rande: Nutzt jemand den Microsoft Team Foundation Server mit/für Delphi:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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