Add support for eliding the path from the result of GetArchive
I propose adding bool elide_path to GetArchiveRequest. When RepositoryService.GetArchive is called with elide_path = true, Gitaly will call git archive in such a way that <path> is elided from the resulting archive entries.
- With
elide_path = false, Gitaly callsgit archive --format <format> --prefix <prefix>/ <commit-id> <path>(this is the current behavior) - With
elide_path = true, Gitaly callsgit archive --format <format> --prefix <prefix>/ <commit-id>:<path>
The difference is passing the commit ID and path as a single argument, separated by a colon, instead of two arguments (separated by a space).
If the repository contains dir/README.md, the prefix is prefix, and the path is dir:
- With
elide_path = false, the archive includesprefix/dir/README.md - With
elide_path = true, the archive includesprefix/README.md
This will be useful for GitLab's Go proxy implementation. See gitlab#221358 (comment 360527322) and gitlab#218083 (closed)