Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clone git repo hosted on a Windows shared folder from Mac OS X

I host a git remote repo on a Windows shared folder. I clone it using:

git clone //git-host-pc/SharedFolder/MyProject/

This command works from a Windows PC, but on a Mac, I get this error:

fatal: repository '//git-host-pc/SharedFolder/MyProject' does not exist

Trying git clone smb://git-host-pc/SharedFolder/MyProject gives me this error - fatal: Unable to find remote helper for 'smb'.

Note: I've found this question has been asked before mine - Use a git repos on a windows share from osx, however the OP there hasn't provided his exact commands, or the error messages, and that's why his question is unanswered.

Edit: I forgot to mention, but the shared folder is visible from the Mac, I can see it in Finder.

like image 318
sashoalm Avatar asked Dec 10 '22 21:12

sashoalm


2 Answers

I kind of like to think that remote file system access is an OS thing, and that cloning repos is an application-level thing, so this would be my approach:

You should just be able to mount that SMB share with your OS'es functions to a local directory and clone from there, instead of hoping git has a transport for SMB.

How to mount:

Connect to the server on your Mac. Now, on your Mac, from Finder's Go menu, choose "Connect to Server." Enter the IP address you just obtained from your PC, preceded by smb://, as shown:

enter image description here

UPDATE: To use your PC's name instead of IP address, replace the number with the name. So if your PC's name is "MyWindowsBox", you'd use smb://mywindowsbox (not case-sensitive).

If it finds your server, you'll get prompted to enter your network credentials - by default, your Windows username and password:

enter image description here

Where to find the mounted folder:

Once I mounted the //git-host-pc/SharedFolder in that way, I found it in /Volumes/SharedFolder.

like image 73
2 revs, 2 users 70% Avatar answered Apr 29 '23 11:04

2 revs, 2 users 70%


I've written this answer for those curious to know what git means by Unable to find remote helper for 'smb'

Git requires a helper program whenever it sees a URI such as ftp:// or smb://

When git encounters a URL of the form <transport>://<address>, where <transport> is a protocol that it cannot handle natively, it automatically invokes git remote-<transport> with the full URL as the second argument

Source: https://git-scm.com/docs/git-remote-helpers

Basically you do not have git remote-smb installed. You can use git help -a to see what helpers you have installed.

Until somebody writes a git remote-smb helper, it's probably best to just mount the drive you want as mentioned in another answer.

like image 34
Jono Avatar answered Apr 29 '23 09:04

Jono