Setzen von Properties in Subversion

22. März 2007

Subversion erlaubt für jede Datei und jedes Verzeichnis im Repository das Setzen von Metadaten bzw. Properties. Über diese Properties werden zum Beispiel der Mime-Type, Ersetzungszeichenfolgen (svn:keywords) oder Ingnore-Patterns definiert.
Damit man nicht immer alle Properties per Hand setzen muß, kann dies automatisch beim Hinzufügen von Dateien zum Repository geschehen. Dazu muß in der lokalen Config-Datei des Subversion-Clients folgende Zeile in der Section [miscellany] auskommentiert werden:

enable-auto-props = yes

Anschliessend lassen sich für beliebige Dateitypen die Auto-Properties in der Section [auto-props] definieren. Beispiel:

*.txt = svn:eol-style=native
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
*.cs = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.aspx = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.ascx = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.sql = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.css = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.skin = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.js = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.doc = svn:needs-lock=*

Dies gilt allerdings nur für Dateien, die sich noch nicht im Repository befinden! Bei schon im Repository vorhandenen Datei muß dies explizit eingestellt werden (über den Eigenschaftendialog):

Subversion

Kommentarheader für ASP.NET Seiten mit Subversion Keywords

9. Februar 2007
Subversion unterstützt das Ersetzen von Keywords im Sourcecode. Hierzu müssen für die jeweiligen Dateien die entscheidenen Properties gesetzt werden. Beispiel: HeadURL LastChangedBy LastChangedRevision LastChangedDate

In C# Dateien sieht dann ein Kommentarheader folgendermaßen aus:

//===============================================================================
// $HeadURL$
// $LastChangedBy$
// $LastChangedRevision$
// $LastChangedDate$
// Copyright   : 2006-2007, ITDevCon Germany
// Autor       : Sven Soennichsen
// Beschreibung: Ausführliche Beschreibung
//===============================================================================


In ASPX Dateien empfiehlt sich folgendes Format:

<%--
  //===============================================================================
  // $HeadURL$
  // $LastChangedBy$
  // $LastChangedRevision$
  // $LastChangedDate$
  // Copyright   : 2006-2007, ITDevCon Germany
  // Autor       : Sven Soennichsen
  // Beschreibung: Ausführliche Beschreibung

  //===============================================================================
—%>

Subversion ersetzt dann beim Commit die Keywords mit den tatsächlichen Tatbeständen.

Development, Subversion

Subversion Keywords

14. Juni 2006
Die Versionsverwaltung Subversion bietet durch Keywords die Möglichkeit im SourceCode Metadaten von Subversion selbst einzufügen. Folgende Keywords sind möglich:
Date

This keyword describes the last time the file was known to have been changed in the repository, and looks something like $Date: 2002-07-22 21:42:37 -0700 (Mon, 22 Jul 2002) $. It may also be specified as LastChangedDate.

Revision

This keyword describes the last known revision in which this file changed in the repository, and looks something like $Revision: 144 $. It may also be specified as LastChangedRevision or Rev.

Author

This keyword describes the last known user to change this file in the repository, and looks something like $Author: harry $. It may also be specified as LastChangedBy.

HeadURL

This keyword describes the full URL to the latest version of the file in the repository, and looks something like $HeadURL: http://svn.collab.net/repos/trunk/README $. It may be abbreviated as URL.

Id

This keyword is a compressed combination of the other keywords. Its substitution looks something like $Id: calc.c 148 2002-07-28 21:30:43Z sally $, and is interpreted to mean that the file calc.c was last changed in revision 148 on the evening of July 28, 2002 by the user sally.

Das Setzen der Keywords erfolgt entweder mittels

svn propset svn:keywords “Date Author” weather.txt

oder über TortoiseSVN im Eigenschaftendialog des Explorers (siehe Bild).

