Hi Salah,

It sounds like your team might be more familiar with something line Visual 
SourceSafe. In the VSS model, VSS holds keep your code and one person can 
check it out at a time. The VSS discourages multiple uses from accessing 
the same file simultaneously. 

In Git anyone with access to the repository can clone it and modify any and 
every file in their local working directory. This is more flexible because 
in VSS someone can checkout a file while they are at lunch, overnight, or 
over the weekend, and the other team members are lock-out of making changes 
to that file.

Also, the Git paradigm allows multiple users to edit the same file and 
merge their results together. If I make changes in one part of the file, 
and you make changes in another part, Git can automatically merge those 
changes together when we commit and push.

The problem you are probably worried about if when two users make changes 
to the same code; that is, when two developers edit the same lines of code 
in the same source file. It's still possible to merge the files, but Git 
will recognize that there is a merge conflict and someone will need to 
review and resolve the conflict. 

If you are worried about preventing these kinds of conflicts, the best 
policy is for your team to clearly communicate their efforts. Assigned 
responsibilities so that Team Member A is responsible for the 
DataAccessLayer and Team Member B is responsible for the Customer object. 
Or use an incident tracking system, like JIRA, and have your developers add 
notes when they are taking ownership on an issue. Then other developers can 
check to see if someone is already working on a specific issue before they 
jump in and duplicate efforts.

But in the worse case scenario when two developers edited the same code, 
you can still review and accept either person's modifications, or some 
hybrid merge which combines some mods made by one developer with some lines 
made by the other developer.


Konstantin, I see you wrote ,  "the whole point of 'I am editing this 
source file at the moment' becomes quite moot.", but is that really true? 
Don't you see how it can still be important for a team to avoid working on 
the same exact lines of code in order to reduce wasted efforts (inefficient 
use of resources) and to reduce complicated mergers? The nice thing about 
Git is that we can all work on any part of the project at the same time. 
When I edit the header portion of "home.html" and you edit the footer, we 
can merge without incident. But if we both edit some HTML form in 
contact.html, then we duplicated efforts and someone has to deal with merge 
conflicts. So I don't feel it's entirely a moot point for a team to 
communicate who tasks should be delegated, at least in a commercial 
software development setting where time is money. Maybe it's less of an 
issue in open-source where everyone is just voluntarily making 
contributions and hoping theirs will get accepted. Thoughts?




On Wednesday, September 26, 2012 8:24:39 PM UTC+9, Salah wrote:
>
> I am doing a research on continuous integration process. I am reading some 
> topics from the book available online and understood the Clone-Commit-Fetch
> -Push process.
> I have a little question though: Some team developers that I encountered 
> would like to be able to see which files (codes) are modified in the 
> present 
> time locally. They told me that in their projects, some codes have to be 
> modified by one person at time. For example, developer A wants to modify a 
> code, but receives a notification (or some alert) that developer B is 
> changing the file in his local machine but that he has not committed yet. 
> I am 
> aware this stops work a little bit, but those are their requirements.
> I am wondering if GIT offers this possibility to developers.
> Salah
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/git-users/-/D1fS0W0BySgJ.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.

Reply via email to