CSC/ECE 517 Fall 2010/ch1 1a mh: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
work in progress: | '''work in progress:''' | ||
A version control system is used to manage files and directories and updates made for a | ==Introduction== | ||
A version control system is used to manage files and directories and updates made in software development, web development etc. projects. | |||
Any coding project is a dynamic and fast paced environment.In a typical setting, code development for a project is performed in parallel by many developers. Thus, incorporating all the changes made, either simultaneously or at different times, poses a new type of challenge. | |||
==challanges== | |||
The major issues in a dynamic development environment can be described as: | |||
* Obviously, '''merging''' of a lot of files. If we consider somebody to do merging manually, The sheer volume of communication required is overwhelming. This communication can be among the developers themselves in a small team or between the team leader in charge of merging and the rest of the group. | |||
* '''Accountability:''' if one of the developer breaks the code during development, It is tough to detect and naturally nobody steps forward to take the blame. A version control system can precisely indicate who caused the break in the code. | |||
* If a certain code implementation doesn't work as expected, '''Reverting''' to last satisfactory state may be required. | |||
* '''Code loss''' due to development on stale code. for example, two developers downloaded a certain file at 10AM. One of the developers modified foo_1() method and uploaded modified file at 10:30AM.The other developer modified foo_2() method and uploaded the same file at 10:45AM. Since the filenames are same, the second upload will overwrite the file uploaded by first developer at 10:30AM causing loss of his part of work. | |||
******** |
Revision as of 12:52, 7 September 2010
work in progress:
Introduction
A version control system is used to manage files and directories and updates made in software development, web development etc. projects.
Any coding project is a dynamic and fast paced environment.In a typical setting, code development for a project is performed in parallel by many developers. Thus, incorporating all the changes made, either simultaneously or at different times, poses a new type of challenge.
challanges
The major issues in a dynamic development environment can be described as:
- Obviously, merging of a lot of files. If we consider somebody to do merging manually, The sheer volume of communication required is overwhelming. This communication can be among the developers themselves in a small team or between the team leader in charge of merging and the rest of the group.
- Accountability: if one of the developer breaks the code during development, It is tough to detect and naturally nobody steps forward to take the blame. A version control system can precisely indicate who caused the break in the code.
- If a certain code implementation doesn't work as expected, Reverting to last satisfactory state may be required.
- Code loss due to development on stale code. for example, two developers downloaded a certain file at 10AM. One of the developers modified foo_1() method and uploaded modified file at 10:30AM.The other developer modified foo_2() method and uploaded the same file at 10:45AM. Since the filenames are same, the second upload will overwrite the file uploaded by first developer at 10:30AM causing loss of his part of work.