• Sharing Git credentials with WSL2

    I'm using WSL2 to manage my blog, but I noticed each time I went to run git push it was asking for my credentials again. Why wasn't it remembering from last time? Turns out there's ways of storing git credentials, but even better, you can share the credentials you already have in Windows.

    As outlined in this Stack Overflow answer, assuming you have Git Credential Manager installed in Windows (and you probably do with a recent install of the Git command line tools), then run this in WSL2:

    git config --global credential.helper "/mnt/c/Program\\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"
    

    Note the extra escape to handle the space in Program Files. With that set, git push just worked.

    Update 2022-07-08

    See Git Credential Manager setup for newer instructions on how to do this.

  • Microsoft Build 2020 highlights

    Microsoft Build 2020 Logo

    Microsoft Build 2020 started early this morning. I've never had the opportunity to attend the US Build conference in person, so the fact that this year they're running it as a virtual conference for free is awesome! Here's a few of the highlights and announcements that have stood out to me so far:

    • Windows Terminal 1.0 released. I've been using Windows Terminal for a few months now and it's become my go-to command-line environment.

    • WSL2. WSL2 ships with Windows 10 20-04. I made the jump to the Slow Ring to check out WSL2 on my new workstation. There's a few rough edges around running mixed containers (Windows and Linux at the same time) so hoping those get sorted out when it goes GA. Interesting that they're adding GPU support to WSL2 as well.

    • Blazor WebAssembly is now officially released. I haven't played with this at all but it's on my radar.

    • Visual Studio 2019 v16.6 & v16.7 Preview 1 - Time to spin up the Visual Studio Installer and make sure you're running the latest GA and Preview bits. Watch the recording of me exploring some of the new features in 16.6 which was run as an event of the Adelaide .NET User Group.

    • .NET 5 Preview 4 - The next version of .NET Core, now just called '.NET' and skipping v4 to avoid confusion with the old .NET Framework. Some nice performance improvements as well as the next versions of C# and F#.

    • Teams support for NDI - this will be of interest to those wanting to use OBS or similar live video production applications with Microsoft Teams.

    It's going to be a challenge getting my regular work done as well as keeping an eye on all the sessions that are running today and tomorrow. Fortunately, sessions that I miss will be up on Channel 9 to watch at a more convenient time.

  • Visual Studio Code and WSL2

    I'm not the only one playing around with running Jekyll in WSL2 for my blog:

    Been playing with converting my blog to @Jekyllrb But compile times were bad.

    WSL2 + blog on /mnt/c/source/blog -> 60s
    WSL2 + blog inside the native linux filesystem ~/blog -> 0.5s

    Seems the WSL notes on I/O perf hit when going through filesystem bridge is real @richturn_ms

    — Ðavid Ƀurela (@DavidBurela) May 10, 2020

    Inspired by David's tweet, I figured it was time I gave it a go. It was remarkably easy!

    First, make sure I'm on the WSL2 disk (not the mounted Windows disk)

    cd
    

    Now pull down my blog repo

    git clone https://github.com/flcdrg/flcdrg.github.io.git
    

    Start Visual Studio Code in the current directory

    code .
    

    This magically installed some 'server' bits into WSL2

    Updating VS Code Server to version d69a79b73808559a91206d73d7717ff5f798f23c
    Removing previous installation...
    Installing VS Code Server for x64 (d69a79b73808559a91206d73d7717ff5f798f23c)
    Downloading: 100%
    Unpacking: 100%
    Unpacked 2321 files and folders to /home/david/.vscode-server/bin/d69a79b73808559a91206d73d7717ff5f798f23c.
    

    and then Visual Studio Code launched

    Visual Studio Code editing git repo in WSL2

    But how can I save screenshots and other images now that the repo is stored inside WSL2? Easy as it turns out. I right-clicked on the assets folder in Code and chose Reveal in Explorer and it brings up Windows Explorer pointing to an internal share mapped back to the Linux disk. I can access the same path from the snipping tool too!

    Windows Explorer in git repo in WSL2

    And how fast is Jekyll?

    bundle exec jekyll serve --incremental 2>&1 | grep -E -v 'deprecated|GitHub Metadata'
    

    On Windows: 120 seconds

    On Linux: 62 seconds