On Fri, Jun 11, 2010 at 6:29 PM, Jacob Beard <jbea...@cs.mcgill.ca> wrote:
> Hi,
>
> Thanks for the critiques. I'm almost done with this development cycle,
> and so I'll commit my changes soon to SVN. After that, I'll use
> branches and standard SVN workflows to version-control my code.
>
<snip/>

OK.


> I have a quick question about use of Apache SVN: in the places I've
> worked where we've used SVN, it has been heavily discouraged to check
> in broken or unfinished code. We didn't do much branching, but mostly
> worked out of trunk. I think that breaking a branch is not as bad as
> breaking trunk, but I wanted to check with the community: are broken,
> intermediate commits to branches considered poor practice? What about
> to trunk?
>
<snap/>

Right, the patterns and conventions can change in various communities.
Commons is somewhere along these lines:

Trunks are generally expected to work. Its not recommended to break
the trunk of a Commons Sandbox component. Breaking the trunk of a
Commons Proper component with prior releases is even worse.

Branches can be of various types. SVN itself attaches no semantics to
the act of creating a branch (beyond a copy). The type of the branch
is decided by documented intent of developer at creation time.
Branches that serve as lines of development are to be treated with
similar criteria as trunks. Here [1] is such an example. There is
leeway for branches that are experimental in nature, when clearly
marked as such. It is OK for experimental branches to be broken where
the breakage may need to be introduced as part of a convenient roadmap
to get from some known working state to another anticipated
(presumably better, for some definition of better) working state. Such
experiments may not always succeed. Here [2] is such an example of an
experimental branch. The intent of the developer may be documented by
using a BRANCHINFO file which I use by convention, here [3] is the
corresponding example.

That is to say, in the specific case of [scxml-js] and this
discussion, I wouldn't worry if a branch is temporarily broken as part
of some refactoring or architectural overhaul. Until such a
refactoring or overhaul is completed the trunk serves as the last
known working state of the code. If the refactoring is successful, the
changes are merged to trunk (effectively, the branch becomes the
trunk).

-Rahul

[1] http://svn.apache.org/repos/asf/commons/proper/digester/branches/1_X_LINE/
[2] http://svn.apache.org/repos/asf/commons/proper/scxml/branches/BETWIXT_IO/
[3] 
http://svn.apache.org/repos/asf/commons/proper/scxml/branches/BETWIXT_IO/BRANCHINFO.txt



> Thanks,
>
> Jake
>
> On Tue, Jun 8, 2010 at 11:37 AM, Ted Dunning <ted.dunn...@gmail.com> wrote:
>>
>> Making your code public early also saves you lots of effort because others
>> can jump in and help.  That sort of community is a lot of what Apache is all
>> about.
>>
>> On Tue, Jun 8, 2010 at 8:24 AM, Rahul Akolkar <rahul.akol...@gmail.com>
>> wrote:
>>>
>>> Also, in the last paragraph you mention waiting till you finish
>>> porting more before checking into the Apache SVN -- whereas I'd
>>> actually suggest that you even do all your experimentation in the
>>> Apache SVN
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to