Damit auch neue Dateien mit den korrekten Keywords versehen werden, muss die Konfigurationsdatei für Subversion (über TortoiseSVN Settings – Edit configuration file) angepasst werden. Zuerst ist dabei folgende Einstellung zu setzen:

enable-auto-props = yes

und anschliessend können default Eigenschaften für bestimmte Dateitypen definiert werden:

*.cs = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.aspx = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate

Im Source Code selbst müssen an der gewünschten Stelle die entsprechenden Keywords mit $-Zeichen umgeben platziert werden:
$HeadURL$  $LastChangedDate$ $LastChangedRevision$ $LastChangedBy$ 



Subversion

ASP.NET Projekte auf Netzlaufwerken mit Subversion in Visual Studio

2. Januar 2006

Achtung: Das Subversion Plugin Ankh unterstützt momentan (V0.6) nicht die Verwendung von Netzlaufwerken. Dies liegt daran, dass der IIS intern nicht mit einem Laufwerksbuchstaben arbeitet, sondern mit \\Server\Freigabename.

Daher meine Empfehlung: ASP.NET Projekt auf der lokalen Platte anlegen! 

Subversion

ASP.NET Projekte mit Subversion in Visual Studio

2. Januar 2006

Anlegen einer lokalen ASP.NET Webanwendung mit Visual Studio 2005 mit Subversion als Versionsverwaltung (Ankh Plugin muss installiert sein):

  • Neue Solution anlegen (C:\WorkDir\TestProjekt\TestProjekt.sln).
  • Neues Verzeichnis für die Webanwendung anlegen (C:\WorkDir\TestProjekt\TestProjektWebApp).
  • Neues virtuelles Verzeichnis im IIS einrichten. Virtueller Verzeichnisname sollte mit tatsächlichem Verzeichnisnamen übereinstimmen!
  • Neue “ASP.NET Web Site” mit Location http://localhost/TestProjektWebApp anlegen.
  • Evtl. neues Projekt vom Typ “Class Library” anlegen.
  • Im Kontextmenü der Solution “Add Solution to Subversion Repository…” auswählen. Als URL svn://server/Verzeichnis auswählen (Create Subdirectory anwählen, falls Verzeichnis noch nicht existiert).

Subversion

Subversion unter Windows

22. Dezember 2005

Ohne eine Versionsverwaltung sollte kein Entwickler arbeiten. Auch nicht, wenn er als Einzelkämpfer tätig ist. Denn durch eine Versionsverwaltung kann sichergestellt werden, dass:

  • Änderungen nachvollziehbar, sichtbar und rückgängig gemacht werden können
  • Versionen mit allen Sourcen als Paket geschnürt werden können

Als Alternative zu kommerziellen Versionsverwaltungen steht Subversion zur verfügung, der inoffizielle Nachfolger von CVS. Eine Ausführliche Doku in Buchform kann hier eingesehen werden: http://svnbook.red-bean.com/

Eine super Installationsanleitung zur Verwendung von Subversion auf einem dedizierten Server findet sich unter: http://www.fh-bochum.de/fb3/meva-lab/docu/subversion-install-tipp.txt. Den SVN Service Wrapper for Windows gibt es unter: http://dark.clansoft.dk/~mbn/svnservice/.

Auf dem Client kann neben Subversion das Tool TortoiseSVN (http://tortoisesvn.tigris.org/) installiert werden. Dadurch wird die Versionsverwaltung durch Integration in das Kontextmenü im Windows Explorer deutlich komfortabler. Zusätzlich lässt sich mit AnkhSVN (http://ankhsvn.tigris.org/) eine Integration in Visual Studio .NET (Version 2003 und 2005) erreichen. Die Subversion API lässt sich über http://www.softec.st/ClrProjects/wiki/SubversionSharp in C# einbinden und für die Konvertierung von Visual Source Safe zu Subversion gibt es ein Perl Script: http://vss2svn.tigris.org/ 

 

Subversion