<div><span class="Apple-style-span" style="white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "> </span></div><span class="Apple-style-span" style="white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">&gt; Does anyone use GitHub?  Like most people, I&#39;m very protective of code which I&#39;ve not open-sourced, so need to be reassured about putting it with someone else. 
&gt; After all, the value of my product is wrapped up in the code base.
 
Yes, and it rocks. For non-open sourced stuff, they have a pay option, which isn&#39;t too bad (about $7/month, I think, for a basic account with 5 private repositories). 

But, if it&#39;s just you, and you want your repository to be private, you don&#39;t really need it, as long as you backup your repository, that&#39;s basically just the same.  If there&#39;s only a single developer, using a private repository on github just mirrors your local. You get the github advantages, like nice views of your commits and so on, but that&#39;s it.  You can, I believe, host a git repository behind a HTTP server, but you lose a lot of the speed, as whole files get pushed up to the server. Running your own git server is quite easy, if you&#39;ve got access to run stuff on a remote box.

BTW, other good resources are &quot;The git parable&quot;, which is a nice introduction to the git way of thinking, &quot;Git for computer scientists&quot; and &quot;Git from the bottom up&quot; in ascending detail order, although I&#39;ve never read the computer scientists one, I&#39;m told it&#39;s really good.</span><div>
<span class="Apple-style-span" style="white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br></span></div><div><span class="Apple-style-span" style="white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">Dave.<br>
</span><br><div class="gmail_quote">On Fri, Aug 28, 2009 at 1:27 PM, Ian Munday <span dir="ltr">&lt;<a href="mailto:ian.munday@illumen.co.uk">ian.munday@illumen.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div><div class="im"><div>On 28 Aug 2009, at 11:37, Dave Brotherstone wrote:</div><br></div><div><div></div><div class="h5"><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><font color="#888888"><br></font>&gt;&gt; Ian Munday wrote:<br> &gt;&gt; Why Git?  I&#39;m familiar with CVS and Subversion, but doesn&#39;t Git<br> &gt;&gt; essentially provide the same functionality, albeit in a slightly<br>
 &gt;&gt; different way (local versus centralised repositories)?<br> &gt;&gt;</div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>&gt; David Goodwin wrote<br>
 &gt;<br> &gt; My understanding (I&#39;ve never really used git) was that it handles<br> &gt; branching and merging a lot better than subversion.<br> &gt;<br> &gt; I believe git can have a single centralised repository.<br>
 &gt;<br><br></div></div></blockquote><div><br></div><div>Well, it can... but only because you deem one repository &quot;special&quot; / centralised.</div><div>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. </div>
 <div>You may find that for your project it suits you better.  </div><div><br></div><div>So you could have a central branch, and one for each client. When you do something central, you can easily merge it into the client branches - you could actually script this too, so one command would merge it into all your client branches.  </div>
 <div><br></div><div>For clients that have more customisation, if you end up doing something for client X that you later decide you want available to everyone, you can &quot;cherry pick&quot; the commit into the central branch. </div>
 <div><br></div><div>I work with SVN all day, and have done for years, but since working with git, I hate the way svn works.  Everything in git is almost instantaneous, you won&#39;t be waiting for any merges or &quot;switches&quot; (called a checkout in git).  It&#39;s also pretty clever at merging things that have diverged. </div>
 <div><br></div><div>I think doing the same thing in SVN would be perfectly possible, but you&#39;re far more likely to get into difficulty, and end up with things not merged.  There&#39;s also some really neat features that git can do, that SVN just plain can&#39;t - stashing and rewriting history spring to mind.</div>
 <div><br></div><div>A good reference is <a href="http://progit.org" target="_blank">http://progit.org</a>, which is a really good read.  I&#39;ll stick an example on the end of this so you can see how it might work.</div>
</div><div><br></div> <div>Hope that helps,</div><div><br></div><div>Dave.</div><div><br></div>An example....<div><br></div><div>&gt; git branch</div><div>* central</div><div>  client1</div><div>  client2</div><div>  client3</div>
<div><br></div> <div>(So we&#39;re currently on the central branch)</div><div><br><div>&gt; git checkout client1</div><div>Switched to branch client1</div><div><br></div><div>&gt; git branch</div><div><div>  central</div>
<div>* client1</div> <div>  client2</div><div>  client3</div><div><br></div><div>(Now on the client1 branch, we&#39;ll edit the langs file)</div><div><br></div></div><div>&gt; edit lang/en_GB.php</div><div>&gt; git commit -a -m &quot;Updated language file&quot;</div>
 <div><div>[central c8324b] Updated language file</div><div> 1 files changed, 3 insertions(+), 2 deletions(-)</div><div><br></div><div><br></div><div>( Now we&#39;ll edit something on the central branch) </div><div><br></div>
 </div><div>&gt; git checkout central</div><div>&gt; edit src/someCentralFile.php</div><div>&gt; git commit -a -m &quot;Fixed a bug with xxx&quot;</div><div><div>[central b91e7b2] Fixed a bug with xxx</div><div> 1 files changed, 5 insertions(+), 4 deletions(-)</div>
 <div><br></div><div>( and go back to client1)</div></div><div>&gt; git checkout client1</div><div><br></div><div>(now we&#39;ll check what&#39;s not been merged already)</div><div>&gt; git branch --no-merged</div><div>  central</div>
 <div>  client2</div><div>  client3</div><div><br></div><div>&gt; git merge central</div><div>Automatic merge successful</div><div><br></div><div>&gt; git branch --no-merged</div><div>   client2</div><div>   client3</div>
<div> <br></div><div>(Now we&#39;ll create a new feature for client1)</div><div><br></div><div>&gt; edit src/someExtraFeature.php</div><div>&gt; git commit -a -m &quot;Added a new feature for client1&quot;</div><div><div>
[central 944cb1] Added a new feature for client1</div> <div> 1 files changed, 15 insertions(+), 1 deletions(-)</div><div><br></div></div><div>(Now we want that feature in the central branch)</div><div>&gt; git checkout central</div>
<div>&gt; git cherry-pick 944cb1</div><div>Automatic merge successful</div></div></blockquote><br></div></div></div><div>Hi Dave</div><div><br></div><div>Thanks - that&#39;s a useful example.  I&#39;m especially drawn to the local repository functionality of Git.  Being able to work offline would be great for me (a consequence of where I live means I only have a mobile broadband connection at home).</div>
<div><br></div><div>I&#39;ll also look further at the Pro Git site - that appears a very useful resource.</div><div><br></div><div>Does anyone use GitHub?  Like most people, I&#39;m very protective of code which I&#39;ve not open-sourced, so need to be reassured about putting it with someone else.  After all, the value of my product is wrapped up in the code base.</div>
<div><br></div><div>Regards,</div><div><br></div><font color="#888888"><div>Ian</div><div><br></div></font></div><br>_______________________________________________<br>
Phpwm mailing list<br>
<a href="mailto:Phpwm@mailman.lug.org.uk">Phpwm@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/phpwm" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/phpwm</a><br>
<br></blockquote></div><br></div>