git-annex/ design/ assistant/ polls/ what is preventing me from using git-annex assistant

My goal for this month is to get more people using the git-annex assistant, and fix issues that might be blocking you from using it. To do this, I'd like to get an idea about whether you're already using it, or what's keeping you from using it.

If you use `git-annex` at the command line and have no reason to use the assistant, please instead fill in this poll on behalf of less technically adept friends or family -- what's preventing you from introducing them to the assistant?

[[!poll open=no expandable=yes 8 "I'm using the assistant!" 28 "I need a Windows port" 30 "I need an Android port" 3 "I need an IPhone port (not holding my breath)" 2 "Well, it's still in beta..." 11 "I want to, but have not had the time to try it" 5 "Just inertia. I've got this dropbox/whatever that already works.." 3 "It's too hard to install (please say why in comments)" 2 "Perceived recent increase of bug reports and thus sitting it out." 25 "Initially the lack of direct-mode. Now concerns about the safety of direct mode. Perhaps after the next release." 10 "I haven't always well understood the differences between commandline operation & the assistant, so the differences would confuse me, and I found the command line more understandable & less scary. Now trying to learn to like & trust the assistant. :)" 21 "An Ubuntu PPA would be supercool! Thanks for your great work!!" 18 "Not yet in Debian sid amd64" 6 "Waiting for Fedora/CentOS rpm repository." 2 "throttling transfers, it upsets people when I saturate the connection" 2 "partial content" 1 "Not yet available in macports" 4 "No build yet for Nokia N9" 3 "Using only git-annex webapp to config does not seem to work: Create walkthough?" 5 "No build for OSX 10.6" 5 "Needs more focus on the UI." 1 "Just inertia. I don't have a Dropbox/whatever." 4 "Replaces files with a symlink mess." 2 "configurable option to only annex files meeting certian size or filename criteria" 4 "I'm really confused about how to make it sync with a remote NON-bare repository. I'm even afraid to try `git remote add`, since there is no clear method to completely forget a git-annex remote..." 5 "A build for te raspberry pi would be supercol!" 1 "Would be nice to exclude subfolders from the gui or through a config file" 1 "I wish I had transparently encrypted git repos in the cloud available, like jgit." 1 "too many inodes used in direct mode. maybe it's possible to keep more info as git objects instead?" 2 "I need to be able to restrict in which repo dirs changes get auto-committed" 1 "Provide .deb package" 1 "Better documentation/walkthroughs on using git-annex within an existing git repo. AKA mixed use" 1 "Union mounts to have a single view of file collection on the network" 1 "Ubuntu PPA does not build with webapp" 1 "I set it up, but am confused about what I set up! It would be great to be able to start from scratch." 1 "I need to be able to restrict in which repo dirs changes get auto-committed using a syntax similar to gitignore"]]

Feel free to write in your own reasons, or add a comment to give me more info.

Note: Poll is now closed. Nearly all these issues have been dealt with. Please file bug reports if any of these issues still affect you.

Question about git-annex

Not sure where the correct place to ask this is...

My use case for git-annex is to back up important files (pictures, videos, etc.) on a hard disk at work and one at home. Is there an easy way to do that? I'd like to be able to get git-annex to fill up my phone/laptop with files that it thinks are backed up in <2 of the locations, and ferry them back and forth. They can be deleted to free up space after that, if necessary.

Thanks for all your work, by the way. I missed the kickstarter, but if there's a simple and direct way to donate (dwolla?, gittip?), I'd love to chip in.

Comment by https://www.google.com/accounts/o8/id?id=AItOawkQafKy7hNSEolLs6TvbgUnkklTctUY9LI — Wed Oct 29 14:05:27 2025
comment 8

@Alexandre, what you want can be achieved by setting up XMPP pairing, and also local pairing. Then when computers are on the same network, transfers are done via the LAN.

@Laszlo, this can be set up without using the webapp. Just make the two repositories, using the webapp. Then go into each and run "git remote add myotherrepo $path_to_other_repo". Then assistant will automatically sync them. I have thought about adding a configurator for this to the webapp. It would help to know what use cases you're getting at with this.

@marvin The generated ssh keys are configured to only allow running `git-annex-shell`, which limits it to only acting on the repository. The keys are also configured, in `.ssh/config` to only be used when a particular host alias is used. They should not be used when you just ssh normally to the host. If this is happening to you, please file a bug report with details.

@dzsino you can get file creation dates out of git using git log :)

Comment by http://joeyh.name/ — Wed Oct 29 14:05:27 2025
Recording file creation dates?

