What I would do is to have each developer have their own local copy that they
are working on.
I would then find a machine that is going to be on all the time (which could be
a developer's desktop), and create a master repository there. Note that if this
is on a developers desktop, this needs to be a different repository (or at the
very least a different branch) from what they use to do their work.
developers then do their work locally, and after a change has been reviewed,
pull it into the master repository.
This can even be done if you only have one developer (although then you may just
use branches instead of a separate repository)
The idea is that when you start working on a new feature, you create a new
branch from the master, implement your new feature, and then (after testing)
merge the completed feature into the master branch/repository.
If developers are working on multiple things at once, they should have multiple
branches. This is a hard habit to get into.
The tendancy is that while you are in changing code, you see something unrelated
that needs fixing, so you fix it and go back to what you were doing.
You should try to get into the habit of not fixing unrelated things in one
branch (or having a separate branch you use only for trivial fixes)
The idea is that each feature branch should have one set of related changes in
it, so that you can merge in a branch when it's ready and not end up with one
fix being tied in to another one,
David Lang
On Fri, 18 Jan 2013, Lang, David wrote:
Hi Matt and David,
Your responses have been very helpful for this newbie...thanks very much! I have a good sense now of the difference btw a CVCS and a DVCS. Here are two more questions...
1. I now get the sense that there's quite a few options in regards to the way that any one group implements their "origin"/"master"/<fill in your favourite name> repository. But ultimately, there shouldn't be a question of "if" you have a master repository but "where" you have the master repository, correct? Or in other words, it doesn't seem like you'd want to designate any one developer's local repository as also being the master repository, right? My sense is that would defeat the purpose of the DVCS.
2. Assuming I'm right about question #1, our first hurdle is where to host the master repository. Could you provide any suggestions for a setup based on our VERY simple department model? I work for a small IT department with a grand total of TWO developers (who sit five feet apart from one another)! The reason we're looking at a VCS is because I was hired a few months ago and the dept never needed one before now. We realize that git will be overkill for what we need but frankly anything will be overkill for what we need, and since git seems to be so well regarded in the community (and free) it looks like a good choice.
So the question is, how would either of you recommend we set up our master repository? We definitely want to keep everything "in house" so off-site hosting isn't something we'd consider. We have access to many servers on our company's network, some of which we have full rights to, so there's no issue in regards to storage space. I suppose another idea would be to have the master simply reside on one of the two developers local machines, so one of us would have both a local rep and the master rep and the other of us would have just a local rep. This would simplify the model. What do you think? Or is it best to always have the master hosted on a machine with no other local reps?
David
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html