29ae536637
Avoids some problems with unusual character in exporttree filenames that confuse adb shell commands. In particular, with a filename that contains \351, adb push sends the file to the correct filename in /sdcard. And running find on the android device roundtrips the filename. But, running mv on that filename on the android device fails with "bad <filename>: No such file or directory". Interestingly, ls on android works, and rm fails. adb push to the final name to avoids this problem. But what about atomicity? Well, I tried an adb push and interrupted it part way through. The file was present while the push was running, but was removed once the push got interrupted. I also tried yanking the cable while adb push was running, and the partially received file was also deleted then. That avoids most problems. An import that runs at the same time as an export will see the partially sent file. But that is unlikely to be done, and if it did happen, it would notice that the imported file had changed in the meantime and discard it. Note that, since rm on the android device fails on these filenames, exporting a tree where the file is deleted is going to fail to remove it. I don't see what I can do about that, so long as android is using an rm that has issues with filename encodings. This was tested on a phone where find, ls, and rm all come from Toybox 0.8.6. Sponsored-by: unqueued on Patreon |
||
---|---|---|
.. | ||
Directory | ||
External | ||
Helper | ||
List | ||
Rsync | ||
WebDAV | ||
Adb.hs | ||
BitTorrent.hs | ||
Borg.hs | ||
Bup.hs | ||
Ddar.hs | ||
Directory.hs | ||
External.hs | ||
GCrypt.hs | ||
Git.hs | ||
GitLFS.hs | ||
Glacier.hs | ||
Hook.hs | ||
HttpAlso.hs | ||
List.hs | ||
P2P.hs | ||
Rsync.hs | ||
S3.hs | ||
Tahoe.hs | ||
Web.hs | ||
WebDAV.hs |