TortoiseSVN Skript um Info in Quellcode zu schreiben

mr_asman

Grünschnabel
Hallo,

ich möchte TortoiseSVN als Versionskontrolle benutzen.
Leider kenne ich mich mit den Skripten überhaupt nicht aus.
SVN läuft unter Windows, und es sollen normale Textdateien verwaltet werden.
Ich möchte nun gerne das bei einer neuer Version, die Versionsnummer als Information in den Kopf der Datei geschrieben wird, mit folgendem Format:

// $Id: [Dateiname] [Version] [Datum] [Uhrzeit] Exp $

Für Antworten schon mal besten Dank im voraus :)
 
Die Datei muss natürlich erstmal in der Versionskontrolle sein, davon geh ich jetzt einfach mal aus. (Notfalls entspreche Repository anlegen und Datei per Kontextmenü und "Add" dorthin hinzufügen) Danach per Rechtsklick auf die Datei auf "Eigenschaften" gehen und dort den Reiter "Subversion" auswählen. Dort angekommen wählst du unten im Dropdown-Menü "svn:keywords" aus und gibts ins Feld darunter "Id" ein. Anschließen mit "Set" und "OK" absegnen. Nun musst du nur noch in die Datei an beliebiger Stelle "$Id" hinzufügen, und schon wird bei jedem Commit die Variable entsprechend gesetzt.
 
Besten Dank für die Antwort! Hat funktioniert :)

Nur die Uhrzeit passt nicht ist -2 Stunden.
Wo kann ich denn angeben das SVN die Systemzeit nehmen soll :confused:
 
SVN nimmt für die Zeitangaben immer UTC als Referenzzeit, mit dem Keyword "Date" (auf selbem Wege zu realisieren) erhälst du das lokale Datum.
 
Hallo!

Ich habe hier etwas ähnliches vor. Und zwar verwalten wir ein grösseres C# Projekt mit Subversion + TortoiseSVN. In den einzelnen Projekten der gesamten Solution befindet sich jeweils eine "AssemblyInfo.cs". Diese enthält eine Versionsnummer. Diese Versionsnummer soll nun automatisch heraufgezählt werden, wenn *irgendein* File geändert und eingecheckt wurde.
Geht das auch irgendwie?

MfG
..::SD::..
 
Das verstehe ich jetzt nich. Subversion macht das doch selber. Nach jedem Checkin wird die Nummer erhoeht. Bei Subversion ist es im Gegensatz zu CVS sogar so, dass alle Dateien die gleiche Nummer bekommen.
 
Das Problem liegt folgendermassen.
Ich bin hier grad dabei das Ganze VisualSourceSafe nach SubVersion zu portieren und meine Vorgänger haben einmal damit angefangen, die Nummer innerhalb der AssemblyInfo.cs zu nutzen um zu sehen welche Version ein Kunde wirklich hat. Somit ist es nun so eingerichtet, dass viele andere Tools auf diese Nummer zugreifen...

Klar SubVersion gibt sogar jeder einzelnen Datei eine Nummer, aber das nützt nicht viel. Klar ich könnte bei jedem Build die höchste Revisionsnummer innerhalb des Projektes suchen und diese dann nutzen für die Version - aber dies möchte ich keinesfalls tun!

MfG
..::SD::..
 
Hm, danke. Die Hooks wären eine Möglichkeit...

Aber nochmal auf die Versionierung von SubVersion zurückzukommen, ich glaube nicht, dass alle Dateien einer Solution die gleiche Nummer bekommen. Ich habe hier ein Testprojekt. Bei diesen hat die *.sln die Revision 16, die Datei NewHost.cs die Revision 24, die Program.cs die 16, die *csproj die 33 etc. Alle diese Dateien befinden sich in der gleichen Solution. Auch in einer anderen Solution ist es so. Da hat die Form1.cs Revision 8 und die dazugehörige Form1.Designer.cs die Revision 5...

Viele Grüsse
..::SD::..
 
Aber wenn du sagst du willst Revision 5, dann gibt dir svn nicht nur eine oder zwei Dateien zurueck, sondern alles, zum Zeitpunkt des eincheckens von Version 5.
 
Zurück