2 Stimmen

Wie kann ich automatisch die SVN-Revisionsnummer in meinen Matlab-Code einfügen?

Gibt es eine Methode, um die SVN-Revisionsnummer einer bestimmten Datei (.m) direkt aus dem Code (Matlab) zu erhalten?

Ich brauche so etwas wie eine Matlab-Funktion getSVNRevisionNumber(file.m)

Danke

5voto

sebastian Punkte 9536

Es gibt keine integrierte Befehl, um das zu tun. Der einfachste Weg, um diese Informationen zu erhalten, besteht wahrscheinlich darin, einen system Befehl auszuführen und dessen Ausgabe zu analysieren:

function rev = getRev(mfile)

    SVN_EXE= 'C:\Program Files\TortoiseSVN\bin\svn.exe';
    command = sprintf('"%s" info "%s"', SVN_EXE, mfile);
    [status,out] = system(command);

    % Überprüfen, ob alles gut gelaufen ist:
    assert( ~status );

    % Revision aus der Ausgabe analysieren:
    rev = regexp(out, 'Revision: (\d+)', 'tokens', 'once');
    % Alternativ - je nachdem, welche Informationen Sie wirklich benötigen
    % rev = regexp(out, 'Last Changed Rev: (\d+)', 'tokens', 'once');

    rev = str2double(rev{1});
end

Dies funktioniert noch nicht für nicht versionierte Dateien und es könnte eine sicherere, umfassendere Funktion geben, die das erledigt, aber das ist ein Anfang...

Leider ist dies auch recht langsam - andererseits sind es nur wenige Zeilen Code. Wenn Sie keine Angst vor Java haben und bereit sind, Drittanbietersoftware zu verwenden, könnten Sie auch problemlos svnkit innerhalb von MATLAB verwenden.

2voto

Daniel Punkte 36242

SVN unterstützt Schlüsselwörter, daher benötigen Sie so etwas wie:

x='$Rev$'

http://svnbook.red-bean.com/de/1.4/svn.advanced.props.special.keywords.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X