Forum: PC Hard- und Software Eclipse Plugin für automatische Header bei C-Files gesucht


von Oliver W. (pilzkopf)


Lesenswert?

Hallo zusammen,

ich suche ein kleines Plugin, vielleicht kennt ja jemand was in der 
Richtung:

Ich nutze GitHub für meine Projekte (zZ STM32, C). Dabei möchte ich, 
dass Versionsnummer und vielleicht auch die letzten 3 
Änderungs"beschreibungen" in den Files im Header stehen, zB so
1
/**
2
  * \file datei1.c
3
  *
4
  * \Version $hier automatischer Eintrag$
5
  * \history $Version $Date $Comment
6
  * \history $Version-1 $Date $Comment
7
  */

gerne auch mit Versionsverwaltung.

Hat dafür jemand einen Link für mich?

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Hallo,

warum willst du das? Das wuerde doch bedeuten, dass sich der Status 
deiner Working Copy mit jedem Commit aendert.

Eventuell kann man ueber einen hook das bei jedem checkout einfuegen und 
bei jedem commit wieder rausnehmen, damit diese (veralteten) 
Informationen nicht mit in der Aenderungshistorie sind.

MfG
Christopher

von Konrad S. (maybee)


Lesenswert?

Sowas erledigt normalerweise die Versionsverwaltung. Sprich mit ihr. 
(RTFM)

von Konrad S. (maybee)


Lesenswert?

Christopher B. schrieb:
> Das wuerde doch bedeuten, dass sich der Status
> deiner Working Copy mit jedem Commit aendert.

Genau das wird vermieden, wenn man die Mechanismen der 
Versionsverwaltung verwendet.

von Oliver W. (pilzkopf)


Lesenswert?

Christopher B. schrieb:
> warum willst du das

Weil ich gerne in den Files sehen möchte, welche Version meine lokale 
Version ist.

Die History ist da eher Bonus, interessant ist mehr Datum, Autor, 
Commit-Message des Commits.

Konrad S. schrieb:
> Sowas erledigt normalerweise die Versionsverwaltung. Sprich mit ihr.
> (RTFM)

Oh wieder so ein schlauer Beitrag.
AFAIK hat Git aber so eine Funktion nicht.


Falls Git Wildcards in .c/.h ausfüllen kann (mit Commit Message, Author, 
Date), sag mir wo es steht ;)

: Bearbeitet durch User
von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Oliver W. schrieb:
> interessant ist mehr Datum, Autor,
> Commit-Message des Commits

git show -s

Konrad S. schrieb:
> Genau das wird vermieden, wenn man die Mechanismen der
> Versionsverwaltung verwendet.
kann git afaik nicht. Diese Information gehoert da m.M.n. auch nicht 
hin.

Edit: 
http://git-scm.com/book/de/v1/Git-individuell-einrichten-Git-Attribute#Schlüsselworterweiterung

: Bearbeitet durch User
von Konrad S. (maybee)


Lesenswert?

Christopher B. schrieb:
> kann git afaik nicht.

Ups! Ich gestehe, dass ich nicht nachgeschaut habe. Ich kenne/nutze 
offenbar seit ewigen Zeiten nur die Versionsverwaltungen, die das 
unterstützen. Da habe ich git was falsches unterstellt, sorry.

> Diese Information gehoert da m.M.n. auch nicht
> hin.

Bei SVN habe ich gerne $Id$ drin. Es zeigt, dass die Datei unter 
Versionskontrolle ist und wer sie wann zuletzt in der Mache hatte. Den 
Rest kann man sich bei Bedarf von der Versionsverwaltung erfragen.


Edit:
Guter Link, vielen Dank dafür!

: Bearbeitet durch User
von Christopher B. (chrimbo) Benutzerseite


Angehängte Dateien:

Lesenswert?

Naja wenn man Egit in eclipse als git plugin verwendet, kann man auch 
direkt sehen welche Dateien in der Verwaltung sind.
Wie ein aelterer Arbeitskollege erst letztens meinte als ich ihm 
Versionsverwaltung nahe legte: "Hab ich dann auch solche Becherchen?" 
(s. Bild)

: Bearbeitet durch User
von Oliver W. (pilzkopf)


Lesenswert?

Christopher B. schrieb:
> git show -s

Okay, das zeigt mir den aktuellen Commit.
Was für mich aber interessant ist:

Wir arbeiten zu zweit an einem Projet mit Dateien a.c, b.c und c.c.
Am Freitag ändere ich a.c und b.c und weiß am Montag, das mein Partner 
einen Commit gemacht hat.
Nun würde ich gerne nach einem Pull schnell in der offenen Datei a.c 
sehen, ob er sie noch bearbeitet hat oder nicht.
zZ muss ich dafür auf github bzw per Konsole die "History" von a.c 
nachschauen. Da hätte ich gerne was im Header der Datei.

