feo-cz / win-sshfs

Fork of http://code.google.com/p/win-sshfs/
BSD 3-Clause "New" or "Revised" License
1.28k stars 125 forks source link

using git on mounted directories #108

Open colthreepv opened 8 years ago

colthreepv commented 8 years ago

trying to use git for windows on mounted GIT repos makes git crash repeatedly

anyone experienced this? I am looking for a workaround/fix

EDIT: I am definitely not the only one

fcying commented 8 years ago

I also have this problem...

win10x64, git 2.8

wUFr commented 8 years ago

winssh version? dokan version? starting winssh as admin?

:)

fcying commented 8 years ago

winssh v1.6.0.14 dokan 1.0.0.4000 starting winssh as admin

colthreepv commented 8 years ago

Same environment as @fcymk2 - with Git 2.10.0.windows.1

It's easily reproducible trying to use gitk on any git repository 2016-09-06 11_08_18-windows shell experience host

Sogl commented 8 years ago

Same here...

Windows 7 x64 winssh 1.5.12.8

BSOD every time I want to work with remote Linux git repo.

juj commented 8 years ago

Testing this one out of curiosity since other people have been reporting this. I can reproduce that running with

and navigating to a directory with a git repo on the connected drive in Windows command prompt and running git diff, it does crash the git command line tool. However I am not seeing a BSOD like @Sogl mentions above.

Interestingly I notice that in Windows Explorer window, the TortoiseGit icon overlays that show git repositories green "up to date" or red "changes in working tree" do work. If I right-click in a directory in Windows Explorer and choose TortoiseGit -> Show Log, that crashes TortoiseGit (although again no BSOD).

dimov-cz commented 8 years ago

BSODs are related to Dokan. Current Dokan 1.0.0.5 seems to be very stable, RC4 had some issues. So try update Dokan first.

About Git, i also got some crashes with version 2.8, 2.9. But disappered for me with git 2.10.

@juj I tried to reproduce without success with latest Dokan, Mint 18 Cinamon, sshfs 1.6.0.14 and current, git 2.9.3 (x64).

Maybe is your problem related to specific repo(is public? can u share it?) or file manager. What command line tool do you use? Do you restart WinSshFS during work? I dicouraqe cmd.exe, becaouse of known unsolved problems like this https://github.com/dokan-dev/dokany/issues/365

If u can still reproduce the bug, maybe u can try to reproduce it on virtual machine and send me this VM (i prefer VirtualBox or Proxmox compatible).

colthreepv commented 8 years ago

Thanks for taking the time to reply, I am consistently reproducing this issue with any git repository using ssh based off Ubuntu 16.04 LTS inside virtualbox (so network speed is blazing fast), without BSOD, just the gitk error I have posted above

Windows 10 x64 win-sshfs: 1.6.0.14 dokany: 1.0.0.5 git: 2.10.1 host: ubuntu 16.04 LTS server

I will try and create a reproducible environment

juj commented 8 years ago

In my system, I've got Linux Mint 18 Cinnamon server, which has https://github.com/juj/emsdk cloned to a directory on the linux server (git clone was run on the linux server side), and on SshFs side I have git v2.9.3.windows.1. The issue occurs with both TortoiseGit (version 2.2.0.0 64-bit) when doing a right-click in the mounted directory, and choosing "TortoiseGit -> Show Log", as well as from command line with running "git diff" in the directory. This results in either "TortoiseGit has stopped working" or "Git for Windows has stopped working" crash, depending on which tool is used to access. Nothing else crashes, i.e. Windows Explorer stays running, and the mount stays alive as well.

I did not close or restart WinSshFs during the mount, the behavior also happens directly after mounting a drive. (my mount options are at https://github.com/Foreveryone-cz/win-sshfs/issues/117#issuecomment-252987035)

dimov-cz commented 8 years ago

Reproduced succesfully. Please check privilegies on .git foder on server side, do something like: chmod -R 0755 emsdk/.git

Or better: clone it again, but this time from windows/winsshfs. .git directory will be little bit different (casesensitivity, symlinks, filemode,...)

fcying commented 8 years ago

host: win10x64 winssh v1.6.0 rc3 dokan 1.0.0.5000 git: 2.10.1 vmware : ubuntu 16.04 LTS server

I update the new version, it can be work by use git log, but use gitk will block, and I can't kill the winffs process, onley reboot windows.

baidushurufa_2016-10-12_15-29-57

dimov-cz commented 8 years ago

First of all, if you have troubles with git and this git repository was created on Linux based system, try to "git clone" the same repo from Windows over WinSshFS and check if there is the same problem. If no then the problem is related to different version of git and config settings. You shoud start from repos created on windows, they will work on Linux side.

fcying commented 8 years ago

I try to "git clone" the same repo from Windows over WinSshFS, is the same problem

dimov-cz commented 8 years ago

OK There're can be 2 mixed bugs in this thread. I identified one, it's now separate issue: https://github.com/Foreveryone-cz/win-sshfs/issues/122 I think this is what @juj reports. Workaround: test for this bug from linux with: find <somerepo>/.git -ls | grep 'r--r--r--' There shoud be no such files, otherwise chmod 0644 <thisfile>

I also reproduced @fcying described problem by random experimenting with git and was unable to kill winsshfs, explorer process restarted and i was also unable to logout. Not sure if it's related, because symptoms are different.

dimov-cz commented 8 years ago

Secondone seems to be Dokan related, 1.0.0.5 seems to be unusable for git, RC4 was working better. Dokan 1.0.1 will probably fix it, but release is delayed. https://github.com/dokan-dev/dokany/issues/369

colthreepv commented 8 years ago

As dimov suggested, re-cloning git repo from windows solves most of git crashes I had to clone it on linux because that specific repo was not windows-compatible (ex: file.js and File.js checked in), but at that point I need to use all linux-based git tools (it's doable via Xserver forward)

So, for standard use cases winssh works smoothly, update if you have any related issues, or I'll close in few days

juj commented 8 years ago

Thanks for posting a workaround. I think that it would still be good if it was possible to harden win-sshfs so that it wouldn't crash Windows Explorer or git in these types of scenarios, but instead posted an error dialog or similar when the files on the other side have wrong permissions? Perhaps it is possible to make e.g. this Windows dialog appear? http://cloud.addictivetips.com/wp-content/uploads/2010/01/LocalSettings.jpg

ambrt commented 7 years ago

I had same problem trying to act on linux created repo from mounted folder. For now re-cloning from windows solves it.

If its any help here is the response about this bug from git-for-windows https://github.com/git-for-windows/git/issues/1143#issuecomment-297710884

sirber commented 7 years ago

Same issue with Dokan 1.0.3 and WinSSHfs 1.6.1.9. Didn't try the workaround as it may break my remote repo.

eric-wieser commented 7 years ago

This command ought to be able to fix it:

find .git -ls | grep 'r--r--r--' | awk '{print $NF}' | xargs -L1 chmod 0644
h4de5 commented 6 years ago

git status still does not work :(

dokan: 1.2.0.1. winsshfs: 1.6.1.13 wsl: 18.04 bionic git: git version 2.18.0.windows.1 and git 2.7.4 (same as on remote server)

https://github.com/felixfbecker/php-language-server/issues/579