# Versionsverwaltung mit Git



## Saheeda (20. Mai 2015)

Hi,

mir ist noch nicht so ganz klar, wie eine Versionsverwaltung, wie z.B. Git und der Eclipse-Workspace zusammenspielen.

Ich habe mir unter D:\git\ProjektTemplates ein Repository erstellt, in welchem ich gern einige vorkonfigurierte Projekte ablegen möchte (bzw. momentan ist es noch nur eins, aber ich wills gleich erweiterbar bauen).

Meine Vorstellung wäre jetzt, dass ich in meinem Workspace eine Kopie des jeweiligen Projektes ziehe, das Ding umbenenne und dann dafür ein neues projektbezogenes Repo anlege.

Eclipse bietet mir aber nur an, das komplette Template-Repo zu klonen, bei einzelnen Projekten kommt diese Meldung:
"Error when trying to contact file:///D:\git\ProjectTemplates\simpleapp
Possible reasons:
- incorrect URL
- no network connection
- .git is missing at end of repository URL"

Mein Plan sähe so aus:
Working-Copies unter D:\dev\workspaces\
ProjektTemplates unter D:\git\ProjektTemplates\
Projektbezogene Versionsverwaltung unter D:\git\$Projektname


Vielleicht ist meine Idee an sich ja auch totaler Murks, ich hab jedenfalls keine Ahnung, wo mein Denkfehler liegt.


----------



## BuckRogers (20. Mai 2015)

Ist das nicht dein master repo? Darauf kann man doch nur einchecken oder clonen oder? Habe nur Erfahrung mit svn. Über git habe ich nur gelesen. 
Vllt ist der clonevorgang der richtige. Du arbeitest so lange auf dem clone/local repo bis du commitest. Evtl ist das der Kern?

Anderseits sieht es aus als könntees ein Pfadproblem sein, oder deine metadaten-datei vom git fehlt dir[.git].... waru auch immer.

Nur ne Denkidee. Wie gesagt... git ist neu für mich.


----------



## Saheeda (20. Mai 2015)

Hi,

ehrlich gesagt habe ich von deinem Post nicht allzu viel verstanden.
Wie würde denn ein sauber aufgesetztes System aussehen?


----------



## nvidia (21. Mai 2015)

Saheeda hat gesagt.:


> [...]wie eine Versionsverwaltung, wie z.B. Git und der Eclipse-Workspace zusammenspielen.[...]



Gar nicht, schon damals zu CVS-Zeiten war es keine so brilliante Idee das Code-Arbeitsverzeichnis in einen Eclipse-Workspace zu packen, irgendwo steht das auch in der Eclipse-Doku. Unter Git kann man zwar den working-tree (der Arbeitscode) vom eigentlichen Repository (.git-Verzeichnis) trennen, das ist aber nicht das Standardvorgehen.

Vernünftigerweise hat man seinen Eclipse-Workspace irgendwo und importiert dann dorthinein die Projekte die woanders liegen. Voneinander abhängige Projekte packt man oft in ein gemeinsames Repository, weil git submodule immernoch sehr schwächeln. D.h. es gibt einen Ordner X:\workspace-1 der nichts weiter enhält als Eclipse-Einstellungen (.metadaten, .plugin-Ordner) und irgendwo eine Struktur die folgendermaßen unterteilt ist

Y:\Repositories 
Y:\Repositories\projekt1-root\projekt1
Y:\Repositories\projekt1-root\.git

Für untereinander abhängige Projekte sieht es dann oft so aus

Y:\Repositories 
Y:\Repositories\multiprojekt\projekt1
Y:\Repositories\multiprojekt\projekt2
Y:\Repositories\multiprojekt\projekt3
Y:\Repositories\multiprojekt\.git

Wobei das -root/multiprojekt nur symbolisieren soll das es ein Sammelordner  für die eigentlichen Eclipseprojekte projekt1 usw. und dem dazugehörigen Git-Repository ist. Jedenfalls ist das der lokale Klon des irgendwo auf einem Server/Filesystem abgelegten Git-Repositories, das als sog. bare-Repo konfiguriert ist und in den meisten Fällen projekt1.git heisst.

Will man dann mit einem Projekt arbeiten importiert man dann eben das Projekt aus dem Git-Repository, wobei importieren  hier nur heißt ich hinterlege im Workspace die Info das ein Eclipseprojekt im Ordner Y:\Repositories\projekt1-root\projekt1 liegt. Daten werden da keine kopiert. Oft wird auch einfach ein neuer Workspace auf Basis des alten angelegt um die selben Eclipse-Einstellungen zu haben und dann importiert man die Projekte genauso, das hat dann den Vorteil das man mit den Projekten und dahinterliegenden Repositories nicht durcheinander kommt.


----------

