git Projekt in git Projekt

Gast #3756331
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?
Gast #3756345
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.