I've seen the using box.com as a special remote for using mounted WebDAV remote directory for storage of the tracked files.
It's quite close to a scenario familiar to me, although with a difference.
Let me describe my situation.
I worked on a supplement to a set of textbooks. My work was dependent on the revision of the textbooks (for correct references, etc.). The textbooks were being edited by the author, and published in a WebDAV directory.
So I set up a Git repo for my work, and also a branch to track the revisions of the textbooks which I updated by copying them from the WebDAV directory (after mounting it). The branch where my work was in was either based on the textbooks branch (and rebased/merged and edited to reflect the changes in the new revisions of the textbooks when needed) or contained the repo with textbooks as a submodule.
The textbooks were large files, so I didn't want them be a part of the Git repo with my supplement work when I publish the repo. But I wanted for those who looked into my public repo to understand how to get the textbooks I'm referring to.
I haven't solved this problem for myself completely. Now I see I could use git-annex for this. I t would track the state of the textbooks in the repo, without actually storing them there, and whenever one would need to get the missing textbooks in a clone of the repo, git-annex could handle the download from the WebDAV directory for him, right?
I simply wrote down the rules for reproducing these downloading and saving operations, together with source URL (as a Makefile):
whenever I wanted to update the revisions of the textbooks (or to download them the first time), I would checkout the branch which included this Makefile and was for holding the textbooks, and the run:
make get
-- this target had the temporary mountpoint for the remote directory as prerequisite, and there was a rule to create it, and mount the specified URL at it; then it would sync the files, and I could use Git to track the changes. After I was done inspecting the remote directory, I had to clean up the temporary mountpoint fby unmounting and deleting it. I didn't make it do this automatically after a get
operation for performance reasons (caching of the remote directory would help if I wanted to access it once again).
So, this differs from using box.com as a special remote in that the tip for WebDAV suggest to handle the mounting manually, and git-annex knows nothing about the WebDAV URL where the content comes from.
So here's my wish: a special remote to track the WebDAV URLs in the repo, and mount the remote directory automatically under the hood, whenever one wants to get a file from there. (Then I assume it should also unmount it immediately in order to clean up after itself, despite possible inefficiencies).
remote.<name>.annex-start-command
andremote.<name>.annex-stop-command
which can be used to handle mounting and umounting.I see, thanks for pointing at these config options! Perhaps, that'll be enough.
I'll have to see whether the information on how to access the remote copy (the source URL and how to mount it) saved in config variables will be transferred to the clones of the repo.
AFAIU location tracking, usually, git-annex would transfer the information on where to look for copies from one repo to another.