I've just started using git annex, command line feels safer for the time being. One issue I've got with assistant that I had to kill it couple of times when it got confused over something (could be that I used command line git annex at the same time?), shutdown from the UI is welcome.

More of a git annex issue for me that I lost file creation dates for annexed files, which i don't really mind for most of my content, except really old photos without proper EXIF tags. I think of git annex as more of a DVR for my digital life, rather than a mere sync tool, so I would welcome some basic metadata facility. Would you consider adding this? (Really getting carried away, I would want to full text search on file names, ID3 tags, document metadata and text etc. and requesting files based on search hits, spotlight style..)

Comment by https://dzsino.myopenid.com/ — Wed Oct 29 14:05:27 2025
comment 6

Laszlo's concern about "you can only select a drive and not a directory" relates to a problem I had.

I have two local directories, ~/annex indirect my main annex, and ~/directannex for playing with direct mode.

I had hoped to back each up to the same shared drive, but didn't realize there was no option to select a directory within a shared drive, so when I tried to do that through the assistant I inadvertently connected the two by backing them up to the same directory on the shared drive!

This is probably a "power user problem" which has a "power user solution" of setting up the separate repository manually. But it did take me by surprise.

Comment by http://edheil.wordpress.com/ — Wed Oct 29 14:05:27 2025
SSH keys

Really looking forward to seeing this project go forward and impressed by what you have accomplished.

I have my own server which I want to use as a repository, so I'll choose "Remote server". I want to use direct mode. Now I can only create an encrypted remote which is fine for me, but I don't know how to sync that with another client using this remote.

Also with the generated ssh keys I no longer can log into my server normally as it tries to use the generated keys. The generated keys should also be restricted to only be able to change the repository and nothing else.

Maybe webdav could be used to create something with better access control and repositories for groups etc. Also with a simple web upload/download page, similar to dropbox.

Sorry if my post is long and idiotic, just simple (hopefully constructive) feedback from a simple user :)

Comment by marvin — Wed Oct 29 14:05:27 2025
Two local repositories

Here is my usecase: I want two local (direct mode) repositories. So basically a working directory and a backup directory to the working one.

The removable media repository almost fulfill this usecase, except you can only select drive and not a directory. I think it would be relatively simple to implement. (A drive is a directory under linux after all).

Best, Laszlo

Comment by https://www.google.com/accounts/o8/id?id=AItOawm5iosFbL2By7UFeViqkc6v-hoAtqILeDA — Wed Oct 29 14:05:27 2025
comment 3

I've got a few wishes for git-annex… Referring to the poll options:

- I need an Android port

I think this is the biggest issue for getting a high WAF. (I want to put our photos in an annex, and getting them auto-magically off her phone would get me massive brownie points.)

- Initially the lack of direct-mode. Now concerns about the safety of direct mode. Perhaps after the next release.

The "potentially unsafe" sort of comments in the blog make me worry about trusting my data to the direct mode. Saying that I really appreciate the honesty of the comments. That is why I want to keep using, and recommend to others, git-annex.

- I haven't always well understood the differences between commandline operation & the assistant, so the differences would confuse me, and I found the command line more understandable & less scary. Now trying to learn to like & trust the assistant.

I also have worried about the automatic adding by the assistant - prior to direct mode.

- throttling transfers, it upsets people when I saturate the connection

I think a bittorrent option would be ideal. Not public torrents, but torrents between my annexes.

Comment by http://a-or-b.myopenid.com/ — Wed Oct 29 14:05:27 2025
Can't seem to get the configuration I am looking for from the webapp

Currently, I have a local server, desktop and laptop (all on the same network). My laptop leaves the house occasionally where I work on it... Quite simply, I want make the local server the centralised repository and have the desktop + laptop sync up and down to and from the server. The server would act as a backup and file change history between all local repositories on desktop and laptop. So I would sync between trips away.

Sadly every combination with git-annex webapp fails for a number of reasons, it could be just me but here is what I've experienced:

a) I want to use direct mode ALL the time or at least be able to configure it without the command line. Currently server side set ups are indirect depending on the repository group. So no symlinks basically. I think "full backup" and "client" are the only two that do what I was hoping for here. b) The list of repository group types miss something I'm looking for, I want the "full backup" with "transfer" for the remote server - I guess? c) For remote cloud solutions, I would like the files to exist, not just the raw .git/ directory to exist on the server. When I tested it, I couldn't see a way to test on the server itself the integrity of the files (could be my lack of git-annex knowledge :) d) I would like it if the assistant made it simpler to configure remotes, i.e. right now if I have 2 directories I believe I would need 4 configurations to push/pull locally and remotely to the 1 server with each machine. I've had this working and it's the closest I've got so far, but tedious if I want to do it for 5 directories on 2 machines (that's 20 configurations to add in all unless there is an easier way?) e) The "share with other devices" option seems one of the best right now, but it suffers with the issues of c) AFAICT. Why not have the server just be a remote when unencrypted?

