From https://gerrit.wikimedia.org/r/#/c/238839/:
> Dan and I talked yesterday about this (and I talked to Filippo about it this morning): it would be fairly easy (and a Good Thing™) to keep backwards compatibility WRT trebuchet directory structure in this patch.
>
> Combination of Dan and Filippo's thoughts: Rather than use `/srv/deployment/[repo]/{cache,current,revs}` we could use `/srv/deployment-cache/[repo]/{cache,current,revs}` and symlink `/srv/deployment/[repo]` -> `/srv/deployment-cache/repo/current`
>
> Keeps backwards compatibility, plus is future-repo-name agnostic (i.e., repos wouldn't have to be named `something/something` [e.g., `scap/scap` `ocg/ocg`] for this to work.)
>
> ...
>
> Would be a nice to have to just put the final finishing symlink in-place with a config var like `final_path` (ln -s [deploy_dir]/current -> final_path)
The one caveat to this approach is deciding how to deal with existing Trebuchet managed directories before we create the `final_path` symlink. @mmodell suggested we might move them to a `.old` directory, which seems like a sane approach.
Bikeshedding: What about calling it `legacy_dir`? That way we get annoyed every time we see the word "legacy" and feel motivated to migrate the remaining Trebuchet repos to use our new tool. :)
Also, I'm assuming this should happen after the `current` link is switched but before service restart? (Which means we may have to split the `promote` stage into `promote` and `restart`; that should be trivial.)