Task-Oriented Operation

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

Firefly implements a new task-oriented version control model. What is a task? A task is an item in a Change Request system. Such item could be a request for bug fix, feature enhancement, design requirement or document update. If you have a CR system, you can associate your CR items with changesets. The relationship between changeset and CR item is multiple association. See diagram below. If you don’t have a CR system, then you can use changeset as tasks.

Let’s look at a typical situation: a bug was discovered and entered in a CR system to create a work item. One of the engineers was assigned with the item. He/she first finds out the files connected to the bug and defines a changeset and associate these files with it. Then he/she associates the defined changeset with assigned work item. >From this moment onward, the engineer can simply check the defined changeset instead of individual files. All the changes he/she makes to fix the bug are stored in the changeset and stored locally until the engineer decides to commit them to the server. The process of committing a changeset(s) will be atomic. It either finishes all data transferred or server treats it like it never happened.

Obviously, Firefly’s task-oriented model helps you to better organize your local workspace. Your daily operations will no longer be file based but task based, which is much more human-behavior like and helps to increase efficiency. Suppose your task is to implement five RFEs (request for enhancement) and there are 124 files associated with these five RFEs in total. After you finish two of them and the project manager decide that it might not be wise to wait till all five are finished then merge them back to the main stream so he ask you to submit the two you already completed. So instead of pick out the 64 files associated with these two particular RFEs for checkin, you can simply commit the two changeset.

All changeset will be preserved as part of the branch history and will be stored on server after they are committed.

The existence of changeset makes baseline and release management easy and reliable. A baseline plus any arbitrary number of changeset is a new baseline. A branch plus any changeset(s) in history to create a new branch. Imagine the ease-of-use and flexibility.

Here are a couple of situations where changeset shines:

Code review could be hosted before the source code modifications are actually applied to the stream. After the modifications are reviewed, then they can be merged into the appropriate stream.

This model also makes Process Approval possible. For an example, after bug 101 was fixed, engineer A will submit his modifications which will be saved in a Changeset to the server. Then a project manager will review the changes to verify if these modifications are necessary and done correctly. If so, this project manager will approve the bug fix and allow it to go into the development stream. If not, he/she could reject it and the system will automatically notify engineer A.

Firefly task-oriented model is different from the traditional changeset model. It always guarantees user the latest tree view and is very flexible for distributed, offline, and parallel development.

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