[Phpwm] Version control - project organisation

Rob Allen 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" /  
> centralised.
> 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):

     /trunk/
     /branches/client1/
     /branches/client2/

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 :)


Regards,

Rob...


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.lug.org.uk/pipermail/phpwm/attachments/20090829/8e66fe05/attachment.htm 


More information about the Phpwm mailing list