Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10959[/thread]

format-Befehl mit Hash

Leser: 1


<< >> 9 Einträge, 1 Seite
Gast Gast
 2007-12-05 10:54
#103471 #103471
Hallo,

habe ein Problem mit der format-Funktion.
Ich möchte beim checkin von Source-Code in ein Versionsverwaltung eine History in die Datei schreiben. Mit C- oder anderen Source-Dateien fuktioniert das unten gezeigte Beispiel auch super. Nur mit Perl-Dateien nicht ... Dort stört ihn wohl das Kommentarzeichen. Wenn ich im Beispiel unten den Stern in Zeile 2 und 4 ersetze duch ein Hash, bekomme ich die Zeilen 3 und 5 so wie sie unten stehen in die Quelldatei eingetragen, also ohne dass die Variablen ersetzt wurden.

Code: (dl )
1
2
3
4
5
1 format ARGVOUT =
2 * @<<<<<<<<< | @<<<<<<<<<<<<<<< | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
3 $datum, $Author, $ENV{COMMENT}
4 * ~~ | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
5 $ENV{COMMENT}


Kann mir hier jemand helfen ?

Danke und Gruß
Ulrich
renee
 2007-12-05 11:45
#103474 #103474
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du kommentierst damit ja die Zeilen aus. Wenn Du da eine Zahl einsetzen willst, musst Du "@#" schreiben, also
Code (perl): (dl )
1
2
3
4
5
6
format ARGVOUT =
@# @<<<<<<<<< | @<<<<<<<<<<<<<<< | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 $datum,      $Author,           $ENV{COMMENT}
@# ~~                            | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                 $ENV{COMMENT}
.
(ungetestet)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2007-12-05 12:05
#103475 #103475
Hallo,

danke für die Antwort.
Mit deinem Ansatz bekomme ich die Meldung:
Code: (dl )
Modification of a read-only value attempted at /format/PDM_UPDATE_PL line 9, <> line 22 

Außerdem wird alles nach der Historie in der Quelldatei gelöscht ... ;-)
Mir ist klar dass ich damit natürlich die Zeilen kommentiere, aber ich benötige das Kommentarzeichen an dieser Stelle. Aussehen soll das später mal so:
Code: (dl )
1
2
3
4
# Date       | Programmers Name | Description    
# -----------+------------------+--------------
# 01.06.2007 | Hans Wurst |
# 15.11.2007 | Max Müller | TEST


Gruß
Ulrich
Dubu
 2007-12-05 17:12
#103477 #103477
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Nur mal nachgefragt: Brauchst du das überhaupt? RCS und CVS haben sowas schon eingebaut (Keyword $Log$); bei Subversion und Git wiederum wird grundsätzlich davon abgeraten (wobei Subversion einige Keywords erlaubt, aber eben nicht $Log$).
Gast Gast
 2007-12-05 17:37
#103479 #103479
Jo, wir verwenden ClearCase und haben einen Trigger der beim checkin die Historie schreibt. So kann man schnell auf den ersten Blick erkennen wann wer zuletzt dran rumgeschraubt hat.

Gruß
Ulrich
ptk
 2007-12-05 22:17
#103484 #103484
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Naja, im Emacs mache ich auch nur C-x v l und sehe das auch (für RCS, CVS und svn).
Gast Gast
 2007-12-06 11:09
#103497 #103497
Ich wollt nicht diskutieren welche SC-Verwaltung was kann, daran kann ich eh nix ändern. Und glaub mir, bei ein paar hundert Entwicklern, verteilten Standorten und diversen Projekten nimmst kein RCS mehr ...

Zum eigentlichen Problem keine Lösungsvorschläge mehr ?

Gruß
Ulrich
Siechfred
 2007-12-06 14:44
#103508 #103508
User since
2007-11-12
30 Artikel
BenutzerIn
[default_avatar]
Ich weiß ja nicht, ob ich Dich richtig verstanden habe, aber folgender Schnipsel funktioniert bei mir:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my $datum = '01.01.2006';
my $Author = 'foo';
my $comm = 'bar';

format STDOUT =
 # @<<<<<<<<< | @<<<<<<<<<<<<<<< | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
   $datum,      $Author,           $comm
.
write;


Gibt aus:

# 01.01.2006 | foo | bar

So willst Du das doch im Ansatz, oder?

Siechfred
Gast Gast
 2007-12-07 10:52
#103540 #103540
Ok, so funktioniert es. Allerdings nur weil du in der zweiten Zeile das Hash um ein Zeichen eingerückt hast. Damit ist das Hash nicht mehr das erste Zeichen sondern das Leerzeichen. Sieht dann halt so aus:

Code: (dl )
1
2
3
# Date       | Programmers Name | Description    
# -----------+------------------+------------
# 07.12.2007 | Hans Wurst | xxx


Naja, zur Not kann ich damit leben.

Gruß
Ulrich
<< >> 9 Einträge, 1 Seite



View all threads created 2007-12-05 10:54.