Right. Let me prefix my comments with where i'm coming from.

I am a habari user, and plugin writer. I haven't worked on core code,
although i have code dived (diven?). We're basically starting to roll
out habari to most of our clients. It's becoming our software of
choice. That's where we are coming from.

Now. Opinions :)

My feeling on svn is that the three key areas serve fairly unique
purposes:

trunk: Current development. The latest and greatest should be here. If
you use trunk, can can't whine (as loudly) when it breaks, but this is
where the action is. The main purpose is to make the software better
harder faster stronger, and sometimes it will break.

branches: Hey! How about we paint it red! Ideas like this? They should
go in branches. Want to make a change? do it in a branch.
Additionally, in this situation, we still want to be able to maintain
development of a plugin for a prior release. Do it in a branch. Want
to maintain twitter for 0.6? branches/0.6 is where it should go.
That's the latest version of the plugin that's being worked on for
0.6. Done a great change in there that you think should be trunk (and
you're happy to make it work with the latest verion)? merge it. Once
again, if you check out a branch, it's the latest _developmental_
version of that plugin for that version of habari.

tags: Hey wow, i think this is a great release. it seems relatively
bug free, and i know it works with this version of habari, and it even
has it's own version (say, version 0.1). Call it tags/0.6-0.1. Now
when end user wants a version of a plugin that works with their
version of habari, they can check out the tagged copy.

A couple of supporting aspects.

* use of svn:externals doesn't break here. You can use trunk, and if
it breaks, you can fix it or whine on. (my primary concern btw)
* For cases where maintenance of the svn tree is poor for a plugin,
everything will be (predictably) in trunk. I don't have to hunt around
the tree for where the current dev is.
* This layout follows the design of version control as far as i
understand it.
* This is the layout recommended by the subversion book (), making it
about as standard as these things can get. From
http://svnbook.red-bean.com/en/1.5/svn-book.html: "While Subversion's
flexibility allows you to lay out your repository in any way that you
choose, we recommend that you create a trunk directory to hold the
'main line' of development, a branches directory to contain branch
copies, and a tags directory to contain tag copies."

Sorry i've come into this late, but i think this is kinda important.

Cheers! (and thanks to ringmaster for his patience when i first came
screaming into the irc channel :) )

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/habari-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to