Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   SVN Release nummer in Delphi / FinalBuilder (https://www.delphipraxis.net/168884-svn-release-nummer-delphi-finalbuilder.html)

bernhard_LA 15. Jun 2012 19:28

SVN Release nummer in Delphi / FinalBuilder
 
ich hätte gerne meine SVN Informationen im meinem Delphi-code , leider habe ich kein komplettes Copy & paste Sample hierfür gefunden

http://stackoverflow.com/questions/3...delphi-project
http://www.delphipraxis.net/139374-s...en-delphi.html


was ist denn der einfachste Weg SVN Keywords + RC Builder oder kann mir hier der FinalBuilder helfen ?

bernhard_LA 15. Jun 2012 23:02

AW: SVN Release nummer in Delphi / FinalBuilder
 
Aktuelle Lösung : Mini Anwendung erstellt welche die SVN KeyWord Daten in eine Pascal Include Datei schreibt. Diese Include Datei binde ich dann in allen meinen Anwendungen ein und kann die SVN Infos anzeigen.



Delphi-Quellcode:
unit Unit_SVN2Code;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, addons;


       ///  this file is with SVN key words, it is changed by SVN with very update / commit
const SVNINFO='C:\.....\svn_infot.txt';
       ///   This file is written and contains the SVN info now as a pascal file
       NEWPASFILE='C:\....\svn_info.inc';

type
  TMainForm = class(TForm)
    edt_svninfofile: TEdit;
    edt_newpascalfile: TEdit;
    btn_writeIncludeFile: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure btn_writeIncludeFileClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.btn_writeIncludeFileClick(Sender: TObject);
var  Infile : TStringList;
      OutFile : TStringList;
      WordList: TStringList;
      i : Integer;
begin
      Infile :=TStringList.Create;
      OutFile :=TStringList.Create;

      Infile.LoadFromFile(SVNINFO);
      OutFile.Add('/// -------------------------------------');
      OutFile.Add('/// automatic generated include file    ');
      OutFile.Add('/// -------------------------------------');
      OutFile.Add('CONST');
      for I := 0 to Infile.Count-1 do
          begin

          WordList:=TStringList.Create;

          StringToWordList(Infile[i], WordList);


          case i of
          0: OutFile.Add('SVN_REVISION='+''''+WordList[1]+''';');
          1: OutFile.Add('SVN_AUTHOR='+''''+WordList[1]+''';');
          2: OutFile.Add('SVN_DATE='+''''+WordList[1]+''';');
          else

          OutFile.Add('/// -------------------------------------');

          end;

          end;

    OutFile.SaveToFile(NEWPASFILE);

end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
    edt_svninfofile.Text := SVNINFO;
    edt_newpascalfile.Text := NEWPASFILE;
end;

procedure TMainForm.FormShow(Sender: TObject);
begin
     ///  form 5 sec anzeigen
     Sleep(5000);
     ///   datei schreiben
     btn_writeIncludeFileClick(Sender);
     ///  fertig
     Close;

end;

end.

die Anwendung mit svn Info Anzeige


Delphi-Quellcode:


  {$INCLUDE 'C:\......\svn_info.inc'}

  Label_svn_revision.Caption := svn_revision;

  Label_svn_author.Caption := svn_author;

  Label_svn_date.Caption := svn_date;

Im Final Builder erzeuge ich zuerst die Exe meiner mini Anwendung, dann führe ich die Mini Anwendung aus dem FB heraus aus, letzter Schritt alle anderen exe Files im FB erzeugen, verwenden die aktuallisierte INCLUDE datei im den SVN Infos.

Uwe Raabe 15. Jun 2012 23:59

AW: SVN Release nummer in Delphi / FinalBuilder
 
Zitat:

Zitat von bernhard_LA (Beitrag 1171089)
oder kann mir hier der FinalBuilder helfen ?

Kann er, aber ich weiß nicht, ob du dafür die Vollversion brauchst:

- Variable namens "SvnRevision" anlegen
- Action "Subversion Info" schreibt Repository Revision in diese Variable
- PropertySet define "VersionInfo" (wenn nicht schon vorhanden)
- alle anderen Werte von PropertySet passend füllen (MajorVersion, MinorVersion, ReleaseVersion)
- BuildVersion von PropertySet aus Variable SvnRevision setzen
- bei Build Delphi die VersionInfo aus dem PropertySet setzen (ist sowieso die empfohlene Methode)

bernhard_LA 16. Jun 2012 07:01

AW: SVN Release nummer in Delphi / FinalBuilder
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich habe bereits Probleme den FB mit unserem SVN Server zu verbinden.

Wir verwenden Tortoise auf unseren Clients und brauchen hier nur eine URL (\\servername\reposititory\) und einen Pfad für unserer Programm-Daten auf der lokalen Festplatte. Im Dialog TOOL-Version Control System-SVM müssen im TAB GLOBAL und UTILITY der Pfad zur SVN Bin und viele weitere Daten angegeben werden. Diese Daten habe ich alle nicht ...

Uwe Raabe 16. Jun 2012 13:37

AW: SVN Release nummer in Delphi / FinalBuilder
 
Wichtig ist nur der Pfad zu den Binaries. Wenn du bei der Delphi-Installation den Collabnet SVN-Client installiert hast, nimm dessen bin-Verzeichnis. Ansonsten musst du den erst nachinstallieren. Finalbuilder arbeitet nicht mit TortoiseSVN zusammen.

himitsu 16. Jun 2012 13:49

AW: SVN Release nummer in Delphi / FinalBuilder
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1171134)
Finalbuilder arbeitet nicht mit TortoiseSVN zusammen.

Also die Pro-Version arbeitet(e) damit zusammen.

Hab jtzt zwar noch nicht die 1.7 ausprobiert, aber mit der 1.6 funktionierte es.
- Revisionen auslesen, Auschecken, Einchecken, Updaten usw. war problemlos möglich.

Die Delphi beigelegte Version war aber nicht wirklich nutzbar, zumindestens bei uns auf Arbeit, da dieses Version beim Laden einfach alles wegläßt, was sie nicht kennt und das ohne auch nur ein Wort darüber zu verlieren. (Wenn man nicht selber merkt, daß dann was fehlt, ist man am Arsch)

bernhard_LA 16. Jun 2012 21:14

AW: SVN Release nummer in Delphi / FinalBuilder
 
wir benutzen svn nur via http, da macht ja ein Pfad gar keinen Sinn.

Auch für Delphi XE und SVN gehen alle Beipiele die ich kenne immer von einer lokalen SVN installation aus ??? Ist eine Server Insrallation nicht vorgesehen ?

himitsu 16. Jun 2012 21:40

AW: SVN Release nummer in Delphi / FinalBuilder
 
Wieso nur lokal?

Ich kenne auch nur Beispiele, wo man über das Internet (URL) auf's SVN zugreift.
Nee, auch über einen Server funktioniert natürlich.
Ob über http:// oder über svn:// sollte eigentlich keinen Unterschied machen.

Hatte testhalber mal die JEDI via Delphi über SVN gezogen ausgecheckt.

Uwe Raabe 17. Jun 2012 12:22

AW: SVN Release nummer in Delphi / FinalBuilder
 
Zitat:

Zitat von bernhard_LA (Beitrag 1171195)
wir benutzen svn nur via http, da macht ja ein Pfad gar keinen Sinn.

Auch für Delphi XE und SVN gehen alle Beipiele die ich kenne immer von einer lokalen SVN installation aus ??? Ist eine Server Insrallation nicht vorgesehen ?

Auch das TortoiseSVN muss den Pfad (ob svn oder http) zum Server ja schließlich kennen. Genau diesen trägst du dort auch ein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz