Forum: PC Hard- und Software [SVN] - Release und Arbeits Ordner Dateien


von Philipp L. (philipp_l89)


Lesenswert?

Morsche und schönen Freitag zusammen. Also, folgende Idee bzw. folgendes 
Problem. Ich nutze TortoiseSVN in Version 1.7.13. unter Win7 und meine 
Ordnerstruktur ist die folgende:

--+--Arbeitsordner
  |  +-Ordner_1
  |  +-Ordner_2
  |  +-Ordner_3
  |
  +--ReleaseOrnder
     +Vers_A
     +Vers_B

In den Unterordnern meines Arbeitsordners habe ich zum Beispiel:
  Ordner_1: Code
  Ordner_2: geschriebenen Manuals für die verschiedenen Versionen
  Ordner_3: Entwicklungsdokumente

In den Release Ordner sollen nun die Dateien für die beiden 
verschiedenen Versionen rein, sagen wir es handelt sich zum Beispiel um 
ein Board das Spannungen misst, einmal mit Display in Version A, und 
einmal ohne Display in Version B. Dazu kommen dann in den Ordner Vers_A 
jeweils Dateien aus den verschiedenen Arbeitsordnern und in den Ordner 
Vers_B dann wiederum andere.

Die entscheidende Frage ist nun, ob es eine Möglichkeit gibt die Dateien 
in den ReleaseOrdnern als "versionierte Kopien" abzulegen. Dann würde 
ich sie nur einmal aus den Arbeitsordnern dort anlegen und mit jedem 
Commit->Update wären sie auf dem aktuellen stand? Mit versioned Copys 
funktioniert es bei mir nur lokal. Wenn ich sie lokal öffne haben sie 
den Inhalt der aktuellen versionen aus dem lokalen Ordner wenn ich sie 
dagegen im Repobrowser öffne sind es die veralteten aus einer ganz 
anderen Revision.

Habt ihr da Ideen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Philipp L. schrieb:
> Dann würde ich sie nur einmal aus den Arbeitsordnern dort anlegen und
> mit jedem Commit->Update wären sie auf dem aktuellen stand?

Nein, das ist nicht der Sinn einer Versionierung.  Die „Version“ bei
der Versionierung betrifft nicht zwei gleichzeitig und automatisch
parallel gepflegte Varianten, sondern zwei zu verschiedenen Zeiten
mehr oder minder „eingefrorene“ Stände ein und derselben Variante.

Eventuell helfen dir ja Externals für deinen Zweck?  Die kann man aber
nur auf Verzeichnisebene anbringen.  Man könnte sich also für Variante
A und B Verzeichnisse im Baum anlegen und dort dann bestimmte Teile
eines separaten Baums als “External” gewissermaßen einblenden.

von Rolf Magnus (Gast)


Lesenswert?

Philipp L. schrieb:
> Die entscheidende Frage ist nun, ob es eine Möglichkeit gibt die Dateien
> in den ReleaseOrdnern als "versionierte Kopien" abzulegen. Dann würde
> ich sie nur einmal aus den Arbeitsordnern dort anlegen und mit jedem
> Commit->Update wären sie auf dem aktuellen stand?

Wozu soll das gut sein?

Philipp L. schrieb:
> Wenn ich sie lokal öffne haben sie
> den Inhalt der aktuellen versionen aus dem lokalen Ordner wenn ich sie
> dagegen im Repobrowser öffne sind es die veralteten aus einer ganz
> anderen Revision.

Man arbeitet doch eh immer mit der lokalen working copy.

von Philipp L. (philipp_l89)


Lesenswert?

Ja, dass es nicht Sinn der Versionierung ist weiß ich, ich dachte nur, 
dass es eine angenehme Möglichkeit wäre.

Die tatsächliche Ordnerstrutkur hat ca. 7 Arbeitsordner mit 57 Dateien 
und die "Release" Struktur 6 Ordner, auf die die 57 Dateien aufgeteilt 
werden, wobei eine Datei aus den Arbeitsordnern mehrfach in 
verschiedenen Releaseordner vorkommen kann. Um jetzt nicht nach der 
Änderung einer Datei diese in allen Releaseordnern ändern zu müssen, 
dachte ich auf irgendeine Weise einen Branch/Merge/Switch Befehl in 
Verbindung mit "copy versioned items" missbrauchen zu können um dass zu 
erreichen.

