Merge branch 'master' into desymlink

Conflicts:
	debian/changelog
	doc/design/assistant/desymlink.mdwn
This commit is contained in:
Joey Hess 2012-12-17 13:29:10 -04:00
commit 40fa6936e4
52 changed files with 675 additions and 42 deletions

View file

@ -2,4 +2,10 @@ The git-annex assistant is being
[crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/).
I'll be blogging about my progress here on a semi-daily basis.
[[!sidebar content="""
[[!calendar type="month" pages="page(design/assistant/blog/*)"]]
[[!calendar type="month" month="-1" pages="page(design/assistant/blog/*)"]]
[[!calendar type="month" month="-2" pages="page(design/assistant/blog/*)"]]
"""]]
[[!inline pages="page(design/assistant/blog/*)" show=0]]

View file

@ -1,6 +1,6 @@
More bugfixes today. The assistant now seems to have enough users that
they're turning up interesting bugs, which is good. But does keep me too
busy to add many more bugs^Wcode.
busy to add many more bugs\^Wcode.
The fun one today made it bloat to eat all memory when logging out of a
Linux desktop. I tracked that back to a bug in the Haskell DBUS library

View file

@ -0,0 +1,59 @@
Built `git annex direct` and `git annex indirect` to toggle back and forth
between direct mode. Made `git annex status` show if the repository is in
direct mode. Now *only* merging is needed for direct mode to be basically
usable.
I can do a little demo now. Pay attention to the "@" ls shows at the end
of symlinks.
joey@gnu:~/tmp/bench/rdirect>ls
myfile@ otherfile@
joey@gnu:~/tmp/bench/rdirect>git annex find
otherfile
# So, two files, only one present in this repo.
joey@gnu:~/tmp/bench/rdirect>git annex direct
commit
# On branch master
# Your branch is ahead of 'origin/master' by 7 commits.
#
nothing to commit (working directory clean)
ok
direct myfile ok
direct otherfile ok
direct ok
joey@gnu:~/tmp/bench/rdirect>ls
myfile@ otherfile
# myfile is still a broken symlink because we don't have its content
joey@gnu:~/tmp/bench/rdirect>git annex get myfile
get myfile (from origin...) ok
(Recording state in git...)
joey@gnu:~/tmp/bench/rdirect>ls
myfile otherfile
joey@gnu:~/tmp/bench/rdirect>echo "look mom, no symlinks" >> myfile
joey@gnu:~/tmp/bench/rdirect>git annex sync
add myfile (checksum...) ok
commit
(Recording state in git...)
[master 0e8de9b] git-annex automatic sync
...
ok
joey@gnu:~/tmp/bench/rdirect>git annex indirect
commit ok
indirect myfile ok
indirect otherfile ok
indirect ok
joey@gnu:~/tmp/bench/rdirect>ls
myfile@ otherfile@
I'd like `git annex direct` to set the repository to untrusted, but
I didn't do it. Partly because having `git annex indirect` set it back to
semitrusted seems possibly wrong -- the user might not trust a repo even in
indirect mode. Or might fully trust it. The docs will encourage users to
set direct mode repos to untrusted -- in direct mode you're operating
without large swathes of git-annex's carefully constructed safety net.
(When the assistant later uses direct mode, it'll untrust the repository
automatically.)

View file

@ -0,0 +1,18 @@
Fixed a bug in the kqueue code that made the assistant not notice when a
file was renamed into a subdirectory. This turned out to be because the
symlink got broken, and it was using `stat` on the file. Switching to
`lstat` fixed that.
Improved installation of programs into standalone bundles. Now it uses
the programs detected by configure, rather than a separate hardcoded list.
Also improved handling of lsof, which is not always in PATH.
Made a OSX 10.8.2 build of the app, which is nearly my last gasp attempt
at finding a way around this crazy `git init` spinning problem with Jimmy's
daily builds are used with newer OSX versions. Try it here:
<http://downloads.kitenet.net/tmp/git-annex.dmg.bz2>
----
Mailed out the Kickstarter T-shirt rewards today, to people in the US.
Have to fill out a bunch of forms before I can mail the non-US ones.

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmYiJgOvC4IDYkr2KIjMlfVD9r_1Sij_jY"
nickname="Douglas"
subject="OSX troubles"
date="2012-12-17T16:07:41Z"
content="""
Have you considered making a homebrew installable version of git-annex? It may make things easier for you when it comes to build dependencies.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joeyh.name/"
ip="4.153.8.117"
subject="comment 2"
date="2012-12-17T16:16:47Z"
content="""
I would *love* *love* *love* for there to be a homebrew for git-annex. But I know nothing about homebrew so am not in a very good position to do it.
"""]]

View file

@ -62,6 +62,7 @@ is converted to a real file when it becomes present.
can map to multiple files. And that when a file is deleted or moved, the
mapping needs to be updated.
* May need a reverse mapping, from files in the tree to keys? TBD
(Currently, getting by looking up symlinks using `git cat-file`)
(Needed to make things like `git annex drop` that want to map from the
file back to the key work.)
* The existing watch code detects when a file gets closed, and in this

View file

@ -11,6 +11,10 @@ who share a repository, that is stored in the [[cloud]].
See <http://git-annex.branchable.com/design/assistant/blog/day_114__xmpp/#comment-aaba579f92cb452caf26ac53071a6788>
* Assistant.Sync.manualPull doesn't handle XMPP remotes yet.
This is needed to handle getting back in sync after reconnection.
* Support use of a single XMPP account with several separate git-annex repos.
This probably works for the simple push notification use of XMPP. But
XMPP pairing and the pushes over XMPP assume that anyone you're paired with
is intending to sync to your repository.
## design goals