Hallo Liste,
gegeben ist folgender Fall, von einer ursprünglichen Version eines Projektes spalten sich zwei verschiedene Varianten A und B ab, die sich nur in ein paar Dateien unterscheiden.
_______A / ------------HEAD _______B
Nun wäre es schön, wenn die Dateien, die zwischen A und HEAD und B und HEAD identisch sind ohne großes Mergen automatisch aktualisiert werden könnten, wenn diese in HEAD geändert wurden. Läßt sich sowas mit CVS bewerkstelligen? Wenn man A und B von HEAD branched, dann müßte man ja immer die Änderungen in HEAD manuell in A und B mergen.
Tschau,
andre
On Wed, Feb 16, 2005 at 05:16:21PM +0100, Andre Schulze wrote:
Hallo Liste,
Hi Andre,
Nun wäre es schön, wenn die Dateien, die zwischen A und HEAD und B und HEAD identisch sind ohne großes Mergen automatisch aktualisiert werden könnten, wenn diese in HEAD geändert wurden.
Hmm, du kannst halt ein Script schreiben das vor dem commit nach HEAD ein diff zwischen HEAD und A/B macht, und wenn es da keine Unterschiede gibt, das neue Patch gleich mit nach A und B schreibt.
Läßt sich sowas mit CVS bewerkstelligen?
CVS bietet ja einige hooks an, da lässt sich sicher was machen... hab von der administrativen Seite von CVS allerdings weniger Ahnung.
Ciao, Tobias
Am Mi, 16. Feb 2005 07:15:30 +0100, schrieb Tobias Koenig:
Läßt sich sowas mit CVS bewerkstelligen?
CVS bietet ja einige hooks an, da lässt sich sicher was machen... hab von der administrativen Seite von CVS allerdings weniger Ahnung.
global weiß ich nicht wie, aber bei meiner Diplomarbeit hab ich einfach die Latex-Packete und Klassen aus HEAD in allen Branches verwendet. Sieh dir mal CVS/Entries an. Dort steht das Tag für jede Datei einzeln drin.
Wenn man dann Änderungen an einer gemeinsamen Datei gemacht hat, muss man sich dann was einfallen lassen. Ich hatte in meinem Makefile folgende Zeile mit drin stehen:
tags: cvs tag -r HEAD -b -F -B russisch \ {tsdiplom,situationstheorie,algebra,tsabk,utf8ienc,xtheorem,pdfcprot,xparse,template}.{dtx,ins} ldcsetup.dtx\ Makefile {hyperref,natbib}.cfg {kloetzer,liniendiagramm,logo-mggru}.mp \ kloetzer.tex logo-tubaf.ps tsdvips.def Trennungen.tex pplmnT2A.cpa
Hallo an die zwei Tobias,
Am Thu den 17 Feb 2005 um 01:21:42AM +0100 schrieb Tobias Schlemmer:
Am Mi, 16. Feb 2005 07:15:30 +0100, schrieb Tobias Koenig:
Läßt sich sowas mit CVS bewerkstelligen?
CVS bietet ja einige hooks an, da lässt sich sicher was machen... hab von der administrativen Seite von CVS allerdings weniger Ahnung.
Du meinst sicher, in CVSROOT/loginfo ein Skript einzutragen, welches anhand der neuen und alten Revisionsnummer ein Diff macht und schaut, ob sich das konfliktfrei anwenden läßt. Ist eine Option und hat den Vorteil, daß es für die Nutzer transparent wäre. Habe ich aber noch nicht untersucht. Was macht man aber im Falle eines Konfliktes? Hier muß der Nutzer informiert werden, geht sicher auch irgendwie... .
Tobias Schlemmer:
global weiß ich nicht wie, aber bei meiner Diplomarbeit hab ich einfach die Latex-Packete und Klassen aus HEAD in allen Branches verwendet. Sieh dir mal CVS/Entries an. Dort steht das Tag für jede Datei einzeln drin.
Das ist mir auch schon eingefallen, hatte da aber einen Denkfehler drin ;-) Meine Befürchtung war, daß beim Mischen von verschiedenen Branches automagisch Dateien des Branches durch HEAD überschrieben werden - ist aber nicht so.
Probiert habe ich jetzt folgendes: - HEAD angelegt - in einer zweiten Arbeitskopie, wo später branch A vorliegen soll noch mal HEAD ausgecheckt - selektiv einzelne Dateien von HEAD gebranched (was für ein Deutsch :-) und die Arbeitskopie auf den branch geupdated ( " ) und dabei -f benutzt (was die aktuellste Version einer Datei benutzt, wenn sie nicht im gewünschten Branch vorhanden ist) -> somit habe ich die Dateien, die sich unterscheiden im Branch und die Arbeitskopie ist nun ein Mix aus HEAD und Branch
- Dateien, die nicht aus HEAD in den Branch übernommen werden sollen, werden abgespalten (branched) und im Branch gelöscht
Soviel erst mal für's Archiv :-)
Tschau und Danke,
andre
Hi!
Andre Schulze [2005-02-16 17:16 +0100]:
Hallo Liste,
gegeben ist folgender Fall, von einer ursprünglichen Version eines Projektes spalten sich zwei verschiedene Varianten A und B ab, die sich nur in ein paar Dateien unterscheiden.
_______A /
------------HEAD _______B
Nun wäre es schön, wenn die Dateien, die zwischen A und HEAD und B und HEAD identisch sind ohne großes Mergen automatisch aktualisiert werden könnten, wenn diese in HEAD geändert wurden. Läßt sich sowas mit CVS bewerkstelligen? Wenn man A und B von HEAD branched, dann müßte man ja immer die Änderungen in HEAD manuell in A und B mergen.
Ohne groß einen Flamewar anfangen zu wollen: Das Nonplusultra in der Verwaltung verschiedener Zweige ist wohl immer noch GNU Arch, besonders in der Inkarnation von "bazaar":
Wenn man das einmal ne Weile nutzt, ist CVS irgendwie wie Steine aufeinanderklopfen...
Wenn daran Interesse besteht, lasse ich mich dazu auch gern mal etwas ausführlicher aus. :-)
Schönen Tag noch!
Martin
Hola,
Am Donnerstag, 17. Februar 2005 10:56 schrieb Martin Pitt:
Wenn man das einmal ne Weile nutzt, ist CVS irgendwie wie Steine aufeinanderklopfen...
Wenn daran Interesse besteht, lasse ich mich dazu auch gern mal etwas ausführlicher aus. :-)
(x) dafür Konrad wollte doch mal was über svn erzählen. Da wäre ein Versionsverwaltungsabend (oder auch 2) angebracht. Aktuell gibt es bei der Konvertierung des KDE-Repos auf svn ein paar Probleme... ob tla besser abschneiden würde, könnte ja ein Thema des Vortrages sein ;)
Josef
On Thu, 2005-02-17 at 10:56 +0100, Martin Pitt wrote:
Ohne groß einen Flamewar anfangen zu wollen: Das Nonplusultra in der Verwaltung verschiedener Zweige ist wohl immer noch GNU Arch, besonders in der Inkarnation von "bazaar":
Wenn man das einmal ne Weile nutzt, ist CVS irgendwie wie Steine aufeinanderklopfen...
Wenn daran Interesse besteht, lasse ich mich dazu auch gern mal etwas ausführlicher aus. :-)
Ja, bitte!
Eric
lug-dd@mailman.schlittermann.de