On 4/15/07, bino_oetomo <bino / indoakses-online.com> wrote:
> Dear All ..
>
> which one is the most recomended for Install from SVN ?
> Is it the "branch" or "Trunk" ?

Typically, you want the code from 'Trunk'.  It's the main development 'branch'.

> And what is "tags" anyway ?

The following is based on Pragmatic Version Control
http://www.pragmaticprogrammer.com/titles/svn/index.html

TAGS:

What are they?
A way to mark a static copy of set of files.  The set of files can
come from various versions in your repository.  Tags take up very
little room since they're essentially just a set of pointers to
existing files/diffs.

When should I use them?
Use tags to mark releases.   They give you a way to rebuild any given
release (in case a client deletes it, etc.).  You can also use them to
check a release out to a branch for bug fixing, or adding new
features.

Anything else I should know?
If you need to edit the files, make a branch.

BRANCHES:

What are they?
As the name implies, it's a branch from the main 'Trunk' dir (where
you do your core development).  They allow you to run parallel
development where you can make minor changes and release the branch,
but continue full development on the trunk.

When should I use them?
Releases, experiments, bug fixes.

When you're about to do a release, make a release branch, make any
changes that you don't want in your 'trunk'.  When you actually
publish the code, you should tag it as a release

If you're thinking about making massive changes, you can use a branch
for it.  If you like the changes, merge them back into the trunk, if
not, keep them as a history, or kill them if you like.

When you get a bug report, make a new branch for tracking it.  Tag it
before you do the fix, and tag it again after you've done the fix,
then merge the fix back into the trunk.

Anything else I should know?
Naming conventions are key.  Here's what the book suggests:

(forgive the formatting, or lack of it, gmail doesn't use fix width fonts)

Event                  Style               Example         Type *
Release Branch	RB-rel             RB-1.0	    Branch
Releases	    REL-rel            REL-1.0        Tag
Bug fix Branch	  BUG-track        BUG-3035	Branch
Pre-bug fix	     PRE-track        PRE-3035	   Tag
Post-bug fix         POST-track     POST-3035	Tag
Experiments       TRY-dev-desc  TRY-no-db    Branch

* This is not in the book, it's just my best guess of what they should be.

> Sincerely
> -bino-

hth

-- 
Bill Guindon (aka aGorilla)
The best answer to most questions is "it depends".