Christopher B. schrieb:
> Edit:
> 
http://git-scm.com/book/de/v1/Git-individuell-einrichten-Git-Attribute#Schlüsselworterweiterung

Danke, da werd ich mich mal reinlesen.

Konrad S. schrieb:
> Ich kenne/nutze
> offenbar seit ewigen Zeiten nur die Versionsverwaltungen, die das
> unterstützen.

Gibt es da was freies? Vielleicht lohnt ja der Umstieg?

Christopher B. schrieb:
> Naja wenn man Egit in eclipse als git plugin verwendet, kann man auch
> direkt sehen welche Dateien in der Verwaltung sind.

Aber nicht (auf einfache Weise), wann von wem bearbeitet. Außer du 
kennst ein Untermenü mehr als ich, dann her damit :)

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Oliver W. schrieb:
> Aber nicht (auf einfache Weise), wann von wem bearbeitet. Außer du
> kennst ein Untermenü mehr als ich, dann her damit :)

Rechts klick Team->Show History?

von Konrad S. (maybee)


Lesenswert?

Oliver W. schrieb:
> Gibt es da was freies? Vielleicht lohnt ja der Umstieg?

Ich nutze privat und in der Arbeit seit Jahren SVN und bin im 
Wesentlichen zufrieden damit. Mir reicht dabei das $Id$ aus.

Zusätzlich gibt es noch ein auf der SVN-Library aufsetzendes 
Hilfsprogramm, das aus allen versionierten Quelldateien einer zu 
erstellenden Datei Revision-, Zeit- und Statusinformationen 
zusammenträgt und damit das Erzeugen eines Timestamps für einen Build 
erleichtert. Da dieses Programm für eine andere Versionsverwaltung extra 
angepasst werden müsste (was an mir hängenbleiben würde), ist mein 
Interesse an nochmal einer neuen Versionsverwaltung nicht sonderlich 
stark.

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Tec Nologic schrieb:
> Oliver W. schrieb:
>> Aber nicht (auf einfache Weise), wann von wem bearbeitet. Außer du
>> kennst ein Untermenü mehr als ich, dann her damit :)
>
> Rechts klick Team->Show History?

genau, also nicht auf das Projekt, sondern auf die Datei die du willst. 
Ein kleines Zusatzfeature ist, dass du im History View (der ist bei mir 
immer eine Registerkarte vom Hauptfenster, also da wo auch der 
Sourcecode steht) die Option "Link with Editor and Selection" (sind zwei 
gerade Pfeile nach links und rechts). Wenn man dann die History auf hat 
und eine Datei im Project Explorer auswaehlt wird nur die History dieser 
Datei mit allen Commits, Authoren, etc. angezeigt.

Oliver W. schrieb:
> Gibt es da was freies? Vielleicht lohnt ja der Umstieg?
Die drei "modernen" Versionsverwaltungen git, mercurial und bazaar 
unterstuetzen dass afaik nicht. Aber da kann ich mich auch irren.
Zumindest fuer mercurial gibt es wohl ein Plugin, aber das wird auch 
nicht empfohlen.

von Mladen G. (mgira)


Lesenswert?

https://git.wiki.kernel.org/index.php/GitFaq#Does_Git_have_keyword_expansion.3F

>> Does Git have keyword expansion?

>> Keyword expansion is not recommended. Keyword expansion causes all sorts
>> of strange problems and isn't really useful anyway, especially within
>> the context of an SCM. You can perform keyword expansion outside of Git
>> using a custom script. ..

Keyword substitution braucht man nicht wenn man es richtig macht.
Git kann die Historie sehr gut aufnehmen und darstellen, es ist 
sozusagen dafuer da ;)

$Id etc. pp. ist redundant und verschmutzt doch nur den Quellcode, es 
skaliert nicht, zB. tausende Aenderungen an einer Datei fuehren dazu das 
mehr Historie als Quelltext drinnsteht.
Mit veralteten SCM wie CVS war das mal ein Notnagel mit dem man 
versuchte fehlende Funktionen nachzubauen.

Ansonsten  sind die Revision hashes schon eindeutig und man nutzt Tags 
fuer releases.

von Oliver W. (pilzkopf)


Lesenswert?

Vielen Dank, ich hab mich noch mal ein bisschen mehr in Git bzw eGit 
reingearbeitet und komme inzwischen besser klar.
Nutze zur Zeit die Kombi aus eGit und Kommandozeile.

Eine Frage dazu aber noch:
Wie erstelle ich in eGit richtig ein neues Branch und pushe es auf den 
Master?
Wenn ich das von eclipse aus mache, meckert er dass das branch (der 
branch? die branch?) auf dem Remote fehlt.
Mach ich per Konsole und push mit der -u Option, geht alles?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.