![]() There is a certain amount of overhead involved in things like synchronization and context switching. Multithreaded programming can sometimes be a little bit messy, and the same can be said of a multithreaded software team. So we embrace concurrent development, but the threading metaphor continues to apply. Our goal is to never have a thread which is blocked on some other thread. The key to high performance in a multithreaded system is to maximize concurrency. Think of your team as a multithreaded piece of software, each developer running in its own thread. However, we want our developers to work concurrently. If we serialize the efforts of our team by never branching and never allowing two people to work on a module at the same time, we can avoid ever facing the need to merge two versions of a file. In other words, this mess only happens when people are working in parallel. When merging between branches, we may have a situation where the file has been modified in both branches.Even if we use "checkout-edit-checkin", we may allow multiple checkouts, resulting once again in the possibility of two developers editing the same file.When using "edit-merge-commit" (sometimes called "optimistic locking"), it is possible for two developers to edit the same file at the same time.There are several reasons why we may need to merge two modified versions of a file: ![]() This is part of an online book called Source Control HOWTO, a best practices guide on source control, version control, and configuration management. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |