[linux-l] Re: VCS

Volker Grabsch vog at notjusthosting.com
So Apr 23 01:34:34 CEST 2006


On Sat, Apr 22, 2006 at 12:37:34PM +0200, Rocco Rutte wrote:
> * Steffen Dettmer <steffen at dett.de>:
> 
> >>> Ja, und es geht einfach, weil in dem exp-Branch keiner was anderes
> >>> geändert haben sollte. Im trunk kann man selten "einfach so" reverten.
> >>
> >>Doch, schon. Aber nur in Changeset-basierten VCS.
> 
> >Ich glaube das nicht. Wie soll das funktionieren? Mit einem "diff" tool,
> >dass C Quelltext gramatikalisch analysiert oder wie? Der erste führt ne
> >neue Variable ein, der zweite initialisiert sie nicht direkt, sondern
> >über eine refaktorisierte Funktion, der dritte benennt sie um und der
> >vierte baut eine Prüfung und ein logstatement ein. Wie willte jetzt die
> >zweite Änderung (und nur die) reverten?!
> 
> In dem man den zweiten Commit revertet? ;-)
> 
> Klar, das ist sinnlos, weil dann der Code kaputt ist, aber dafür kann 
> die Versionskontrolle nichts.
> 
> Ich habe noch nicht genau herausgefunden, was mit "Changeset" genau 
> gemeint ist,

Das ist, wie der Name schon sagt, eine Menge von Änderungen. Eine
Änderung kann z.B. sein:

* Umbenennen/Verschieben von Dateien
* Anlegen/Löschen von Dateien
* Austauschen bestimmter Bereiche in Dateien (das, was "patch" macht)

Manche VCS haben auch noch impetto:
* Regex-Ersetzung in einer Datei
* Verschieben/Anlegen/Löschen eines Verzeichnisses

(ersteres kann Darcs, zweiteres wird von einigen SCM absichtlich nicht
unterstützt, weil's Overkill ist)

Ganz grob kann man sich ein Changeset also wie einen Patch vorstellen,
nur leistungsfähiger. Die genauen Details sind abhängig vom SCM, daher
redet man allgemein vom "Changeset", um nicht zu viel vorweg zu nehmen.

> aber ich denke mal, dass ein Commit atomar ist, mehrere 
> Dateien betrifft und nur als ganzes existiert (ein Commit in git, eine 
> Rivision in Subversion, etc).

Stimmt genau.

> Da ist ein revert mit einem Changeset-basierten VCS natürlich einfacher 
> statt sich für deine 2. Änderung in CVS alle betroffenen Dateien 
> rauszusuchen.
> 
> Vor allem, weil ein revert mehr ist als nur 'diff | patch -R', weil die 
> meisten VCS auch rename können.

ACK.


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l