From some reading up on the command line tools, it seems like it would be easier to set up using those for what I want than using the webapp. I currently love the webapp, it's just missing some polish and options to do what I need.

Thanks for the great work so far! :)

Comment by https://www.google.com/accounts/o8/id?id=AItOawmH-n1yD04qmSeXKKzYaXFTN1ciFWVb5As — Wed Oct 29 14:05:27 2025
comment 20
You can turn off automatic commits in the webapp by pausing syncing for the local repository.
Comment by http://joeyh.name/ — Wed Oct 29 14:05:27 2025
Two assistants with shared transfer repository

I voted for the Windows port, which unfortunately I must use at work.

But another thing that Dropbox gets right is that you can sync two clients with one shared repository that works without any configuration whether you are home or somewhere else. This use case is covered by sync over XMPP, but there are two small issues with this : - if I use Google XMPP servers to sync two assistants in the same network, everything goes through the slower Internet link - if I setup my own XMPP server, well, this is more setup, more open ports, etc.

It would be nice to have repository pushs on a shared repository notified to the connected clients in the SSH connection.

Comment by https://www.google.com/accounts/o8/id?id=AItOawniCRkhl_W87gOK5eElfsef3FoUsUFpAr4 — Wed Oct 29 14:05:27 2025
Windows + git ignore like syntax for files to sync

Hi,

my company would need this for some project.

