Q10004 - How to build a geographically distributed development team using Firefly?
Suppose you have several development teams in different sites, say one is in Sunnyvale,
California, and one is in Boston, Massachusetts. Developers in those three teams work
together on a big project. But they have different responsibilities.
- team in Sunnyvale - work on the core, framework of the project
- team in Boston - do customization according to the customer's requirement
Those two teams work on two different branches.
Sunnyvale team works on a DevSunnyvale branch, and DevBoston team works on a sub-branch
called Boston. As features evolve, there are some merges going on between the two
There are two solutions Firefly can provide.
First one is to setup only one Firefly server in Sunnyvale. Developers in Sunnyvale team
just connect to the Firefly server through LAN and work on branch DevSunnyvale.
Developers in Boston team connect to Firefly server at Sunnyvale through the internet or
VPN. Since Firefly is built on pure TCP/IP protocol, a Firefly client can connect to a
server as long as it can establish a socket connection to the server. No shared file
systems such as Windows shared file system, or NFS are required. No Windows Domain,
The first solution is easy to use. But if you don't have good connection between
those two sites, it could be slow.
The second solution is based on Firefly ServerSync technology. You can setup a
Firefly server in Sunnyvale site, and a Firefly server in Boston site. Please see the
Here are the steps you need to follow:
- in Sunnyvale site, make a DevSunnyvale branch in Firefly server Sunnyvale, mark it
- in Boston site, sync DevSunnyvale branch from server Sunnyvale, you will get a copy
of DevSunnyvale branch in server Boston, but this one is a salve branch, i.e. it is
read-only. Then you can replicate changes in the master DevSunnyvale branch. Only
changes are transferred. To replicate changes, those two servers don't have to be
connected. You can save the changes in server Sunnyvale, send it to Boston team via
email or ftp, and import those changes in server Boston.
- in Boston site, you can create a sub-branch called DevBoston under DevSunnyvale.
Then your team can work on this branch.
- if you want to share your work on DevBoston to Sunnyvale team, you can mark the
DevBoston branch as a master branch, and sync it back to server Sunnyvale. In server
Sunnyvale, you can do a branch merge as usual.
The advantage of ServerSync is that those development sites can operate separately,
and the data, including historical versions of files can be replicated.
You need purchase Firefly ServerSync license on both servers.