eddy_fj wrote:but we are all coding different functionality.
If the parts interact then there will be overlap, just not often.
eddy_fj wrote:each task is assigned to a programmer and they write their own code. What I want to know if we can all open the same project but work on different codes and compile and test code.
Just to be clear that isn't really a source control question.
Presuming you are working in C# and you really want each developer independent then each developer would work in their own assembly.
Code used to interface between assemblies would also be in its own assembly. For example, but not limited to this, you might have an assembly that by design contains only interfaces.
Then you have one project which references each assembly.
Natch everything is checked in.
The only gotcha to above is when someone changes the project, for instance adding yet another assembly, then each other user must refresh to insure that they too do not add another different assembly (merging such cases is possible but messy.)
eddy_fj wrote:I have just tested this by sharing the portect over the network and all the programmers working on it. Coding works well but when any 1 programmer wants to debug or compile then the other programmers are affected.
That isn't going to work.
Each developer has their own copy of the code. When the code they are working on WORKS, then they check it in (doesn't have to be complete but must compile and be functional to some extent.)
Then other developers check out the updated code. The other developers do not need to do this immediately but they should do it fairly often (once/twice a day) to insure that they do not become out of sync with others. However that actually depends on how interdependent modules are.
eddy_fj wrote:without affecting others while compiling or debugging.
Just to make sure it is clear from the above
1. There is source control. All of the developers have access to that.
2. EACH developer extracts the full set of code from the source control
3. EACH developer works on their machine and only their machine.
...a. They compile on their machine
...b. They edit on their machine
...c. They debug on their machine
...d, At some point they decide that some piece of code is ready to be added to source control.
4. Then the developer checks the code into source control.
5. The source control will allow each developer to synchronize with source control and thus get updates WITHOUT overwriting code they are currently working on.
As a suggestion maybe you should by a book specifically for one source control system (probably git) and read it.