Please describe the problem.
If using git annex with external .git dir webapp report a tread crashed and ever trying to restart it crash again and webapp is not able to upload/download/sync (also the download of git-annex updates is affected)
What steps will reproduce the problem?
What version of git-annex are you using? On what operating system?
git-annex version: 5.20150113-gcf247cf build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA CryptoHash key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
Precompiled tarball from official git-annex download site
Gentoo linux
Please provide any additional information below.
Launching web browser on file://../.git_annex_repos/pippo.git/annex/webapp.html <-- note wrong path! should be /home/gioacchino/.git_annex_repos/pippo.git/annex/webapp.html
RemoteControl crashed: user error (nice ["ionice","-c3","/home/gioacchino/opt/git-annex.linux/git-annex","remotedaemon"] exited 1)
WebApp crashed: <file descriptor: 11>: hPutStr: illegal operation (handle is closed
I've confirmed this behavior. Normally git-annex propigates --git-dir to git commands it runs, but this is not done in a few cases in the assistant, including when it starts
git-annex remotedaemon
but alsogit-annex fsck
,git annex unused
, andgit annex transferkeys
.(Just search for readProgramFile; Remote.Git.fsckOnRemote is the only place outside the assistant that uses it, and it does take care to propigate --git-dir and --work-tree.)
Also, restarting the assistant, either in the web ui or automatically due to an upgrade also doesn't propigate --git-dir.
And, the assistant's autostart file doesn't support --git-dir.
All of which could be fixed, but I have to wonder, why? What's the use case for a separate --git-dir with the assistant? I guess not vcsh because the assistant would watch for all changes to the home directory, and add them, and that's not how vcsh is used.
I'm tempted to just make the assistant refuse to start when given a nonstandard --git-dir..
Hi!
There are multiple use case as I explained on IRC and it is why I and probably more users need it, there are some git-annex repository that i share also with other programs like RetroShare and apache USERDIR (like http://efesto.eigenlab.org/~gioacchino/) i don't like .git directory to be shared by these programs as the file are publics but not the metadata stored on the .git ( http://efesto.eigenlab.org/~gioacchino/.git/config ) i know i can do that with other tricks like htaccess but it is application specific hack while the real solution is to keep the .git in a private place
Another use case is when you are grepping or doing scripty stuff on your dir having the .git in another place allow you to do stuff without concern about what there is inside .git without using options like --exclude and similar
The list of use cases can grow as they are all the one caused git to support --git-dir so for the sake of consistence and for your donors please propagate --git-dir on all git-annex components
P.S. I am not native english speaker so sorry if something sounds bad
@Gioacchino, git-annex already fully supports --git-dir. It's only the assistant that does not. If you're doing "scripty stuff", you are, I'd guess, not using the assistant...
The "scripty stuff" may be a simple find or grep on the annexed dir, that doesn't actually involve git-annex, but those simple and usual commands are fooled by the content of .git, because of that it would be nice to have git-annex-{assistant, webapp, ...} work in this setup, it is not only a matter of scripts, other applications may have unexpected behavior in presence of .git -_-
To make the usage of other apps more complicated doesn't seems an objective of git-annex-webapp, am I wrong?