[arch-dev-public] The move to SVN

Aaron Griffin aaronmgriffin at gmail.com
Tue Apr 8 13:44:17 EDT 2008


On Tue, Apr 8, 2008 at 12:10 PM, Eric Belanger
<belanger at astro.umontreal.ca> wrote:
>  Things I would like to know how to do with the new SVN repo:
>  - how to checkout the whole repo and how to update it afterwards

I just want to say that this is not really recommended. The size on
disk is huge (SVN keeps a copy of the HEAD revision in the .svn/
directory, so the overall size of the checkout is double that of the
actual files). Feel free to do it, but I know I won't be doing it.

Not to mention that fact that one individual package has copies in the
repos/ dir too. A package in extra and testing for both architectures
has 5 copies of the tracked files (and 5 more for the svn HEAD
revisions). So that's a totaly of 10 PKGBUILDs and other files for one
package. We have 2500ish last I checked.

To checkout:
   svn co ssh://archlinux.org/home/svn-packages [optional directory
name for checkout]

To update later:
   cd <where you checked out the repo>
   svn up

>  - how to add/remove files to the svn tree

   svn add myfile

   svn rm myfile

>  - how to add/remove packages from repos.
This is all based on the packagename/repos/ directory (this takes the
place of our CVS tags).

These tags are of the form repos/$reponame-$arch. So, repos/extra-i686
means it is in extra for the i686 architecture.

Here's an example:

$ archco openssh
A    openssh/trunk
A    openssh/trunk/PKGBUILD
A    openssh/trunk/sshd
A    openssh/trunk/sshd.confd
A    openssh/trunk/sshd.pam
A    openssh/repos
A    openssh/repos/core-i686
A    openssh/repos/core-i686/PKGBUILD
A    openssh/repos/core-i686/sshd
A    openssh/repos/core-i686/sshd.confd
A    openssh/repos/core-i686/sshd.pam
A    openssh/repos/core-x86_64
A    openssh/repos/core-x86_64/PKGBUILD
A    openssh/repos/core-x86_64/sshd
A    openssh/repos/core-x86_64/sshd.confd
A    openssh/repos/core-x86_64/sshd.pam
A    openssh/repos/testing-i686
A    openssh/repos/testing-i686/PKGBUILD
A    openssh/repos/testing-i686/sshd
A    openssh/repos/testing-i686/sshd.confd
A    openssh/repos/testing-i686/sshd.pam
Checked out revision 21.

Notice that openssh is in core-i686, core-x86_64, and testing-i686.
These are actual svn copies, which means they are, in effect, branches
or the trunk PKGBUILD. That means that you *can* edit them differently
if you so wish, but it's probably a better idea to edit only the
trunk/ PKGBUILD.

So, now I'm building openssh for testing-x86_64. I cd into the trunk,
run makepkg. Same old, same old.
When this is complete, I namcap and all that fun stuff.
Then I let archrelease do it's magic - it handles all the svn copying
and all that stuff (bash script, go ahead and peek at it).
archrelease is called by testingpkg - no extra steps. Just run
testingpkg, it will call archrelease, and upload the package

Now if I re-run archco for openssh, I will get some extra files:
A    openssh/repos/testing-i686
A    openssh/repos/testing-i686/PKGBUILD
A    openssh/repos/testing-i686/sshd
A    openssh/repos/testing-i686/sshd.confd
A    openssh/repos/testing-i686/sshd.pam

Now I ssh to gerolde like normal and run the exact same scripts. Viola.

PS I just did openssh for x86_64 as I was writing this 8)




More information about the arch-dev-public mailing list