This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Trouble with Git 2.1.x pushing to repos over Samba
- From: John Orr <john dot orr at ceos dot com dot au>
- To: cygwin <cygwin at cygwin dot com>
- Date: Thu, 30 Apr 2015 18:44:12 +1000 (EST)
- Subject: Re: Trouble with Git 2.1.x pushing to repos over Samba
- Authentication-results: sourceware.org; auth=none
- References: <CAOC2fq8dCzjjZU3eHWWh_h5s7O0M+z482+prWz9HsQWVqAjVng at mail dot gmail dot com>
> From: "Michael Enright" <mike@kmcardiff.com>
> $ git push origin master
> fatal: '//host/path/to/repo.git/' does not appear to be a git repository
> fatal: Could not read from remote repository.
I've been fighting possibly similar problems with git not working on samba shares, on version 1.7.34 and above.
eg on a mapped drive,
#: john@johndesktop:/cygdrive/l ; git log
fatal: Not a git repository (or any parent up to mount point /cygdrive/l)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
I've debugged git, and the problem in my case is that whilst I appear to have execute permissions on .git/objects:
#: john@johndesktop:/cygdrive/l ; ls -ld .git/objects/
drwxr-xr-x 1 john Unix_Group+1000 0 Nov 13 14:13 .git/objects/
(albeit, Corinna, with my group issue still not yet resolved)
the unistd.h function 'access' in git/setup.c claims I don't have the required execute permissions for .git/objects. Testing it:
#: john@johndesktop:/cygdrive/l/tasks/cygwin_samba_uid_gid_handling ; cat test_access.c
#include <unistd.h>
#include <stdio.h>
int main()
{
char* path = "/cygdrive/l/.git";
printf("access(%s, R_OK) returned %d\n", path, access(path, R_OK));
printf("access(%s, W_OK) returned %d\n", path, access(path, W_OK));
printf("access(%s, X_OK) returned %d\n", path, access(path, X_OK));
}
#: john@johndesktop:/cygdrive/l/tasks/cygwin_samba_uid_gid_handling ; gcc test_access.c
#: john@johndesktop:/cygdrive/l/tasks/cygwin_samba_uid_gid_handling ; a.exe
access(/cygdrive/l/.git, R_OK) returned 0
access(/cygdrive/l/.git, W_OK) returned 0
access(/cygdrive/l/.git, X_OK) returned -1
The last test is the one run by git, that makes it reject my /cygdrive/l/.git directory.
Not sure if that's relevant, but just in case.
John
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple