FleXtream Branching and Parallel Development

Previous Next 1 2 3 4 5 6 7 8 9 10

Branching in Firefly is done with ease and style. It is flexible, powerful and intelligent. We call it FleXtream Branching. It is also what powers stream development pattern in Firefly.

With FleXtream Branching, you can tell which streams was branched from a certain stream, when were they branched, for what purpose, who is working on which stream, which ones are locked and etc. All the necessary information will be readily at your finger tip. Branching in Firefly is stream-based instead of file-based. Each branch has its own meaningful name such as WebStore_2.0_Bugfix or WebStore_1.0 instead of system generated, unchangeable branch name like 1.4.2.2. And with our graphical stream tree tool, project analysis is easier and more intuitive than ever. This guarantees project managers the ability to grasp the situation when it comes to parallel development. No confusion about which branch serves what purpose, no frustration trying to find the right branch, just clean and clear understanding of what’s going on.

FleXtream gives engineers and other team members clear and true teamwork. With Firefly’s hierarchical streams, you will have a very clear picture of

Character: whom you are working with;

Location: where you are working in the project; and

Plot: who is doing changes and where they are making these changes.

Unless you have this information readily available to you, you will be working in the dark.

FleXtream makes branching best practice implementation easy and straightforward. Branching by purpose, branching by task and the more traditional branching by release, among other branching best practices, can all be easily deployed using Firefly.

Firefly supports unlimited stream levels and the time of creating a stream or label in Firefly is a constant. It does not increase with the number of your files and folders. Even if the stream you want to create will contain ten million files, the process will be just slightly slower than that of a hundred-file stream. This is possible because Firefly does not duplicate any file even if the branched out files were modified.

Any two streams, not just parent and child, can be merged in Firefly. In fact, there are a series of actions can be done on any two streams. They can be merged, compared, and synchronized. Firefly provides a powerful and easy-to-use GUI to help you complete all these operations.

The highlighted area is Firefly's branch compare, merge and sync toolbar.

Click here to enlarge

Firefly automatically checks for repetitive merges. Let’s look at a situation: stream Alpha and stream Bravo both contain file Demo.java 1.0. User A and B each work on a stream to produce two versions of Demo.java version 1.1. Then the project manager decided to merge stream Bravo to Alpha and as a result, these two versions of Demo.java 1.1 are merged to Demo.java 1.2 on stream Alpha. From this point on, does it make sense to merge Demo.java 1.2 with Demo.java 1.1 on stream Bravo to produce Demo.java 1.3? Absolutely not. Why? Because version 1.2 already contains changes made by both versions of 1.1. Unfortunately, this is a common flaw among SCM systems. They only remember version 1.1 on Alpha as version 1.2’s parent version and forgets the one on Bravo. Thus, when the system sees version 1.2 and version 1.1 on Bravo has difference content-wise, it decide that they should be merged. Firefly on the other hand does not make the same mistake. All parent files/branches are recorded as part of the history. Therefore, if a repetitive merge happens, no change will be made and the user will be informed.

These features give project managers the ability to perform branching without any restrictions; only the good of the project is their limit.

Firefly also supports file-level concurrent development. Any resource can be checked out by multiple users at the same time for development to improve productivity. When the file was checked back in, the system will automatically check to see if it can be simply put back to the stream or does it need user intervention. If the latter is true, Firefly will call the integrated Hansky Diff-Merge tool to resolve the conflict.

Previous Next 1 2 3 4 5 6 7 8 9 10