But to adopt it I would need: * windows support (I don't care if now symlink support for now) * being able to define which files are automatically synced using a syntax similar to the gitignore one * being able to disable auto-commit (just synching, user should be able to commit on their own)

thanks

Comment by https://www.google.com/accounts/o8/id?id=AItOawnmvVKc1ECzZx7EhtLHBP6RWPZewq4x_9I — Wed Oct 29 14:05:27 2025
comment 18

the "I haven't always well understood the differences between commandline operation & the assistant, so the differences would confuse me, and I found the command line more understandable & less scary. Now trying to learn to like & trust the assistant." fits pretty well for me -- i'd like to use the webapp at least for viewing, but i'm worried that some auto-magic would kick in, and i regularly have uncommitted stuff in at least one git-annex repo.

a --dry-run flag or similar on the `git annex webapp` would be nice, or a description of what would happen or how to turn that off / make it create other branches / even commit or push something.

Comment by http://christian.amsuess.com/chrysn — Wed Oct 29 14:05:27 2025
comment 17
@rubiojr I recommend configuring direct mode repos as untrusted if you care about accessing old versions of your files as stored in git. If that is not a concern, direct mode is safe, it's just that it allows editing/deleting any file at any time, even if that's the only copy of the file.
Comment by http://joeyh.name/ — Wed Oct 29 14:05:27 2025
just one thing
http://git-annex.branchable.com/todo/wishlist:_disable_automatic_commits/ is the only thing I'm waiting for. Will become a very keen beta-tester (maybe even coder) when that happens.
Comment by http://adamspiers.myopenid.com/ — Wed Oct 29 14:05:27 2025
direct mode still 'untrusted'?

BTW,

Does this still apply?

"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.)"

http://git-annex.branchable.com/design/assistant/blog/day_151__direct_mode_toggle/

Comment by https://launchpad.net/~rubiojr — Wed Oct 29 14:05:27 2025
git-annex PPA

Hey Joey,

I do maintain a PPA with a more up2date version in fact:

https://launchpad.net/~rubiojr/+archive/git-annex

Now that the direct mode is in place, I guess it's probably a good time to backport again.

Thanks for such a great piece of software.

Comment by https://launchpad.net/~rubiojr — Wed Oct 29 14:05:27 2025
comment 13

@Pedro: That is an excellent test, and usecase!

Indeed, the gui needs a lot more info on it. Also file integratity is a real fear with this kind of application.

Comment by https://www.google.com/accounts/o8/id?id=AItOawm5iosFbL2By7UFeViqkc6v-hoAtqILeDA — Wed Oct 29 14:05:27 2025
It fails silently and leaves symlinks behind

I dedicated a day to looking into using the assistant and although it's clearly an exciting piece of software it's still pretty hard to get working. To get two machines to sync with one another the options seem to be:

1. Connect both of them to a XMPP server: That makes metadata sync flawlessly and yet leaves a symlink mess behind. As it turns out that's because XMPP syncs only metadata but nowhere was that stated on the webapp (that I could find) and no error message given
2. So then I tried the sync method with SSH.

For that you'll need to:

- Have SSH servers installed on both endpoints (for me that was easy to do but I'm sure most users will have a harder time)
- Make sure both computers are actually on the same broadcast network otherwise they won't see each other (I was testing with a VM behind virtualbox's NAT so initially it didn't work)
- Install the assistant on both sides and make sure both the base program and the shell wrapper are in the PATH. (this was harder to do than needed as in the standalone bundle they're not on the same folder and the shell wrapper needs to be run by the runshell script, so even if you get it in the path it will still fail with missing libraries. An Ubuntu PPA would have solved this I'm sure.

For some reason I couldn't figure out they still couldn't sync and symlink mess ensued.

I think there are a few usability issues here:

1. Direct mode should never overwrite files in a way you can no longer use them just because metadata updates came before content updates. I'd rather have an older version of the file than lose access to it.
2. Error reporting needs to be a lot more explicit to be able to debug these issues
3. At the best of times SSH sync is going to be a problem. In my opinion to be really dropbox-like the sync method for normal users should be to connect all devices to the same XMPP account (this works great now) and then have those assistants automatically reach each other by a direct connection when possible and by something like STUN if NAT punching is needed. The SSH/bup/etc remotes all have their place for advanced setups but being able to tell the user to just connect to XMPP and be done would turn this from "something I'll spend an afternoon writing puppet manifests to deploy in my personal servers/computers" to "something I can explain to a non-technical friend how to use over a phone call and then share files with him".

On the XMPP side though, it would work best if you could authenticate a Google XMPP acount through an OAuth workflow instead of asking for the password. I wouldn't give any program my gmail password but I'd easily give it permission to use gtalk on my behalf.

As I started by saying the assistant (and git-annex in general) is an extremely impressive piece of software that I'm very excited about. I hope it keeps improving at the current pace as there are still a few features I'd love to have (partial content particularly) but by far the thing that's keeping me most from using it is the ability to easily get a reliable sync going that won't leave me with a folder full of symlinks that I don't know what to do about. One of the great things about dropbox is that whenever it isn't running or can't sync for any reason your folder degenerates into a folder like any other on your disk. The right way of thinking about direct mode should be that one, "a folder like any other that we stream changes from and to on multiple machines". Right now, with the symlink replacement when sync isn't possible and to a lesser extent the adding of .git folders it doesn't live up to that guarantee.

Comment by https://www.google.com/accounts/o8/id?id=AItOawkx5V3MTbzCXS3J7Mn9FEq8M9bPPYMkAHY — Wed Oct 29 14:05:27 2025
comment 11

@dzsino: You may want to have a look at metamonger which tries to solve exactly this problem. It's not finished yet, though.

-- Richard

Comment by https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U — Wed Oct 29 14:05:27 2025
comment 10

@joey: My usecase is fairly simple. I have a working directory where I do work (not programing, but text editing with homecooked spreadsheet/texteditor).

I work/type on spot/on site. So I'm walking while typing.

Its easy to do stupid things while you work, so would be really handy to have a backup automagically on the same computer to prevent mistakes, user errors. (The last mistake, I did is I copied all my daily files into a "tmp" directory, then I launched my homebrew program which also created a tmp dir then deleted the whole content of it. I fixed it, but my datas was lost. It is a simple user mistake which could be prevented if I would have a live backup all the time. Creating a git repo for daily typing is just too much overhead. It is like you create a git repo for your text messages...)

So my usecase is a live backup. Or the broken file deleting thing on unix/linux since forever.

Laszlo

Comment by https://www.google.com/accounts/o8/id?id=AItOawm5iosFbL2By7UFeViqkc6v-hoAtqILeDA — Wed Oct 29 14:05:27 2025
Two reasons

As of right now, the assistant has only secondary benefit over plain git-annex inasmuch there's a lot more code activity.

As soon as the assistant supports Android, I will use for syncing photos off of my phone and may start to use the assistant on my usual repos as a natural consequence.

Additionally, there's a subjective feeling of more bugs being reported. That may or may not be true, but as long as there's no Android port, I don't have an actual reason to "risk" it.

-- Richard

PS: This seems to be the first poll where you can place only one vote while it's the first where I really wanted to vote on two separate items.

Comment by https://www.google.com/accounts/o8/id?id=AItOawl9sYlePmv1xK-VvjBdN-5doOa_Xw-jH4U — Wed Oct 29 14:05:27 2025
Comments on this page are closed.