Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×Hi,
We recently started evaluating stash. We are a small company, but very geographically diverse with several different offices on 3 different continents.
With other source control systems, we have always relied on a proxy/replica server at each office with some sort of centralized "master"
How does this fit into the git/stash architecture?
Would we run multiple instances of stash at each site to handle latency issues?
thanks,
Garret
Hi Garret,
TLDR; You can absolutely mirror Git/Stash if you require it, but using Git greatly reduces the need to do so.
As you probably know Git is a DVCS (Distributed Version Control System). Being distributed means that a majority of your operations, like commit/log/blame/checkout/branch, are completely local. Unlike in other source control systems, like SVN/Clearcase/TFS, you're not contacting the server to do every-single-thing. This greatly reduces the need for having to rely on proxy/replica servers.
If latency is still causing you frustrations despite all this, there is no technical reason you couldn't run proxy Stash servers. Being a DVCS, with Git it's a simple matter of pushing all changes from the "master" server to each proxy after it receives some new changes. The part that Stash doesn't (yet) support out-of-the-box is a mirror plugin. It would be a relatively trivial task to either write a plugin that listens for push events, or to manually add a post-receive hook to your Git repositories in Stash, and on either event replicate to the proxies (ie push to each of them in turn). There is an issue you can follow/vote on if you're interested:
https://jira.atlassian.com/browse/STASH-2714
I hope this helps answer your question.
Charles
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.