Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SVN-Branch mit automatischem Comit (https://www.delphipraxis.net/160905-svn-branch-mit-automatischem-comit.html)

himitsu 7. Jun 2011 10:00


SVN-Branch mit automatischem Comit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

ich hab da so eine Idee, aber keine Ahnung, ob/wie das geht.

Wir haben unser Projekt via Subversion gesichert.
Nun würde ich gerne einen "parallelen" Branch erzeugen, so für Testzwecke.

Wäre dann praktisch, wenn man nun Einzelteile davon manuell in den "Hauptentwicklungsbranch" kopieren/einfügen kann
und im Gegenzug "automatisch" alle Änderungen am Hauptbranch in diesen Testbranch kopiert würden.


Hat da wer Ideen/Tipps?

Phoenix 7. Jun 2011 10:22

AW: SVN-Branch mit utomatischem Comit
 
Nein, das geht nicht. Du musst die Änderungen im Trunk immer manuell in Deinen aktuellen Entwicklungs-Branch mergen. Du kannst Dir allerdings ein Batchfile schreiben, was das automatisiert und dabei automatisch alle auftretenden Konflikte auf 'resolve all later' setzt.

Genau diese Konflikte sind nämlich das Problem. Wenn sich im trunk und in Deinem Branch an der gleichen Stelle etwas ändert, ist ein manueller Eingriff zwingend notwendig um das aufzulösen.

blackfin 7. Jun 2011 10:39

AW: SVN-Branch mit utomatischem Comit
 
Zitat:

Wenn sich im trunk und in Deinem Branch an der gleichen Stelle etwas ändert, ist ein manueller Eingriff zwingend notwendig um das aufzulösen.
Das stimmt nicht ganz (auf den ztwingenden manuellen Eingriff bezogen), vielleicht hilft dir das weiter:
Es gibt für "Automatismen" dieser Art die command line switches

--accept theirs-full
--accept mine-full

um Konflikte auch ohne Interaktion zu lösen.

Also z.B.

svn resolve --accept mine-full
svn commit -m ""

(überschreibt alle Konflikte im repository mit deinen dateien)

und

svn update --accept theirs full

(überschreibt alle Konflikte in deiner working copy mit denen aus dem repository)

Um den Branch in den Trunk zu mergen, kannst du das ja auch serverseitig über einen Cronjob / Trigger etc. machen.


Einen guten Überblick über merge, branch, reintegrate (eigentlich genau das, was du machen willst, soweit ich das verstanden habe), findest du auch hier:
Subversion Howto Branch, Merge, Reintegrate

himitsu 7. Jun 2011 14:13

AW: SVN-Branch mit utomatischem Comit
 
Solange die Konflikte im SVN mit den aktuellen Daten des Hauptzweiges behoben werden, bleiben diese Änderungen ja erstmal in den lokalen Kopieen der Programmierer erhalten, wo man dann immernoch reagieren kann, beim nächsten Update. :stupid:

Na dann mal sehn, ob ich da etwas hinbekomm.
Danke erstmal für die Hilfe.

himitsu 10. Aug 2011 14:24

AW: SVN-Branch mit automatischem Comit
 
Irgendwie bekomm ich es einfach nicht hin :cry:

also
- ich hab mit mal einen Test-Trunk erstellt "Test_1", mit zwei Dateien drin
- von diesem wurde ein Branch "Test_2" angelegt
- dann hab ich im Trunk "Test_1" eine der beiden Dateien geändert
- und nun kommt es ... jetzt wollte ich ein Merge von "Test_1" in die lokale Kopie des Branches "Test_2" machen

Code:
TortoiseProc /command:merge /path:"S:\Test_2" svn://.../Test_1 /closeonend:3

REM entspricht (aktives Verzeichnis = S:\Test_2)

SVN merge svn://.../Test_1
if ERRORLEVEL 1   PAUSE
Ergebnis:
Code:
--- Merging r6759 through r6798 into '.':
   C Neue Bitmap.bmp
   C Neues Textdokument.txt
Summary of conflicts:
  Tree conflicts: 2
Im Branch wurde lokal (noch) nichts verändert.
Im Trunk wurde nur die Textdatei verändert, aber das Bitmap ist noch so, wie zum Zeitpunkt der Brancherstellung.


Theoretisch dürfte es also mit dem Bitmap keinerlei Probleme geben, da es unverändert ist und da die Textdatei im Branch unverändert ist, wäre es doch ein Leichtes einfach die neuere Version aus'm Trunk zu mergen/importieren,
aber nee, es wird komplett gemeckert. :gruebel:

--accept theirs-full
--accept mine-full
--accept mine-conflict
haben auf den "svn"-Befehl keine Wirkung und TortoiseProc scheint da auch nichts zu kennen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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