XDoclet: Attribute-Oriented Programming - Branches and Tags
Author: Aslak Hellesoy

##### XDoclet

- Overview
- News and Status
- Download/Installation
- Using XDoclet
- Best Practices
- FAQ
- License

##### Ant Task Reference

- <doclet .. />
- <ejbdoclet .. />
- <hibernatedoclet .. />
- <jdodoclet .. />
- <jmxdoclet .. />
- <mockdoclet .. />
- <portletdoclet .. />
- <springdoclet .. />
- <tapestrydoclet .. />
- <webdoclet .. />
- <wseedoclet .. />

##### Tag Reference

- apache (@soap @struts @axis @tapestry)
- bea (@weblogic)
- borland (@bes)
- caucho (@resin)
- ejb (@ejb @dao)
- exolab (@castor)
- hp (@hpas)
- hibernate (@hibernate)
- ibm (@websphere)
- java (@javabean)
- jboss (@jboss)
- jdo (@jdo)
- jmx (@jmx)
- jsf (@jsf)
- macromedia (@jrun)
- mockobjects (@mock)
- mvcsoft (@mvcsoft)
- mx4j (@mx4j)
- objectweb (@jonas)
- oracle (@oc4j)
- orion (@orion)
- portlet (@portlet)
- pramati (@pramati)
- spring (@spring)
- sun (@sunone)
- sybase (@easerver)
- tjdo (@tjdo)
- web (@web @jsp)
- webwork (@webwork)
- wsee (@wsee)
- xdoclet (@xdoclet @doc @msg)

##### Feature Documentation

- Using Value Objects
- EJB Environment Handling

##### Advanced

- Maven Plug-in
- Merge Points
- IDE Integration
- Migration from EJBDoclet
- Ant 1.5 Troubleshooting

##### Community

- Feedback
- Resources
- Tools

##### Development

- Developer Guide
- Javadoc (API)
- Template Language (*.xdt)
- XJavaDoc Site

##### Search XDoclet

##### Project Documentation

- About XDoclet
- Project Info
- Project Reports
- Development Process

## Branches and Tags

The branches are a feature of CVS that allows the development to be partitioned so that one stream does not affect the other. They prove to be useful, when there is a need to perform modifications that are hard to perform as a consecutive gradual transitions that work well in the usual course of development. When files that are depended upon by numerous other files need to be substantially changed all the other would have to be modified along with them. That would require that a lone developer performs all these changes in his own snapshot and then checks them all in, causing the sources to leap forward. As your project grows, situations arise that this is no longer possible. It's good to have version control on the gradual changes as opposed to quantum-leap changes. It's also important to have the larges set of eyes possible looking at the code as soon as possible. On the other hand, we strive to keep XDoclet CVS tree compilable and working at all times. This calls for usage of branches whenever vast modifications of the sources are needed.

The CVS book describes multiple approaches to performing development using branches. The simplest approach called Flying Fish technique will fit our needs best. It involves creating a branch when there is a need for a separate thread of development, and abandoning the branch once all the changes are merged with the trunk.

### Branches

XDoclet CVS has following branches:

Branch Name | Description | Date Branched | Status
--- | --- | --- | ---
`MODULE_REFACTORING_BRANCH` | Module refactoring branch | 05/2002 | CLOSED
`XDOCLET_MAVEN` | Maven integration branch | 07/2002 | CLOSED

### Tags

Tag Name | Description | Date Tagged
--- | --- | ---
`XDoclet-v1-2beta1` | XDoclet 1.2 Beta 1 Tag | 02/10/2002
`XDoclet-v1-2beta2` | XDoclet 1.2 Beta 2 Tag (includes some small fixes not included in the distribution) | 06/01/2003
`XDoclet-v1-2beta3` | XDoclet 1.2 Beta 3 Tag (includes some small fixes not included in the distribution) | 17/06/2003
`XDoclet-v1-2` | XDoclet 1.2 Final Release tag | 24/11/2003