Please describe the problem.

Once the assistant daemon is started, it won't notice updates to any gitignore files. This is probably because it spawns a long-lived git check-ignore -z --stdin --verbose --non-matching process which only reads gitignore files on startup.

What steps will reproduce the problem?

  • Start the assistant
  • Add a pattern to a relevant .gitignore or .git/info/exclude
  • (Just to be safe) wait for the assistant to commit and sync that change
  • Create a file matching the new ignore pattern
  • Observe the assistant committing the file to the repository despite it matching the new ignore pattern

What version of git-annex are you using? On what operating system?

7.20191230-gef6d1e327 on openSUSE Leap 15.1

Please provide any additional information below.

I assume that the obvious fix would be to watch for changes to gitignore files, and restart the check-ignore process accordingly.

A workaround is to restart the assistant. I've tested this and it works fine.

Unsurprisingly the daemon log just shows the normal behaviour so it's probably not very useful, but including anyway just in case:

# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
Everything up-to-date
[2020-01-06 15:40:21.863988735] Committer: Committing changes to git
(recording state in git...)
[2020-01-06 15:40:22.024703938] Pusher: Syncing with peer1 
[2020-01-06 15:40:23.025650786] Committer: Committing changes to git
(recording state in git...)
To tor-annex::<censored>.onion:5227
   841db50..d47d59e  master -> synced/master

# End of transcript or log.

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Yes, worked great for many years, but struggling to get the assistant to a point I can use it. Main blockers are assistant sometimes removes and re-adds whole file and wishlist: disable automatic commits.