[Phpwm] Version control - project organisation
rob at akrabat.com
Sat Aug 29 08:18:36 UTC 2009
On 28 Aug 2009, at 11:37, Dave Brotherstone wrote:
> >> Ian Munday wrote:
> >> Why Git? I'm familiar with CVS and Subversion, but doesn't Git
> >> essentially provide the same functionality, albeit in a slightly
> >> different way (local versus centralised repositories)?
> > David Goodwin wrote
> > My understanding (I've never really used git) was that it handles
> > branching and merging a lot better than subversion.
> > I believe git can have a single centralised repository.
> Well, it can... but only because you deem one repository "special" /
> Branching and merging is far easier, faster and more reliable in
> git. So good, in fact, that I (and many others) branch for any and
> every feature or bug fix.
We do this with subversion at work. From a code and release
organisation standpoint, branching for every feature/bug fix solves an
awful lot of problems.
I have a situation that's similar to Ian's and use the same basic idea
that Dave suggested here (though in subversion):
As everything is in one repository, it's easy enough to pull and push
patches around, though made much easier if you keep track of the rv
numbers, for when a client specific new feature doesn't go into trunk,
but is needed for client 22. Also, it's wise to put the underlying
library code into a separate repository and bring it in via
svn:externals. This saves a boat-load of merging when you bug fix some
underlying helper code :)
(Going off topic here)
I've never used it, but understand that git is much much faster for
branching and merging which is nice. Personally, with my Tech
Director's hat on, I'm concerned about four main things with git in
terms of introducing to the company:
1. The two-step process required to get a commit to the master
server (git commit, git push). I'm especially worried that devs will
commit and not push and have no idea how easy it is for them to see
what they haven't pushed yet. (Of course, it may be easy to automate
this for all I know!)
2. Windows support is not a first class citizen
3. Easy switching of a working copy to a different branch means
more developer care needed to ensure on correct branch before coding
4. Lack of GUI tools and integration
These are all work-around-able, of course - the question is whether
the benefits of a faster merge is worth it when I don't need a
distributed VCS and have to coerce it into a master VCS setup.
Certainly if it was just me, then I'd consider it much more closely -
especially if I had unreliable Internet connectivity :)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Phpwm