[linux-l] Re: VCS
Mike Dornberger
Mike.Dornberger at gmx.de
Fr Apr 21 12:42:43 CEST 2006
Hi,
On Thu, Apr 20, 2006 at 11:48:50PM +0200, Steffen Dettmer wrote:
> Das Beispiel ist wie folgt: Du schickst mir ein File zur Info einfach
> aus Deiner Sandbox. Sagen wir mal "hallo.c". Du arbeitest weiter. Drei
> Wochen später schicke ich Dir hallo.c zurück und bitte Dich "das file
> bitte einzuchecken". Nun geht das nicht, weil Du es auch geändert hast.
> Jetzt hättest Du gern ein unified diff, geht aber auch nicht, weil Du
> das Orginal der Datei nicht hast.
>
> Hilft Dir SVN hier?
>
> Bei CVS und Keywords ist das einfach: in $Name$ oder $Header$ steht, was
> das genaue Orginal war. Also kann man in dem Fall diese Version holen
> (up -r <name>), dann das File drüberkopieren. Die Änderungen sieht man
> dann via cvs diff, kann das diff zum Branchpoint hochziehen (falls keine
> Konflikte) oder als Branch einchecken und zum Branchpoint mergen, wie
> auch immer.
wenn ich dich nicht komplett falsch verstanden habe, ja:
http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.special.keywords
(oder für svn 1.1 http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.4 )
Wenn du $HeadURL$ und $Rev$ in die Datei einbaust (und Subversion per
svn:keywords Property sagst, daß er die Keywords auch ersetzen soll), steht
dann da halt, von wo und in welcher Revision die Datei stammt. Dann kannst
du per svn update -r <revision> <filepath> oder svn checkout -r <revision>
<url> die Datei immer wieder in der Version herstellen.
Allerdings würde ich mir wohl angewöhnen (hab bis jetzt noch nicht viel mit
VCSen gearbeitet), wenn ich jemanden irgendwas schicke, was es _so_ noch
nicht im Repository gibt, da einen extra Branch für zu machen (ist ja
zumindest in Subversion kein Problem: svn copy -r <rev1> <url1> <url2>) und
dann da die Datei aus der Sandbox hinzucommitten (geht mit svn switch auch
recht gut; siehe Kommandoreferenz im svn-Buch).
Allerdings geht das alles natürlich nur dann gut, wenn derjenige, dem du die
Datei schickst und er Änderungen daran macht, nicht an diesen (expandierten)
Keywords herumspielt, wie Volker das auch schon erwähnte. Dazu könnte man ja
erstmal hinschreiben, daß der Empfänger keinesfalls an diesen Keywords was
ändern soll und sich dann außerdem selbst ne Hash-Funktion schreiben, deren
Ergebnis über die Keywords man mit die Datei schreibt. (Leider hat
Subversion (noch?) keine Client-Hooks, mit denen man sowas automatisch
machen könnte.)
Achso: Wenn man grundsätzlich bei neuen Dateien will, daß entsprechende
Keywords expandiert werden, kann man daß per Auto-Properties machen. Siehe
dazu: http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.auto
(oder http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.4 )
Gruß,
Mike
Mehr Informationen über die Mailingliste linux-l