Forum: PC-Programmierung qt in vm synchronisiert sich nicht


von Johannes (Gast)


Lesenswert?

Hallo,

wir erstellen ein Projekt in qt in einer VM (ubuntu) auf einem Windows 
rechner.
Von der VM aus können wir nicht auf unser repo pushen (dürfen wir 
nicht).

Also ist der Ablauf so, git in windows und rest in VM. Da sind mir jetzt 
ein paar sachen aufgefallen, die ich mir nicht erklären kann bzw. weiß.

1) Wenn ich in Windows git Dateien stashe oder branch Wechsel oder 
ähnliches, wird die Änderung in der VM nicht übernommen. Erst wenn ich 
die Datei in qt schließe und neu öffne, sehe ich die Änderung.
- Gibt es eine möglichkeit, dass qt sich automatisch synchronisiert?

2) in der VM haben wir auch git. Diese sieht auch eigentlich unser repo. 
Ich war automatisch auf meinem Branch, wie auch unter windows. Wenn ich 
log mache, sehe ich auch alle commits.
- Jetzt haben wir unter windows mit git schon einige Dateien 
hinzugefügt. Diese stehen in der VM als modified. Wenn ich mir die 
Änderung ansehe, sehe ich, dass es die Komplette datei ist, welche neu 
hinzugefügt worden ist.
Warum sind diese nicht schon drinn?
- In der VM werden mir dateien angezeigt, welche eigentlich auf der 
.gitignore sind. Diese werden mir unter windows auch nicht angezeigt. 
Muss man da auch noch was beachten?

Ziel wäre es dann, nur in der VM zu arbeiten, also push und pulls unter 
Windows (oder wir bekommen dann doch irgendwann die rechte)

von Jim M. (turboj)


Lesenswert?

Johannes schrieb:
> - Jetzt haben wir unter windows mit git schon einige Dateien
> hinzugefügt. Diese stehen in der VM als modified. Wenn ich mir die
> Änderung ansehe, sehe ich, dass es die Komplette datei ist, welche neu
> hinzugefügt worden ist.
> Warum sind diese nicht schon drinn?

Vermutlich CR+LF <-> LF Problem. Schau Dir mal die Zeilenenden in 'nem 
Hexeditor genau an.

Johannes schrieb:
> - In der VM werden mir dateien angezeigt, welche eigentlich auf der
> .gitignore sind

Groß- und Kleinschreibung der Dateinamen prüfen. Unter Windoof wird das 
ignoriert, unter Linux aber nicht.

Wo liegen die Dateien? In der VM oder auf einem Host-Share?

von cppbert (Gast)


Lesenswert?

Johannes schrieb:
> Erst wenn ich
> die Datei in qt schließe

du meinst den QtCreator? Qt ist die Bibliothek

nutzt du aus der VM das selbe lokale Repo wie unter Windows (geshared 
oder so) oder ist das ein weiterer Repo-Clone in der VM?

von Johannes (Gast)


Lesenswert?

Jim M. schrieb:
> Vermutlich CR+LF <-> LF Problem. Schau Dir mal die Zeilenenden in 'nem
> Hexeditor genau an.

Ja, genau das war es. Die Dateien wurden auch nicht wie ich gesagt habe 
neu hinzugefügt, sondern nur die Zeilenenden geändert.
Wenn man sich auch die ganze Datei angesehen hätte und nicht nur den 
anfang, hätte man es auch vorher gesehen.

Jim M. schrieb:
>> - In der VM werden mir dateien angezeigt, welche eigentlich auf der
>> .gitignore sind
>
> Groß- und Kleinschreibung der Dateinamen prüfen. Unter Windoof wird das
> ignoriert, unter Linux aber nicht.

Das hat sich mit dem oberen punkt auch erledigt. Aber das mit der groß- 
kleinschreibung werde ich mir merken.

cppbert schrieb:
> du meinst den QtCreator? Qt ist die Bibliothek
>
> nutzt du aus der VM das selbe lokale Repo wie unter Windows (geshared
> oder so) oder ist das ein weiterer Repo-Clone in der VM?

Genau, meinte QtCreator.

in der VM habe ich das repo geshared.

Was aufgefallen ist, wenn ich jetzt in der VM dateien z.B. stashe oder 
ändere, wird es in Windows sofort gemerkt (getestet in einer in 
notepad++ geöffneten Datei).
Anders herum ist das allerdings nicht. Also Änderungen unter Windows 
werden nicht in offenen Dateien synchronisiert

von Tom (Gast)


Lesenswert?

Man kann dem Windows-git abgewöhnen, die Zeilenenden zu versauen:
https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings


> git in windows und rest in VM
Nach viel schlechten Erfahrungen mit der gleichen Arbeitsweise würde ich 
nach Möglichkeit vermeiden, auf einem Repo im shared folder zu arbeiten.

Kannst du ein lokales Repo als Zwischenstation im shared folder 
deponieren und den Code, auf dem du arbeitest, im Dateisystem der VM?

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.