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