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

Need help with produre for importing historical vendor drops

From: Jeff Kowalczyk <jtk_at_yahoo.com>
Date: 2004-10-06 19:59:33 CEST

Now that I can run subversion-1.1.0 (needed symlink versioning), I am
eager to get to work building a repository of a software package which has
had many vendor releases over the years. I need to create a working
environment for my customization of the package. Starting from a fresh
repository, I want to accomplish the following:

a) Have a historical record of all changes between releases, showing up as
diffable revisions and changelogs.

b) Maintain my own working version of the code, with heavy customizations,
such as adding unit tests. I would like to start working against the most
recent vendor release.

c) I won't make changes to old vendor releases, but I'd like to tag my
customized version after merging the changes from each new vendor drop.

d) I'd like to be able to diff my acme-1.2.7 against the vendor's
acme-1.2.7, for each release going forward.

All this sounds like a poster case for vendor import section of the
subversion book. I had a procedure worked out for subversion 1.0.x, and
tried it today, but the implicit trunk creation seems to have gone away.
There is no trunk to check out, and the 0.25 directory is right off the
repository root.

Can any subversion gurus review the following procedure and suggest
improvements or changes that will help me stay on track with this? Thanks.

---------------------------------
acme Subversion Repository Import
---------------------------------

Initial repository creation and skeleton import

$ svnadmin create --fs-type=fsfs /home/myuser/svn/acme
$ mkdir /home/myuser/software/acme-initial
$ cd /home/myuser/software/acme-initial

Note that we will *not* create trunk in this skeleton.
$ mkdir branches tags vendor

Import the empty skeleton directories as revision 1

$ svn import /home/myuser/software/acme-initial \
             file:///home/myuser/svn/acme -m "initial import"

Import the earliest version of the vendor source

$ svn import /home/myuser/software/acme-tarballs/acme.0.25/acme \
             file:///home/myuser/svn/acme/vendor/acme/current \
             -m 'importing initial 0.25 vendor drop'

Manually tag the initial release by copying current to a version name

$ svn copy file:///home/myuser/svn/acme/vendor/acme/current \
           file:///home/myuser/svn/acme/vendor/acme/0.25 \
           -m 'tagging acme-0.25'

Copy the named initial release into the *implicitly created* trunk.
(NOTE: I don't think the implicit trunk creation happens in svn-1.1)

$ svn copy file:///home/myuser/svn/acme/vendor/acme/0.25 \
           file:///home/myuser/svn/acme/ \
           -m 'bringing acme-0.25 into the main branch'

Now you can checkout a working copy

$ cd /home/myuser/software/
$ svn checkout file:///home/myuser/svn/acme/trunk acme

Unpack the next version of acme
$ cd /home/myuser/software/acme-tarballs
$ tar xzf acme.1.1.7.tar.gz
$ cd /home/myuser/software/acme-tarballs/acme.1.1.7/acme

Use svn_load_dirs script for next version of acme

$ ~/svn_load_dirs.pl -t acme-1.1.7 \
     file:///home/myuser/svn/acme/vendor/acme \
     current \
     /home/myuser/software/acme-tarballs/acme.1.1.7/acme

This worked. Many files were moved, added and deleted, handled
automatically by the svn_load_dirs.pl script.

Now try a merge of the second vendor drop:

$ svn merge file:///home/myuser/svn/acme/vendor/acme/1.1.7 \
            file:///home/myuser/svn/acme/ \
            -m 'merging acme-1.1.7 into the main branch'

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Oct 6 19:58:31 2004

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