From c26b2eb2a4f261fd903b02d397737cf6a3a0196b Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 15 Sep 2017 15:54:20 -0400 Subject: devblog --- doc/devblog/day_472__removing_empty_directories.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 doc/devblog/day_472__removing_empty_directories.mdwn (limited to 'doc') diff --git a/doc/devblog/day_472__removing_empty_directories.mdwn b/doc/devblog/day_472__removing_empty_directories.mdwn new file mode 100644 index 000000000..563a347c3 --- /dev/null +++ b/doc/devblog/day_472__removing_empty_directories.mdwn @@ -0,0 +1,20 @@ +After doing some fine-tuning of webdav export on Wednesday, I noticed a +problem: There seems to be no way in the webdav spec to delete a collection +(directory) only when it's empty like `rmdir(2)` does. +It would be possible to check the contents of the collection before +deleting it, but that's complex (involving XML parsing) and race-prone. + +So, I decided to add a remote method to delete a directory, and make +git-annex keep track of when a directory in an export is empty, and delete +it. While it does complicate the design some to need to do this, that seems +better than complicating the implementation of remotes like webdav. And +some remotes may not have a `rmdir(2)` equivilant or a way to check if a +directory is empty. + +Spent most of today implementing that, including some rather hairy +eSQL to maintain a table of exported directories. + +Still not quite done with export.. + +Today's work was sponsored by Trenton Cronholm on +[Patreon](https://patreon.com/joeyh) -- cgit v1.2.3