Skip to main content

Command Palette

Search for a command to run...

Version Control Exist

Updated
3 min readView as Markdown

In previous blog, Git is the hero of the version control system what if git does not exist. Is it is possible we can contribute and collaborate, is it is possible we can do version control, etc… Let us find out.

Life before Git

Before git, What are the possible ways that we can do version control and collaboration. Let think possible case that is possible and problem that can arise from it.

Case 1

Suppose, developer A is developing a system and this developer A need some help of the senior developer B. Question that are arise here how this developer A share there codebase to developer B. Developer A share his codebase by zip it and share with a shared medium like internet(email, ftp protocol), CD, pendrive etc…
Dev B done some change and give it back to Dev A. So, share a codebase is not a problem but what really a problem is track of the code. Dev A does not have any idea what Dev B has done, which feature add, which code is removed. etc.. .

Case 2

In case 1, there is a problem that we can track the change of the developer, So what is a possible way that we can fix it or we can improve is that we can create a log file which contain the snapshot that what changes is done by which developer.

look a good solution, but what are the failure and flaws of this solution is

1) Collaboration at same time
Developer only contribute when they have codebase. what i mean is suppose Dev A has the codebase already and Dev B have the codebase (now). If Dev A develop a feature X which is depending on the A, B, C which exist already. And At the same time Dev B remove feature C which create a bug during developing the feature Y. Now, when both the codebase merge together they will create an overhead for the both the developer and this process is huge and insane amount of time consuming.

  1. Track of the previous version of the codebase.
    There is no track of the previous version of the a product but we can overcome this problem by create a copy of the project.

Case 3

In order to overcome this problem we can create a centralized system where every developer take the copy of code from this centralized system, done some changes at there local machine and push back to the centralized system.

And this is how we can develop our own git which is code tracking and github is the centralized system which is responsible for the collaboration at real time