update
This commit is contained in:
parent
f84ac8141e
commit
2faa2cdf00
2 changed files with 40 additions and 42 deletions
|
@ -37,42 +37,3 @@ jobs when low on battery or run flat out when plugged in.
|
||||||
|
|
||||||
The app should be aware of network status, and avoid expensive data
|
The app should be aware of network status, and avoid expensive data
|
||||||
transfers when not on wifi. This may need to be configurable.
|
transfers when not on wifi. This may need to be configurable.
|
||||||
|
|
||||||
### FAT sucks
|
|
||||||
|
|
||||||
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
|
|
||||||
handle all of git's filenames.) Possible approaches to this follow.
|
|
||||||
|
|
||||||
(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.
|
|
||||||
|
|
||||||
Could be improved some by registering git-annex as a file handling app on
|
|
||||||
Android, allowing you to "send to" git-annex.
|
|
||||||
|
|
||||||
#### implement git smudge filters
|
|
||||||
|
|
||||||
See [[todo/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.)
|
|
||||||
|
|
||||||
#### crazy `LD_PRELOAD` wrapper
|
|
||||||
|
|
||||||
Need I say more? (Also, Android's linker may not even support it.)
|
|
||||||
|
|
|
@ -1,5 +1,42 @@
|
||||||
While dropbox allows modifying files in the folder, git-annex freezes
|
While dropbox allows modifying files in the folder, git-annex freezes
|
||||||
them upon creation.
|
them upon creation, using symlinks.
|
||||||
|
|
||||||
To allow editing files in its folder, something like [[todo/smudge]] is
|
This is a core design simplification of git-annex.
|
||||||
needed, to get rid of the symlinks that stand in for the files.
|
But it is problimatic too:
|
||||||
|
|
||||||
|
* To allow directly editing files in its folder, something like [[todo/smudge]] is
|
||||||
|
needed, to get rid of the symlinks that stand in for the files.
|
||||||
|
* OSX seems to have a [[lot_of_problems|bugs/OSX_alias_permissions_and_versions_problem]]
|
||||||
|
with stupid programs that follow symlinks and present the git-annex
|
||||||
|
hash filename to the user.
|
||||||
|
* FAT sucks and doesn't support symlinks at all, so [[Android]] can't
|
||||||
|
have regular repos on it.
|
||||||
|
|
||||||
|
One approach for this would be to hide the git repo away somewhere,
|
||||||
|
and have the git-annex assistant watch a regular directory, with
|
||||||
|
regular files.
|
||||||
|
|
||||||
|
There would have to be a mapping from files to git-annex objects.
|
||||||
|
And some intelligent way to determine when a file has been changed
|
||||||
|
and no longer corresponds to its object. (Not expensive hashing every time,
|
||||||
|
plz.)
|
||||||
|
|
||||||
|
Since this leaves every file open to modification, any such repository
|
||||||
|
probably needs to be considered untrusted by git-annex. So it doesn't
|
||||||
|
leave its only copy of a file in such a repository, but instead
|
||||||
|
syncs it to a proper git-annex repository.
|
||||||
|
|
||||||
|
The assistant would make git commits still, of symlinks. It can already do
|
||||||
|
that with without actual symlinks existing on disk. More difficult is
|
||||||
|
handling merging; git merge wants a real repository with files it can
|
||||||
|
really operate on. The assistant would need to calculate merges on its own,
|
||||||
|
and update the regular directory to reflect changes made in the merge.
|
||||||
|
|
||||||
|
Another massive problem with this idea is that it doesn't allow for
|
||||||
|
[[partial_content]]. The symlinks that everyone loves to hate on are what
|
||||||
|
make it possible for the contents of some files to not be present on
|
||||||
|
disk, while the files are still in git and can be retreived as desired.
|
||||||
|
With real files, some other standin for a missing file would be needed.
|
||||||
|
Perhaps a 0 length, unreadable, unwritable file? On systems that
|
||||||
|
support symlinks it could be a broken symlink like is used now, that
|
||||||
|
is converted to a real file when it becomes present.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue