Forum: PC-Programmierung git Projekt in git Projekt


von Ben (Gast)


Lesenswert?

Hallo,
Ich benutze git als Versionsverwaltung und entwickle eine Lib für ein 
embedded Projekt (lib.c und lib.h. Jaja ich weiß, eine lib ist 
eigentlich .a oder .so).
Die Lib soll von anderen Projekten (inklusive eins von mir :-) ) als 
git-submodul eingebunden werden können, aber das ist hier erstmal 
unwichtig.

Um die Lib entwicklen zu können ist ja eine Art Laufzeitumgebung 
erforderlich. Damit meine ich zusätzliche Dateien wie makefile, main.c 
für die Hard- und Softwareinitialisierung etc. Ich nenn das mal 
"Entwicklungsumgebung". Aber, dieses Zeugs soll natürlich nicht in dem 
Projekt landen welches die Lib als submodule einbindet.
Deswegen dachte ich an folgende Struktur:
1
/ Entwicklungsumgebungs-root
2
|-- .git
3
|-- makefile
4
|-- main.c
5
|-- Doku, Todo-Liste, Notizen etc.
6
|-- lib-folder (dieser Ordner kann via submodule anderweitig eingebunden werden)
7
        |-- .git
8
        |-- lib.c
9
        |-- lib.h

Wie man sieht hab ich hier ein git-Projekt in einem "äußeren" 
git-Projekt.
Benutzer der Lib können nun das "innere" Projekt als submodule 
einbinden, dadurch würden sie sich nur die wichtigen Sourcen ins Projekt 
ziehen, das ganze Drum-Herum wird nicht mit eingebunden.

Mein Problem: so klappt das (bisher) nicht. Klar kann ich bei mir auf 
der Platte in den lib-folder wechseln, dort ein "git init" machen usw. 
Allerdings weiß das äußere Projekt dann nicht, dass es sich dabei um ein 
eigenes Projekt handelt. Stattdessen möchte das äußere Projekt auch die 
Datein im lib-folder tracken. Das macht natürlich keinen Sinn.
Gibt es da ne Möglichkeit, dem äußeren Projekt irgendwie mitzuteilen: 
Hallo, der Ordner ist für dich ne Blackbox, was da drin passiert geht 
dich nix an. ? Eine .gitignore fühlt sich da nicht richtig an.
Geht das irgendwie?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ben schrieb:
> Eine .gitignore fühlt sich da nicht richtig an

Und wieso nicht? Genau für sowas sind doch ignores das:

> Hallo, der Ordner ist für dich ne Blackbox, was da drin passiert geht
> dich nix an

von Ben (Gast)


Lesenswert?

Läubi .. schrieb:
> Und wieso nicht? Genau für sowas sind doch ignores das:

1. Angenommen ich wechsle den Branch der Entwicklungsumgebung: Das 
innere Projekt würde davon unberührt bleiben, möglicherweise kompiliert 
es nicht mehr weil sich Interfaces geändert haben.
2. Sollte doch mal jemand die Entwicklungsumgebung klonen/pullen würde 
ihm (oder mir) der lib-folder fehlen.


> Hallo, der Ordner ist für dich ne Blackbox, was da drin passiert geht
> dich nix an
Die Aussage war wohl a weng übertrieben: ich dachte eher an ein Tracking 
auf commit-Ebene, so wie submodule das macht.
Das äußere Repo müsste sicherstellen dass alle inneren Repos einen 
definierten Stand haben.

von Ben (Gast)


Lesenswert?

Geht das wirklich so nicht?
Kann doch nicht sein dass ich der erste Mensch auf Erden bin der sowas 
macht.

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.