[[!comment format=mdwn username="http://joeyh.name/" ip="4.152.246.110" subject="comment 13" date="2013-07-27T20:46:01Z" content=""" I've verified that the (old) code correctly returned no path when it's too long:
*Annex.Ssh System.Directory System.Posix.Directory Annex Git.Construct Git.Config System.Posix.Env Utility.Env>  eval (newState r') $ changeGitConfig (\c -> c  { annexCrippledFileSystem = True  }) >> sshInfo (\"fozz@git-annex-markdown.lang.speechmarks.com-fozz_phone.2Dannex.IdWwlXHtSsjVUMcq\", Nothing)
(Nothing,[])
In case the problem was somehow related to calculating the length on Android (ie, Data.Bits.Utils broken), I built a small program that calculated the length of the string the same way [[!format haskell \"\"\" import Utility.FileSystemEncoding main = do let s = \"/data/data/ga.androidterm/tmp/fozz@git-annex-markdown.lang.speechmarks.com-fozz_phone.2Dannex.IdWwlXHtSsjVUMcq\" let ws = decodeW8 s print (length ws) \"\"\"]] Outputs 110 on Android as expected. Finally, using git-annex 4.20130721-g002de3e on Android (a newer version than the bug reporter's but with no changes to Annex.Ssh), I manually set up a repository using the same hostname:
[remote \"foo\"]
	url = ssh://fozz@git-annex-markdown.lang.speechmarks.com-fozz_phone.2Dannex.IdWwlXHtSsjVUMcq
	fetch = +refs/heads/*:refs/remotes/foo/*
	annex-uuid = dummy
And still cannot replicate the bug; as expected it does not use the socket since it's too long: copy foo (checking foo...) [2013-07-27 16:40:42 EDT] call: ssh [\"-T\",\"fozz@git-annex-markdown.lang.speechmarks.com-fozz_phone.2Dannex.IdWwlXHtSsjVUMcq\",\"git-annex-shell 'inannex' '' 'SHA256E-s29--093429efb0d1427753d1f038f5279ec4df66785a1b2429b3fa5e3a01bcb75bd8' --uuid 111\"] So, I don't understand how this could have happened. Although my recent changes mean it'll use a 62 byte path max on Android now, which certainly should avoid the problem, even if there's some actual bug here that I cannot reproduce. """]]