von Rolf Magnus (Gast)


Lesenswert?

Hmm, also unter "Release" verstehe ich etwas, das sich nicht mehr 
ändert.  Also ich habe einen laufenden Entwicklungszweig, und irgendwann 
wird ein Stand eingefroren, und das ist dann die Release. Und der darf 
nie mehr verändert werden, denn sonst hätte man zwei unterschiedliche 
Stände mit der selben Release-Nummer.

von Philipp L. (philipp_l89)


Lesenswert?

Rolf Magnus schrieb:
> Hmm, also unter "Release" verstehe ich etwas, das sich nicht mehr
> ändert.  Also ich habe einen laufenden Entwicklungszweig, und irgendwann
> wird ein Stand eingefroren, und das ist dann die Release. Und der darf
> nie mehr verändert werden, denn sonst hätte man zwei unterschiedliche
> Stände mit der selben Release-Nummer.

Unter dem Aspekt hast Du recht. Die "User" sollen nur Zugriff zu dem 
Releaseordner haben und sich keinen Kopf darum machen was auf der 
Entwicklungsseite geschieht, daher dieser Ansatz. Es geht nicht darum 
strikt unterscheiden zu können zwischen Version 1 und Version 1.0.1. 
Ansonsten würde ich zum Release auch einfach einen Export machen und bei 
Änderungen dann einen neuen usw. Wie man es halt so macht. Die anderen 
Kollegen, die mit an dem Projekt Arbeiten sind da allerdings 
etwas...sagen wir mal unfirm mit dem SVN Umgang. Ich bin nur 
eingesprungen und auch bald schon wieder raus und das war sozusagen ihr 
Wunsch (nachdem sie gesehen haben, dass es mit "Verknüpfung erstellen" 
nicht funktioniert hat...)

von Konrad S. (maybee)


Lesenswert?

Jörg Wunsch schrieb:
> Eventuell helfen dir ja Externals für deinen Zweck?  Die kann man aber
> nur auf Verzeichnisebene anbringen.

Es ist zwar schon ein bisschen her, aber ...
http://subversion.apache.org/docs/release-notes/1.6.html#externals

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Eventuell helfen dir ja Externals für deinen Zweck?

Sehe ich auch so, Externals kann man (wenn man sich der Einschränkungen 
bewusst ist) für so was ganz gut nutzen siehe:

http://svnbook.red-bean.com/en/1.0/ch07s03.html

Das kann besonders praktisch sein, wenn wie hier, man eigentlich ein 
Sammelsurium verschiedener Orte benötigen würde, klar kann man das auch 
händisch herstellen.

Da man externals auch auf eine feste Revision setzen kann, kann man hier 
das auch innerhalb "echter" Releases nutzen, ist nur etwas mehr Aufwand.

von Konrad S. (maybee)


Lesenswert?


von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Konrad S. schrieb:
> Ohjeh, noch so ein Verweis in die Vergangenheit

Besser als ein Verweis in eine ungewisse Zukunft ;-P

> This text is a work in progress—highly subject to change—and
> may not accurately describe any released version of the Apache™
> Subversion® software.
> Bookmarking or otherwise referring others to this page is
> probably not such a smart idea.

von Philipp L. (philipp_l89)


Lesenswert?

Danke für die Hinweise mit den Externals. Habe es jetzt so gelöst. Auch 
wenn es etwas umständlich ist und der benötigte Speicherplatz dezent in 
die Höhe gegangen ist funktioniert es jetzt. ;)

von Konrad S. (maybee)


Lesenswert?

Läubi .. schrieb:
>> This text is a work in progress—highly subject to change—and
   ^^^^^^^^^
Gottseidank bezieht sich das nur auf den Text und nicht auf die 
Funktionalität von SVN. Ich nutze File-Externals schon seit ein paar 
Jahren.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Philipp L. schrieb:
> der benötigte Speicherplatz dezent in die Höhe gegangen ist
Das ist aber nur in deiner Workingcopy und nur wenn du mit include 
externals auscheckst.

Konrad S. schrieb:
> Gottseidank bezieht sich das nur auf den Text und nicht auf die
> Funktionalität von SVN

War jetzt auch nicht ganz ernst gemeint ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.