[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Repository Creation Plan

From: <trlists_at_clayst.com>
Date: 2004-12-01 05:57:17 CET

OK, having learned some more of how svn works I'm ready to try
rebuilding my repository from scratch again (fortunately I have all my
old files archived so I can start fresh). I'm curious if there are
holes in my plan. I'm a solo developer and at least for now, I'm doing
this under Windows in stand-alone mode (i.e. file system URLs, no
server).

Here's what I have right now (not under version control, except
experimentally):

    A "live" (i.e. current release) branch which is my code base

    A few bug fixes to this code base

    A "development" branch off the same code base with a number of
    changes already made, but without the bug fixes mentioned
    above.

What I want to have is a directory structure like this for the working
copies:

    /top/project/live -- Live code. There are no files in this subdir,
    they are all below it, e.g. /top/project/live/html has the HTML and
    PHP code, etc. There are numerous unversioned files and
    directories below this, and some vendor files, not just my
    versioned code.

    /top/project/dev -- Development code (same structure).

I realize this is not trunk / branches / tags but it fits my needs. I
really only need the two branches, I don't want either one under a
"branches" directory, and I can always create another branch under
project/ if I need to.

Make sense so far?

Is there any reason not to use the same directroy structure within the
repository as I have for the working copies?

To create this I plan to:

(1) Add the base code to the repository:
    - Establish the base live/ directory from my archives
    - Add some files which belong there but are currently
         elsewhere in the directory structure
    - Move unversioned files to a holding area
    - Import live/ directory to an empty repository
    - Add the initial timestamp properties to preserve
         file times
    - Move the unversioned files back to live/

(2) Create the development branch:
    - Use svn copy (URL to URL) to create a dev branch
    - Checkout this branch to dev\, and set timestamps based on
         file properties

(3) Update live directory:
    - Update live/ with those few recently changed files
        not in the base code
    - Commit those changes
    - Deploy them
    - Continue bug fixes, commit and deploy to live server as
         needed

(4) Update dev directory
    - Update dev/ with files and directories changed and added
         since the base code was created
    - Add unversioned files and directories to dev/
    - Continue development, commit and deploy to test server as
         needed

This leaves me with two working copies, one in live/ and one in dev/,
each appropriately updated. Am I missing something or totally lost in
some area? The ideas of what I'm trying to accomplish aren't new, but
using this model to do them is, so I may well have missed something.

Note I have a wrapper script now for checkout, update, and commit which
preserves timestamps using properties. I will have to make that script
also handle svn add and svn merge to be complete.

I also need to synchronize the changes at times. It seems to me that I
will have to do merges in both directions:

    - Periodically merge current fixes on live/ branch to dev/,
         and resolve any conflicts, so development code keeps
         up with bug fixes to the live code
    - When dev/ code is ready for release, merge dev branch back
         to live so it becomes the new live copy in the repository

Does that sound right?

Thanks for any feedback ... I appreciate all the help here!

--
Tom
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Dec 1 05:59:07 2004

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.