update
This commit is contained in:
parent
7a505a807b
commit
5a270415ef
1 changed files with 52 additions and 12 deletions
|
@ -3,6 +3,8 @@ Porting git-annex to Android will use the Android native SDK.
|
||||||
A hopefully small Java app will be developed, which runs the webapp
|
A hopefully small Java app will be developed, which runs the webapp
|
||||||
daemon, and a web browser to display it.
|
daemon, and a web browser to display it.
|
||||||
|
|
||||||
|
[[!toc]]
|
||||||
|
|
||||||
### programs to port
|
### programs to port
|
||||||
|
|
||||||
These will probably need to be bundled into the Android app, unless already
|
These will probably need to be bundled into the Android app, unless already
|
||||||
|
@ -11,21 +13,59 @@ available in the App Store.
|
||||||
* ssh (native ssh needed for scp, not a client like ConnectBot)
|
* ssh (native ssh needed for scp, not a client like ConnectBot)
|
||||||
* rsync
|
* rsync
|
||||||
* gpg
|
* gpg
|
||||||
* git (not all git commands are needed, but a core plumbing and a few like `git-add` are.)
|
* git (not all git commands are needed,
|
||||||
|
but core plumbing and a few like `git-add` are.)
|
||||||
|
|
||||||
### FAT sucks
|
### FAT sucks
|
||||||
|
|
||||||
The main media partition will use some awful FAT filesystem format from
|
The main media partition will use some awful FAT filesystem format from
|
||||||
1982 that cannot support git-annex's symlinks. Hopefully it can at least
|
1982 that cannot support git-annex's symlinks. (Hopefully it can at least
|
||||||
handle all of git's filenames. Possible approaches to this:
|
handle all of git's filenames.) Possible approaches to this follow.
|
||||||
|
|
||||||
* Keep only a bare git repo on Android. The app would then need to include
|
|
||||||
a file browser to access the files in there, and adding a file would move
|
|
||||||
it into the repo. Not ideal.
|
|
||||||
* Implement [[smudge]] filters to avoid needing symlinks. Difficult.
|
|
||||||
* Use a bare git repo but don't keep files in `annex/objects`, instead
|
|
||||||
leave them outside the repo, and add some local mapping to find them.
|
|
||||||
Seems best?
|
|
||||||
* Use a `LD_PRELOAD` wrapper to do Something Crazy.
|
|
||||||
|
|
||||||
(May want to consider which of these would make a Windows port easier too.)
|
(May want to consider which of these would make a Windows port easier too.)
|
||||||
|
|
||||||
|
#### bare git repo with file browser
|
||||||
|
|
||||||
|
Keep only a bare git repo on Android. The app would then need to include
|
||||||
|
a file browser to access the files in there, and adding a file would move
|
||||||
|
it into the repo.
|
||||||
|
|
||||||
|
Not ideal.
|
||||||
|
|
||||||
|
#### implement git smudge filters
|
||||||
|
|
||||||
|
See [[smudge]].
|
||||||
|
|
||||||
|
Difficult. Would make git-annex generally better.
|
||||||
|
|
||||||
|
#### keep files outside bare git repo
|
||||||
|
|
||||||
|
Use a bare git repo but don't keep files in `annex/objects`, instead
|
||||||
|
leave them outside the repo, and add some local mapping to find them.
|
||||||
|
|
||||||
|
Problem: Would leave files unlocked to modification, which might lose a
|
||||||
|
version git-annex dependend upon existing on the phone. (Maybe the phone
|
||||||
|
would have to be always considered an untrusted repo, which probably
|
||||||
|
makes sense anyway.)
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
|
||||||
|
#### crazy `LD_PRELOAD` wrapper
|
||||||
|
|
||||||
|
Need I say more? (Also, Android's linker may not even support it.)
|
||||||
|
|
||||||
|
### partial content
|
||||||
|
|
||||||
|
On a regular system, a reasonable simplifying assumption is that all the
|
||||||
|
files in the folder will be synced to the system. A user might want to
|
||||||
|
disable syncing of some subdirectories, for eg, archived files. But in
|
||||||
|
general, things are simpler to understand and implement if all files sync.
|
||||||
|
|
||||||
|
But, a phone probably cannot hold all a user's files. Indeed, it's likely
|
||||||
|
that old files will be aggressively dropped from the phone after syncing to
|
||||||
|
elsewhere, in order to keep enough free space on it for new files.
|
||||||
|
|
||||||
|
There needs to be a way for the user to browse files not on the phone and
|
||||||
|
request they be transferred to it. This could be done as a browser in the
|
||||||
|
web app, or using a subdirectory full of placeholder files (not symlinks;
|
||||||
|
see above) that start transfer of the real file when accessed.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue