Flexible version control?

I am trying to develop a good method for managing code changes in a large project with several teams. We are using subversion at the moment, but I want more flexibility in creating a new version than I seem to get with subversion.

Here I want roughly:

  • for each developer to create easily identifiable patches for the project. Each patch provides a complete user history (feature or fix). It can include many changes to many files.
  • developers can easily apply and remove their own and other patches to facilitate testing.
  • The release manager selects the patches that will be used in the next version in a new branch branch
  • verified, fixed mergers and finally merged into live Teams
  • can then revert these changes to their sandboxes.

I look at stacked git as a way to achieve this, but what other tools or methods can deliver such a workflow

+5
source share
4 answers

I am trying to develop a good method for managing code changes in a large project with several teams.

I highly recommend reading the Henrik Kniberg article Version Control for Several Flexible Commands in InfoQ.

In short:

  • The trunk contains DONE DONE stories, it has its own policy (can be released at any time).
  • ( ), ( ).
  • , .
  • .

:

alt text

, . (Scrum) .

PS: , , , .

+7

( ), . , , .

CI, duffymo, , ( -) / .

, . CI, / CI, ( ?). , . , .

, , , .

CI . Git Mercurial ( ).

, , , , , . , , , , , .

+1

, , , . , .

- (-) , . . , .

:

, , . Rebasing . , .

Use the -no-ff option (no fast forward) when merging one branch into another. This ensures that if the second branch does not have commits to merge, an empty commit is added that marks the merging of the two branches. If this is not done, you may lose the branch point. This may be important information.

+1
source

It seems to me that you need a permanent integration tool such as Cruise Control, Hudson, Cruise, Team City, etc.

0
source

All Articles