33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
Implemented `git annex drop --all`. This also added for free drop with
|
|
`--unused` and `--key`, which overlap with `git annexdropunused` and
|
|
`git annex dropkey`.
|
|
|
|
The `concurrentprogress` branch had gone too long without being merged, and
|
|
had a lot of merge conflicts. I resolved those, and went ahead and merged
|
|
it into master. However, since the ascii-progress library is not ready yet,
|
|
I made it a build flag, and it will build without it by default. So, `git
|
|
annex get -J5` can be used now, but no progress bars will display yet.
|
|
|
|
When doing concurrent downloads, either with the new -J or by hand by
|
|
running multiple processes, there was a bug in the diskreserve
|
|
checking code. It didn't consider the disk space that was in the process of
|
|
being used by other concurrent downloads, so would let more downloads
|
|
start up than there was space for.
|
|
|
|
I was able to fix this pretty easily, thanks to the transfer log files.
|
|
Those were originally added just to let the webapp display transfers, but
|
|
proved very helpful here!
|
|
|
|
Finally, made .git/annex/transfer/failed/ files stop accumulating when the
|
|
assistant is not being used. Looked into also cleaning up stale
|
|
.git/annex/transfer/{upload,download}/ files (from interrupted transfers).
|
|
But, since those are used as lock files, it's difficult to remove them
|
|
in a concurrency safe way.
|
|
|
|
Update: Unfortunately, I turned out to have stumbled over an apparent bug
|
|
in haskell's implementation of file locking.
|
|
<https://github.com/haskell/unix/issues/44> Had to work around that.
|
|
|
|
Happily, the workaround also let me implement cleanup of stale transfer
|
|
info files, left behind when a git-annex process was interrupted. So,
|
|
.git/annex/transfer/ will entirely stop accumulating cruft!
|