gawkworkflow: Push Pull
1
1 2.1 The "Push/Pull" Model of Software Development
1 =================================================
1
1 Git is a powerful, distributed source code management system. However,
1 the way it's used for 'gawk' development purposely does not take
1 advantage of all its features.
1
1 Instead, the model is rather simple, and in many ways much like more
1 traditional distributed systems such as the Concurrent Versions System
1 (http://www.nongnu.org/cvs) (CVS) or Subversion
1 (http://subversion.apache.org) (SVN).
1
1 The central idea can be termed "push/pull." You _pull_ updates down
1 from the central repository to your local copy, and if you have commit
1 rights, you _push_ your changes or updates up to the central repository.
1
1 Where Git does stand out is in its management of multiple branches of
1 development. Git makes it very easy to set up a separate branch for use
1 in fixing a bug or developing a feature. You can then easily keep that
1 branch up to date with respect to the main development branch(es), and
1 eventually merge the changes from your branch into the main branch.
1
1 Almost always Git does these merges for you without problem. When
1 there is a problem (a "merge conflict"), usually it is very easy for you
1 to "resolve" them and then complete the merge. We talk about this in
1 more detail later (⇒Merge Conflicts).
1