As a matter of opinion, I would like to mention that GitHub is (a) free for open-source projects, and (b) you can take down the repository if you really feel like it. Git itself is actually quite easy to use, and I'm surprised at how easily I got into it after reading a couple of the tutorials at GitHub. In relation to David's mention of SVN's branching, Git branches are really quite wonderful.
I'm just curious, but is there any particular reason you want to host the repository directly on gammon.com.au? Like I said, you have a pretty high degree of control over the repository's existence with GitHub hosting. And really, GitHub is just a public face - since git is decentralized, you really have a whole repository on your computer, which you can locally commit to, etc, etc, and only push upstream (to the public repository) when you're ready. (I'm planning on having two public branches for my framework, stable and development, and merging from development to stable to mark official changes and updates. The development branch would be visible so that anyone could still see and check out the source of what's coming. It's really, really simple.)
EDIT: I should note, the public repository on GitHub is public only for reading; only approved collaborators can directly push to it, such as yourself.
David: It's not that unrealistic to expect interested parties to fork the code. At the very least, you can pull a copy of the code down to look at, which is one great benefit. And if you decide to make your own changes to it, there's no reason not to make a public fork. It helps to share ideas and innovation, even if briefly; WillFa forked my widget framework a while back in order to make a fix to the source, which I incorporated afterwards.
Nick Gammon said: So, if we just take a snapshot of the current source, whether it is CVS or anything else doesn't really matter. The only way it would matter would be if someone wanted to compare (say) version 4.45 to version 4.38.
Not exactly a huge issue, considering that nobody can do that easily now anyways except by going backwards through the released source downloads. (As an aside, another big reason I'd love a public repository is because I can actually see the source after every release. Most source releases currently skip several versions... and the diffs file for 4.45 hasn't been released, at any rate, so at the moment you couldn't keep a local up-to-date copy if you tried. ^_^;)
<this part is optional to read>
Here's an example of a typical workflow for me with Git:
1. Make changes, test, typical stuff...
2. git status - see what files I changed, and if there's anything I created that needs to be added to the repository.
3. git diff <filename> - see what exactly I changed, helps when I'm reviewing my changes and/or writing a commit summary
4. git commit -a - commit my changes straight to the local repository. The -a flag just skips the 'staging area', which I haven't had a need for yet.
5. Return to 1 if I'm not ready to push to GitHub just yet, say, if I just want to save my work.
6. git push origin development - Push my changes in the development branch up to 'origin', i.e. the GitHub repository.
Only really a handful of commands. It all feels very easy when I actually do it, and I haven't been using it that long at all. (SVN always confused me regularly.) |