r6025 - /website/subversion.pod
joeyh at users.alioth.debian.org
joeyh at users.alioth.debian.org
Mon Jul 30 03:50:28 UTC 2007
Author: joeyh
Date: Mon Jul 30 03:50:28 2007
New Revision: 6025
URL: http://svn.debian.org/wsvn/?sc=1&rev=6025
Log:
update to reflect reorganised repository
Modified:
website/subversion.pod
Modified: website/subversion.pod
URL: http://svn.debian.org/wsvn/website/subversion.pod?rev=6025&op=diff
==============================================================================
--- website/subversion.pod (original)
+++ website/subversion.pod Mon Jul 30 03:50:28 2007
@@ -31,6 +31,9 @@
the package and upstream code in the correct locations in SVN. This tool
should be used when a new package is put in the care of the Perl Group.
+The Perl Group now uses a SVN repository layout that is not the default used by
+svn-inject. Pass "-l 2 " to svn-inject to make it use the right layout.
+
=item * svn-buildpackage -- Like dpkg-buildpackage, only SVN aware.
At some point in time, the package will have to be uploaded for inclusion in
@@ -66,15 +69,16 @@
(they are a little different in SVN than in CVS, please see
L<http://svnbook.red-bean.com>), and C<branches/> is where branches live.
-We will have quite a few Perl modules over time, so we will start of with
-splitting our repository into subrepositories:
-
- libfile-touch-perl/trunk/
- libfile-touch-perl/tags/
- libfile-touch-perl/branches/
- libperl6-export-perl/trunk/
- libperl6-export-perl/tags/
- libperl6-export-perl/branches/
+The Perl Group used to use a different repository layout, but has now switched
+to this standard one. Each perl module gets its own subdirectories under
+trunk/, tags/, and branches/:
+
+ trunk/libfile-touch-perl/
+ tags/libfile-touch-perl/
+ branches/libfile-touch-perl/
+ trunk/libperl6-export-perl/
+ tags/libperl6-export-perl/
+ branches/libperl6-export-perl/
Currently, C<branches/> is where the upstream code resides. Various tools use
this branch to download original tarballs to generate C<.diff.gz> files when
@@ -83,7 +87,7 @@
In C<tags/>, we tag all of our releases like we do in CVS, like so:
- libfile-touch-perl/tags/0.04-1/
+ tags/libfile-touch-perl/0.04-1/
If we wanted to check out libfile-touch-perl 0.04-1, we could simply check out
the location of the tag. More on that in the SVN documentation and in this
@@ -94,7 +98,7 @@
The upload procedure is simple. Once you have the source to the package
(C<.orig.tar.gz>, C<.diff> and C<.dsc>), all you have to do is:
- svn-inject \
+ svn-inject -l 2 \
libfile-touch-perl_0.04-1.dsc \
svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/
@@ -124,8 +128,8 @@
as long as "our" releases are tagged properly.
svn copy \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/trunk/ \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/tags/0.04-1
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/trunk/packages/libfile-touch-perl/ \
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/tags/libfile-touch-perl/0.04-1
More about tagging later.
@@ -136,9 +140,10 @@
If we wanted to check out a release for building, we would carry out the
following command:
- svn co svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libcgi-safe-perl/trunk/ .
-
-This checks out the trunk into the current directory. Now, type:
+ svn co svn+ssh://user@svn.debian.org/svn/pkg-perl/trunk/libcgi-safe-perl/ .
+
+This checks out the trunk into the current directory. (Alternatively, you might
+choose to keep all of trunk/ checked out.) Now, type:
svn-buildpackage [-rfakeroot] [-kyourkey] [-uc] [-us]
@@ -182,14 +187,14 @@
This is a little trickier than building the trunk. First check out the tag:
- svn co svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libcgi-safe-perl/tags/0.04-1 \
+ svn co svn+ssh://user@svn.debian.org/svn/pkg-perl/tags/libcgi-safe-perl/0.04-1 \
libcgi-safe-perl_0.04-1
Now, if we want a full build, we need the sources. Therefore, we have to sort
of hack around some limitations of svn-buildpackage. We need to add a line to
C<libcgi-safe-perl_0.04-1/.svn/deb-layout>:
- upsCurrentUrl=svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libnet-imap-simple-perl/branches/upstream/0.93
+ upsCurrentUrl=svn+ssh://user@svn.debian.org/svn/pkg-perl/branches/upstream/libnet-imap-simple-perl/0.93
This enables svn-buildpackage to find upstream sources correctly.
@@ -204,9 +209,9 @@
version 1.1.1 is aliased 0.1-1 and version 1.1.2 is aliased 0.1-2, for example.
In SVN, this works differently.
-In SVN, we simply copy the C<trunk/> directory to a new directory called
-C<tags/>. This way, file revisions aren't aliased, we simply copy the trunk in
-its current form to a different location just like you would in a regular
+In SVN, we simply copy the C<trunk/packagename> directory to a new directory called
+C<tags/packagename>. This way, file revisions aren't aliased, we simply copy the
+trunk in its current form to a different location just like you would in a regular
filesystem. SVN does this cleverly, so you can keep track of log entries and
the tag copy doesn't take up any extra space on disk.
@@ -229,8 +234,8 @@
In case you need or want to create a tag manually, it works like this:
svn copy \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/trunk/ \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/tags/0.04-1
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/trunk/libfile-touch-perl/ \
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/tags/libfile-touch-perl/0.04-1
You don't need a check-out of the SVN tree to do this. It even works faster if
you don't have one. It can execute these commands over the network.
@@ -238,8 +243,8 @@
You can tag an older revision by using the C<-r> switch:
svn copy -r 53 \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/trunk/ \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/tags/tag_we_forgot
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/trunk/libfile-touch-perl/ \
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/tags/libfile-touch-perl/tag_we_forgot
=head2 5.3 Working with tags
@@ -247,7 +252,7 @@
the directory you copied earlier.
svn export \
- svn+ssh://user@svn.debian.org/svn/pkg-perl/packages/libfile-touch-perl/tags/0.04-1 \
+ svn+ssh://user@svn.debian.org/svn/pkg-perl/tags/libfile-touch-perl/0.04-1 \
libfile-touch_0.04-1
Now, dpkg-buildpackage away!
@@ -310,15 +315,14 @@
You can also consider the use of an ssh-agent (see L<ssh-agent(1)>, included in
the C<ssh> package, for more information).
-=item How to not build directly under C<trunk/../build-area/>
-
-Often, you'll check out an entire package with C<trunk/>, C<branches/> and
-C<tags/>. Or, you'll inject a package using B<svn-inject> and want to build
-the package later. The standard location for B<svn-buildpackage> will be
-C<trunk/../build-area/>. However, if working from C<trunk/>, this places the
+=item How to not build directly under C<trunk/package/../build-area/>
+
+You might choose to check out all of C<trunk/>. When building from inside
+such a checkout, the standard location for B<svn-buildpackage> will be
+C<trunk/package/../build-area/>. This places the
build area inside the SVN check-out directory, polluting the check-out.
-The solution is to put one line in a file called C<trunk/.svn/deb-layout>.
+The solution is to put one line in a file called C<trunk/package/.svn/deb-layout>.
This file is automatically created by B<svn-buildpackage> but we can place our
defaults there before it starts. The line reads:
More information about the Pkg-perl-cvs-commits
mailing list