Introduction
Hello.
I've installed git-annex and git-annex assistant on Windows 7 in a corp environment (hello gotchas!).
In this post I'll describe issues I encountered, how I fixed them, recommendations I have for the installer, and some results from a couple git annex test
runs.
Background
My regular domain user doesn't have permissions to write to C:\Program Files (x86)
, so I use a secondary domain user which is in the Administrators group. I use "Run as different user" to run installers, etc. (cf. "Run as Administrator")
During msysgit installation I checked "only bash, don't add to path, don't integrate with Explorer" etc, since I like my third-party applications isolated.
The installer
Where to install git-annex.exe
The nightly build of git-annex/assistant from NEST (20140908) only prompts for the base path of the msysgit location and it installs files in $BASE/bin
and $BASE/cmd
... I'll try manually copying files post-install to mitigate the path issues described in other posts on this forum.
The msysgit installer (1.9.4-preview20140815) presents a certain screen with three radio options:
- git bash only
- just git in
cmd.exe
- git + unix tools in
cmd.exe
.
I think this is the meaning of each:
- cmd.exe's PATH is not touched.
$GITBASE/cmd
is added to PATH$GITBASE/bin
is added to PATH
Therefore, I think that if you do something so that git-annex.exe
is added to both $GITBASE/cmd and $GITBASE/bin (perhaps a symlink or even a .lnk file) then all three user preference options will be covered.
All I did was copy $BASE/cmd/git-annex.exe
to $BASE/bin/git-annex.exe
and now both git annex
and git-annex
work in my msysgit "git bash" console. I didn't test cmd.exe
since I selected option 1 in the msysgit installer.
Installer locations: user profile or system-wide?
I found a shortcut for the webapp in Start Menu/Startup ... for the wrong user. Please prompt the user during the installation: "Install startup link system-wide or for current user?"
git annex test results
$HOME
defaulted to some mapped drive, whoops!
The test suite has been running since before I started this post. Is that normal?
I notice that it emits "Detected a crippled filesystem", "Enabling direct mode." and other messages again and again. If those checks are expensive, maybe the result should be memoized/cached.
Oh goodness, the test is reading and writing to my "home directory": a remote filesystem I never use. It's slow. I'll have to configure msysgit to use a different, more local $HOME
. This a common problem on this workstation. I'll let the test finish in case it reveals something useful to you, but this will not be how I use it going forward...
I am unable to attach testWithMappedDriveHomeDirConsoleOutput.txt
to this post. 1 out of 84 tests failed. Here is the only case sensitive occurrence of FAIL in the console output, with some lines of context.
OK
info: Detected a filesystem without fifo support.
Disabling ssh connection caching.
Detected a crippled filesystem.
Enabling direct mode.
git-annex: Data.BloomFilter.Util.suggestSizing: capacity too large to represent
FAIL
Exception: user error (git-annex ["info","--json"] exited 1)
version: Detected a filesystem without fifo support.
Disabling ssh connection caching.
Detected a crippled filesystem.
Enabling direct mode.
git-annex version: 5.20140908-g378fbb1
build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV DNS Feeds Quvi TDFA CryptoHash
test results with local NTFS $HOME
...The console output is scrolling by much more quickly.
2 out of 84 tests failed.
prop_past_sane: OK
+++ OK, passed 1000 tests.
prop_duration_roundtrips: OK
+++ OK, passed 1000 tests.
prop_metadata_sane: OK
+++ OK, passed 1000 tests.
prop_metadata_serialize: OK
+++ OK, passed 1000 tests.
prop_branchView_legal: OK
+++ OK, passed 1000 tests.
prop_view_roundtrips: OK
+++I nOiKt, Tpeasstsse
d 1 0i0n0i tt:e sts.
prop_viewedFile_rountrips: FAIL
*** Failed! Falsifiable (after 51 tests and 1 shrink):
"a:"
Use --quickcheck-replay '50 592211036 1831676953' to reproduce.
Unit Tests
add sha1dup: init test repo
Detected a filesystem without fifo support.
Disabling ssh connection caching.
and
OK
info: Detected a filesystem without fifo support.
Disabling ssh connection caching.
Detected a crippled filesystem.
Enabling direct mode.
git-annex: Data.BloomFilter.Util.suggestSizing: capacity too large to represent
FAIL
Exception: user error (git-annex ["info","--json"] exited 1)
version: Detected a filesystem without fifo support.
Disabling ssh connection caching.
Detected a crippled filesystem.
Enabling direct mode.
git-annex version: 5.20140908-g378fbb1
build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV DNS Feeds Quvi TDFA CryptoHash
...Note the corruption. I think this happens when I drag the scroll bar while console output is being emitted. (msysgit's problem?) I would presume and hope that this is a "display only" issue. UPDATE: see section Corruption below.
.vbs failure
I copied the git-annex.lnk
out of my admin user's start menu onto my desktop and double clicked it. wscript.exe
got stuck in a loop where new copies were being spawned over and over again (and old copies dieing at the same rate).
I think I know why. git-annex.exe
isn't on the path... but git-annex.lnk
is in the CWD (Desktop in this case). Yeah, that is the problem. The vbs attempts to run "git-annex webapp", and this .lnk points to a valid "executable": git-annex-webapp.vbs
... So it just calls itself with an argument over and over again.
Workaround: invoke git annex webapp
from the normal git bash console.
Corruption?
In some section above I speculated that the "jittery" corruption I was seeing in my console was a "display only" problem caused by scrolling around while new characters were being printed to the console. Now, I don't think so.
The corruption can be seen in the Log in the webapp. Here's an example from the top of the log:
[2014-09-08 13:37:45 Central Daylight Time] main: starting assistant version 5.20140908-g378fbb1
Launching web browser on file://d:\annex\.git\annex\webapp.html
[2014-09-08 13:37:45 Central Daylight Time] Cronner: You should enable consistency checking to protect your data.
(scanning...) [2014-09-08 13:37:45 Central Daylight Time] Watcher: Performing startup scan
(started...) rreerrcceevvcc::vv ::ff aaffiiaalliieellddee dd(( NN((ooNN ooee rreerrrroorrrroo))rr
))
I have no clue about this! (Well... "I think it's trying to communicate!")
Conclusion
I hope this information is helpful. I've enabled the 'email comments to me' option on this post and I'd be happy to perform further tests upon request.
Cheers!
Not following the instructions to have git put itself into the path seems like a sure-fire way to shoot yourself in the foot.
The loop problem is being discussed at http://git-annex.branchable.com/bugs/windows_start_menu_shortcuts_are_missing___34__Start_in__34___parameter/ perhaps you'll be able to answer my questions about it there?
Sorry, joey, I haven't played with git annex on windows since my original post.
I only have one new piece of information: some git annex related auto-start entry was added to the user profile of the account I used to perform the installation. I noticed this when I logged in interactively as that user...
See what I'm saying? I have DOMAIN\dave.loyall and WORKSTATION\local.admin. I have to use the latter to carry out installation, via "Run as...", but I need stuff to be installed into DOMAIN\dave.loyall's profile or the AllUsers profile (or whatever it is called).
Meanwhile, more and more of my daily work is carried out in my GNU/Linux virtual machines. I don't personally want/need anyone to prioritize windows-only deficiencies.