We have an in-house tool that can group together multiple repositories - a bit like git submodules, but works with other repository types - CVS, hg, etc.
It currently uses a single 'meta' repository to store information about all our repositories - dev branches, release tags, etc. But I'm wondering if it's possible to distribute this and put the information into the repositories themselves?
My first thought for a git repository is to use a branch called, say, 'metadata' which stores this information. That's fine, but when our tool has to update this info I don't really want it checking out the branch and changing the current working copy.
So ideally, I was wondering if it's possible to manipulate a branch in a git repo - like getting a list of files from the current head of a branch and making commits without affecting the current working copy (which would have a different branch checked out).
Are there any low level plumbing commands that can manipulate a branch without touching the working copy?
My second thought is notes. Perhaps I can manipulate notes and attach them to a known commit - i.e. a single commit on the 'metadata' branch?
Is there anything else I've missed?
Thanks.