Recent comments posted to this site:

comment 1

I think that "annex.assistant.allowlocked" would be as confusing, like you say the user would then have to RTFM to realize that they need to use annex.addunlocked to configure it, and that it doesn't cause files to be locked by default.

To me, "treataddunlocked" is vague. Treat it as what? "allowaddunlocked" would be less vague since it does get the (full) name of the other config in there, so says it's allowing use of the other config.

I agree this is a confusing name, and I wouldn't mind changing it, but I don't think it warrants an entire release to do that. So there would be perhaps a month for people to start using the current name. If this had come up in the 2 weeks between implementation and release I would have changed it, but at this point it starts to need a backwards compatability transition to change it, and I don't know if the minor improvement of "allowaddunlocked" is worth that.

Comment by joey
comment 2
Thank you for the fix, that built just fine and I've successfully bumped the Arch Linux package to 20250929.
Comment by caleb
comment 7

I wonder how sshfs manages stable inodes that differ from the actual ones? But if it's really reliably stable, it would be ok to use it with the directory special remote.

Extending the external special remote interface to support import would let you roll your own special remote, that could use ssh with rsync or whatever.

The current design for that tries to support both import and export, but noone has yet stepped up to the plate to try to implement a special remote that supports both safely. So I am leaning toward thinking that it would be a good idea to make the external special remote interface support only import (or export) for a given external special remote, but not both.

Then would become pretty easy to make your own special remote that implements import only. Using whatever ssh commands make sense for the server.

Comment by joey
comment 11

This did get implemented, git config annex.assistant.allowunlocked true and that will make it use your annex.addunlocked setting.

Comment by joey
comment 6

quick check -- according to ls - original inodes are not mapped but some are given and persist across remounts:

❯ ls -li /tmp/glances-root.log ~/.emacs ~/20250807-15forzabava.pdf
   132280 lrwxrwxrwx 1 yoh  yoh      17 Nov 11  2014 /home/yoh/.emacs -> .etc/emacs/.emacs
152278557 -rw-rw-r-- 1 yoh  yoh  207101 Aug  7 10:30 /home/yoh/20250807-15forzabava.pdf
       34 -rw-r--r-- 1 root root   1165 Oct  1 08:43 /tmp/glances-root.log

❯ sshfs localhost:/ /tmp/localhost

❯ ls -li /tmp/localhost{/tmp/glances-root.log,/home/yoh/{.emacs,20250807-15forzabava.pdf}}
 6 lrwxrwxrwx 1 yoh  yoh      17 Nov 11  2014 /tmp/localhost/home/yoh/.emacs -> .etc/emacs/.emacs
10 -rw-rw-r-- 1 yoh  yoh  207101 Aug  7 10:30 /tmp/localhost/home/yoh/20250807-15forzabava.pdf
 3 -rw-r--r-- 1 root root   1165 Oct  1 08:43 /tmp/localhost/tmp/glances-root.log

❯ fusermount -u /tmp/localhost

❯ sshfs localhost:/ /tmp/localhost

❯ ls -li /tmp/localhost{/tmp/glances-root.log,/home/yoh/{.emacs,20250807-15forzabava.pdf}}
 6 lrwxrwxrwx 1 yoh  yoh      17 Nov 11  2014 /tmp/localhost/home/yoh/.emacs -> .etc/emacs/.emacs
10 -rw-rw-r-- 1 yoh  yoh  207101 Aug  7 10:30 /tmp/localhost/home/yoh/20250807-15forzabava.pdf
 3 -rw-r--r-- 1 root root   1165 Oct  1 08:43 /tmp/localhost/tmp/glances-root.log

ok, if not sshfs and not rsync -- any other way you see? e.g. could it be easily setup for some git with ssh URL type "special" remote? ;-)

Comment by yarikoptic
comment 5

I've copied the git-annex activity idea over to Recent remote activities so it doesn't get lost.

I don't think it makes sense to make that a blocker for removing the webapp though. That would only let an advanced user build some kind of activity display, doesn't address the needs of most users of the webapp.

Comment by joey
Re: git-annex activity

`git annex activity --since="2 weeks ago" --include='*.doc'

This is essentially the same as git-annex log with a path. It also supports --since and --json. The difference I guess is the idea to also include information about git commits of the files, not only git-annex location changes. That would complicate the output, and apparently git-annex log's output is too hard to parse already. So a design for a better output would be needed.

git annex activity --only-annex --in=remote2

This is the same as git-annex log --all with the output filtered to only list a given remote. (--in does not influence --all currently).

git annex activity --only-changes --largerthan=10MB

Can probably be accomplished with git log with some -S regexp.

Comment by joey
comment 5

A git-annex activity (or git-annex log) could also optionally stream live activity as it is happening. Eg, when a transfer is started it could display the start, and then later the end. That would be easy to build with what's in git-annex already. The assistant already uses the transfer logs that way, using inotify to notice changes.

Comment by joey
git-annex activity

Copying a related idea from @nobodyinperson on remove webapp:

Furthermore, a command like git annex activity that goes arbitrarily far back in time and statically (non-live) lists recent activities like:

  • yesterday 23:32: remote1 downloaded 5 files (45MB)
  • today 10:45: you modified file document.txt (10MB)
  • today 10:46: you uploaded file document.txt (from today 10:45) to remote1, remote2 and remote3
  • today 12:35: Fred McGitFace modified file document.txt (12MB) and uploaded to remote2
  • ...

Basically a human-readable (or as JSON), chronological log of things that happened in the repo. This is a superpower of git-annex: all this information is available as far back as one wants, we just don't have a way to access it nicely. git log and git annex log exist, but they are too specific, too broad or a bit hard to parse on their own. For example:

  • git annex activity --since="2 weeks ago" --include='*.doc' would list things (who committed, which remote received it, etc.) that happened in the last two weeks to *.doc files
  • git annex activity --only-annex --in=remote2 would list recent annex operations (in the git-annex branch only) of remote2
  • git annex activity --only-changes --largerthan=10MB would list recent file changes (additions, modifications, deletions, etc., in git log only)

This git annex assistant-log and git annex activity would be a very nice feature to showcase git-annex's power (which other file syncing tool can to this? 🤔) and also solve Recent remote activities.

Comment by joey