How do I prevent a windows invalid file name from getting renamed when opening in VS Code in the windows linux subsystem? - linux

I'm trying to work on a repo that has a bunch of file with names like xxx:abc.js. Obviously the colon in the file name is invalid in windows.
So I thought if the files were on the Linux subsystem in Windows and if I was using VS Code's Remote extension, then it would be like I was developing in a Linux environment.
But the colon in those file names is still getting automatically removed by git when the repo gets opened by doing code .
Do I need to actually install the linux version of VS Code on ubuntu or is there some other way to make this work?

I upgraded to WSL 2, cloned the repo again and didn't have any issues.

Related

How to use git to do version control when I edit my code in Windows but build and run my code in Linux (using pycharm)

I have a question that I edit my code using PyCharm in Windows platform, and build and run my code in Linux machine, I want to know what is the correct way to do version control using git? My current approach is
using git in Windows
build and run code in Linux
checkout different branches in Windows and upload code to Linux(and not upload binary files such as .o files and .so files)
I'm not quite comfortable with this approach so I want to know the better ways. Thank you!
and upload code to Linux
If your Linux machine is accessible through SSH (and has Git installed), a better option would be to git push your code to your Linux machine, using a:
bare repository
a post-receive hook to checkout/restore your code where you want on said Linux server.
You can see an example here.

Changing Asp.net core Docker target from Windows to Linux

I have created a new ASP.net application by Visual Studio 2019. When I was creating the project, I ticked the Docker Support checkbox and selected Windows for my docker. After a while, I decided to change my docker from Windows to Linux as I have some other software on Linux container and every time I need to switch. I did some research and I found out if I change the server URL inside the DockerFile, I can change it to Linux. By doing it I encounter this error: Your Docker server host is configured for 'Linux', however the project targets 'Windows'
Then I opened the Cs proj file and change the windows to Linux and now I see: Unable to copy file obj\debug\netcoreapp2.1\xxxx.dll to bin\debug\netcoreapp2.1\xxxx.dll. Access to the path bin\debug\netcoreapp2.1\xxxx.dll is denied.
I reverted the change but I still see the same error.
Edit your .csproj file in a text editor like notepad++
You should see DockerDefaultTargetOS tag, and it should read Windows
Change that to Linux
update your dockerfile, replace the base instruction by this line
"FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base"
do the same with build instruction: FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
update your csproj tag DockerDefaultTargetOS to point to linux

scp from Linux to Windows: 'C:\Program' is not recognized error

In my linux machine, I'm trying to send a file over to a Windows machine via:
scp fileNameA user#windowServer:fileNameA
I get the following message:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
What's prompting this message?
I've installed OpenSSH on the windows machine, and I can successfully SSH into it. I don't want to use WinSCP, FileZilla, etc, because I have to automate this in a script. This has to be done from the Linux machine, so I'm not interested in doing pscp from the Windows machine.
I have met the same problem today.
I think it is an issue in the new version of OpenSSH, which was published few days ago. I reverted previous version (v7.6.1.0p1-Beta), which was working correctly on my VM from https://github.com/PowerShell/Win32-OpenSSH/releases and problem was fixed without any changes in configuration.
I just fixed the same problem by moving my installation of OpenSSH from C:\Program Files\OpenSSH to C:\OpenSSH.
I had to first uninstall it properly using the provided script in Win32-OpenSSH and then follow back the information provided there https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH but only changing the path to C:\OpenSSH.
I met a similar issue today, trying to copy files to a Windows server running OpenSSH-Win64. I solved the problem by adding C:\Program Files\OpenSSH, which is the recommended installation location, to the Windows path:
Open the Control Panel, go to the System and Security section and open up System.
Click on Advanced System Settings and, in the System Properties dialog box, click Environmental Variables.
In the System Variables section of the dialog box, select Path and click Edit....
Click New, add the OpenSSH folder path and click OK to apply the change.
Then, do not forget to restart the OpenSSH service, either in the service management console or by running net stop sshd, followed by net start sshd in an elevated console.

Shared folder between Windows host and Ubuntu guest, long filenames

I'm setting up an Ubuntu guest under Windows using VirtualBox for a colleague to provide him with a Linux-based development environment for a node.js application.
This colleague of mine can't or doesn't want to SSH into the VM and work in emacs or vim; he's a Sublime Text guy. So I have set up the project tree in a VirtualBox shared folder so he can access it from Windows (to edit) and the Linux VM (to build/test).
Unfortunately, npm install fails with file system errors. The problem seems to be extremely long path names resulting from deeply nested node_modules dependencies. I'm guessing we're hitting a Windows limit on filename length. The npm install works just fine in a regular (non-shared) directory in the VM.
Does anyone have ideas about how to deal with this problem? One idea I had was to somehow alias or link $MY_PROJECT/node_modules to another, non-shared location, but I can't figure out how to do that.
Update: I'm going to try this hack: https://www.virtualbox.org/ticket/11976.
Update 2: Ended up using samba, which is probably what I should have done in the first place.
One option is to use one of the multiple ways for sublime to edit remote files over ssh, covered in some detail here
How to use Sublime over SSH
Another is try using the native windows version of node and have your colleague develop locally directly under windows.

Is there a manual install of node.js for Windows 7?

I have easily installed Node.js before on Macs and other PCs, but the PC I have now at work restricts the running of .msi files.
Is there a way to manually install and configure node.js and npm on Windows 7? I have access to Powershell.
Installing nodejs (and npm) on a Windows 7 machine does not require any "magic" if you have Admin access on the target machine and do not care about setting up the expected "uninstall", various Windows performance counters, event tracing or Start menu entries.
To manually install from an existing installation on one machine to another machine, simply
Copy the entire contents of your "\Program Files\nodejs" and "\Users\USERNAME\AppData\Roaming\npm" directories as well as the "\Users\USERNAME\.npmrc" file to the same directories on target machine. (Replace USERNAME with your own Windows login name.)
Edit the "\Users\USERNAME\.npmrc" file to replace the source username with the username on the target machine.
Add "C:\Program Files\nodejs" and "C:\Users\USERNAME\AppData\Roaming\npm" to your PATH.
If you'd like to manually install direct from the MSI (without an existing installation to work from), get Scott Willeke's excellent lessmsi program, which allows you to extract all the files from any msi archive and discover all the actions taken by the Windows Installer, such as required edits to the Register, etc. (Though for nodejs, you'll only need to edit the Registry to add the proper keys to uninstall it automagically.)

Resources