Zum Hauptinhalt wechseln

dbFlow innerhalb VSCode mit WSL (Oracle Linux 9.1) nutzen

Wie konfiguriert man die VSCode für die Nutzung von WSL als Bash für die Verwendung mit dbFlow?

Es wird hier davon ausgegangen, dass folgende Grundvoraussetzungen gegeben sind - im WSL:

  1. Oracle InstantClient (21.10) + SQL*Plus installiert und/oder Oracle Java JDK + Oracle SQLcl
  2. Git 2.10+

Die Nutzung von VSCode mit WSL ist insgesamt sehr detailliert beschrieben z.B. unter "Developing in WSL" oder auch unter "Windows-Subsystem für Linux: Dokumentation". Zuerst sollte man sich die "WSL Extension" installieren. Damit wird u.a. die Bash verfügbar für VSCode. Dann natürlich ggf. das Standardterminal in VSCode umstellen auf das WSL.

Anschließend empfiehlt es sind, einen Alias zu setzen innerhalb des WSL, damit man wie gewohnt auch "code ." in der Bash verwenden kann. Im Terminal "nano ~/.bashrc" absetzen und folgendes ergänzen: alias code='"/mnt/c/Program Files/Microsoft VS Code/bin/code"' (Hinweis: Pfad prüfen / wird erst beim nächsten Öffnen des Terminals aktiv!)

Startet man jetzt VSCode in einem dbFLow - Verzeichnis, so kann man mit der Bash im WSL arbeiten. Einen Performance-Boost gibt es, wenn man den Hinweis beachtet, den VSCode selber gibt: Die Arbeitsverzeichnisse nicht über die Windows-Verzeichnisse aufrufen, sondern direkt ins "WSL - Home - Verzeichnis" integrieren.

Known issues - samt Lösungswegen:

  • Git erkennt quasi alle Dateien im dbFLow Arbeitsverzeichnis als "geändert" - klar, Zeilenende in Windows ist CRLF, in Linux LF. Um dies zu unterbinden, legt man eine .gitattributes an mit folgendem Inhalt (ab Git 2.10+):
* text=auto eol=lf
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf
  • Gibt es Windows -Binärdateien (z.B. docx) im dbFlow - Arbeitsverzeichnis (z.B. wg. AOP) beim Umkopieren von Windows nach Linux - dann legt Windows hier sog.  "Alternate Data Stream" (ADS) -Dateien" an. Diese haben denselben Dateinamen wie die Originaldatei, gefolgt von einem Doppelpunkt und dem Text "Zone.Identifier", also z.B. my_aop_template.docx:Zone.Identifier. Ich habe keinen Weg gefunden, dass Erstellen dieser Dateien zu unterbinden. Aber Lösungsvarianten - entweder .gitignore erweitern um **/*Zone.Identifier, oder in der Bash löschen mittels find . -name "*Zone.Identifier" -type f -delete 

 

Kommentare

Noch keine Kommentare zu diesem Beitrag.