Firefly KB

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.

  1. team in Sunnyvale - work on the core, framework of the project
  2. 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 branches.

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, NIS+ constraints.

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 illustration below:

Here are the steps you need to follow:

  1. in Sunnyvale site, make a DevSunnyvale branch in Firefly server Sunnyvale, mark it as master.
  2. 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.
  3. in Boston site, you can create a sub-branch called DevBoston under DevSunnyvale. Then your team can work on this branch.
  4. 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.

Applies To

  • Hansky Firefly 3.0