Add support for indexing submodules without repocache (#985)
* Fix git.Open() fs argument for .git dir instead of worktree
The filesystem argument submitted to git.Open() is of the .git
directory, it should be for the worktree, as in go-git this logic is copied from:
https://github.com/go-git/go-git/blob/145daf2492dd86b1d7e7787555ebd9837b93bff8/repository.go#L373-L375
One side effect of this bug was that go-git would refuse to fetch repo
submodules
* Fix missing RepoURLs and LineFragments for result subrepositories
RepoURLs for subrepositories are currently filtered out when results
are streamed per-repo from shards.
* Add submodule indexing without repo cache
When not using repo cache, index git submodules recursively into
subrepos using the go-git API
* Adjust subrepo naming conventions
- Revert repo-cache behavior to unchanged
- Add support for naming repos and modules with no remote (use the dirname for the
former and subrepopath for the latter)
- Add test for submodule no-repo-cache behavior
* Fix overallocation in repoURL and lineFragment filtering
* Revert basename treatment from 08f67597
Missed the fact that it is already done in zoekt-git-index
command, the test was improperly configured
https://github.com/sourcegraph/zoekt/blob/4e4a529c3b63c7d4c7897ba736f1cd52cc163134/cmd/zoekt-git-index/main.go#L93-L100