jstaf / onedriver

A native Linux filesystem for Microsoft OneDrive
GNU General Public License v3.0
1.86k stars 91 forks source link

git hooks permissions #326

Open mfoulds opened 1 year ago

mfoulds commented 1 year ago

Summary;

  1. git repositories need +x permissions on all files in .git/hooks in order to push.
  2. permissions are not maintained in Onedrive
  3. so must run chmod +x ./.git/hooks/* per session
  4. any ideas for a more stable solution?

I have a repository located in onedrive. The files all synchronize perfectly with Onedriver. However there is a problem whenever pushing or triggering any kind of git hooks.

For example, when attempting to push, I get this error:

$ git push
fatal: cannot exec '.git/hooks/pre-push': Permission denied

The solution I've found is to run chmod +x ./.git/hooks/* from the project directory. The changes apply for the duration of the session, but must be repeated in a new session.

Can anyone think of a more stable solution?

jstaf commented 1 year ago

As you've found out, the issue is that file permissions are not persistent, because OneDrive doesn't have a concept of file permissions where we could store them. It would be nice if we could somehow make permissions persistent somehow. One possible solution would be making everything executable by default, but there might be a more elegant way to do this (I'll have to think on this).