Understanding how staging works


#1

I have an installation with multiple Git repos, I wanted to set up a staging repo,

Can a single staging repo be used for all the other repos? or must it be some form of replica for the original repo and hence require multiple versions? (it look like this is what is used on secure.phabricator.com rSTAGING where it implies the rSTAGING is shared)

I guess I’m just curious what rSTAGING will actually contain? and how big it will get?


#2

Can a single staging repo be used for all the other repos?

Yes.

When a staging repo is set, arc diff will do something like this:
git push <staging repo uri> HEAD:<new tag with diff ID>
so the the current state of your repository is sent to create a new tag in the staging repo.

As far as size go - it can get to be the same size as all other repos together, plus any change that is arc diffed but not landed.

See https://secure.phabricator.com/book/phabricator/article/harbormaster/ for some docs about Staging Area.