summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-03 17:14:07 +0100
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-03 17:14:07 +0100
commit5f03fd317c1dd56c0e59896ba75e6d56a7e79141 (patch)
tree2399cd556404b7d9eca12f851aa0f3abe782386d /README
parent77a24e14c8e24654e72e8b840aeda15238033c5c (diff)
downloadlorries-5f03fd317c1dd56c0e59896ba75e6d56a7e79141.tar.gz
Strip to just the lorries
Diffstat (limited to 'README')
-rw-r--r--README216
1 files changed, 9 insertions, 207 deletions
diff --git a/README b/README
index 14e0898..3c811bd 100644
--- a/README
+++ b/README
@@ -1,211 +1,13 @@
-README for Lorry
-================
+Lorries
+-------
-Lorry is a tool to take upstream source code (in various formats,
-though preferably in version control) and converts it into a git
-repository.
+This repository contains the set of lorries which are automatically run by the
+Trove instance on baserock.org.
-If you want to try this, use `--pull-only` and/or `--gitorious-base-url`
-so that you do not accidentally overwrite important stuff for Baserock.
-(If you don't have direct commit access to Baserock on Gitorious.org,
-then you're not dangerous.)
+There is one main directory `active/` which contains the set of lorries in
+active use.
-See the manual page for instructions on using.
-
-The usual use is that a server hosts lorry and checks for updates,
-which it then lorries. Lorry should not generally be run from the
-developer's machine apart from testing. This is because Lorry has to
-keep the git trees to avoid it having to pull everything.
-
-
-Implementation
---------------
-
-Lorry relies on git-svn, git-cvsimport, and bzr fast-export for the
-conversions. You need to have them installed.
-
-Lorry file specification
-------------------------
-
-Lorry files are json dicts where the repository names are the keys and the
-values are dicts with the data required to mirror it.
-
-So a simple lorry that mirrors a git project looks like
-
- {
- "git": {
- "type": "git",
- "url": "git://github.com/gitster/git.git"
- }
- }
-
-Multiple repositories can be specified in the same .lorry file, in which case
-all of them will be processed by lorry. The following shows two repositories.
-
- {
- "git": {
- "type": "git",
- "url": "git://github.com/gitster/git.git"
- },
- "curl": {
- "type": "git",
- "url": "git://github.com/bagder/curl.git"
- }
- }
-
-Lorry can import other version control systems into git.
-
-### Mercurial
-Mercurial is very similar to git, just change the type field to "hg"
- {
- "sudo": {
- "type": "hg",
- "url": "http://www.sudo.ws/repos/sudo"
- }
- }
-
-### Bazaar
-Repositories and branches in Bazaar mean different things to Git.
-The practical difference for Lorry is that it is not possible to have
-a url for a repository, urls map directly to branches.
-
- {
- "libpipeline": {
- "type": "bzr",
- "branches": {
- "trunk": "http://bzr.savannah.gnu.org/r/libpipeline/trunk"
- }
- }
- }
-
-For convenience if the project only needs one branch mirrored, the url
-is assumed to be the master branch.
-
- {
- "libpipeline": {
- "type": "bzr",
- "url": "http://bzr.savannah.gnu.org/r/libpipeline/trunk"
- }
- }
-
-### Subversion
-To support all the branches and tags a layout needs to be specified as svn is
-very flexible with the possible layouts, however the most common is to have the
-working branch in a directory called trunk, and the branches and tags in
-respectively named subdirectories.
-Because this is so common "standard" can be used as the layout
- {
- "mpc": {
- "type": "svn",
- "url": "svn://scm.gforge.inria.fr/svn/mpc",
- "layout": "standard"
- }
- }
-This is equivalent to
- {
- "mpc": {
- "type": "svn",
- "url": "svn://scm.gforge.inria.fr/svn/mpc",
- "layout": {
- "trunk": "trunk",
- "branches": "branches/*",
- "tags": "tags/*"
- }
- }
- }
-Trunk is the path to the directory where the main branch is located.
-Branches and Tags are glob expressions to allow finer control over which paths
-are used.
-Texlive keeps a lot of resources in their svn repository, we are only concerned
-with the source code, so this layout should select the correct subdirectory for
-each branch.
- {
- "texlive": {
- "type": "svn",
- "url": "svn://tug.org/texlive/",
- "layout": {
- "trunk": "trunk/Build/source",
- "branches": "branches/*/Build/source",
- "tags": "tags/*/Build/source"
- }
- }
- }
-Brace expansions can be used to specify subsets of paths.
-Netpbm for example, keeps all its branches in the root directory
- {
- "netpbm": {
- "type": "svn",
- "url": "https://netpbm.svn.sourceforge.net/svnroot/netpbm",
- "layout": {
- "trunk": "trunk",
- "branches": "{advanced,stable,super_stable}",
- "tags": "release_number/*"
- }
- }
- }
-
-Note that git-svn can provide better history tracking if the url is as close to
-the root of the repository as possible, so it may be more effective if the lorry
-was specified similar to this, assuming svnroot is the real root of the repo
- {
- "netpbm": {
- "type": "svn",
- "url": "https://netpbm.svn.sourceforge.net/svnroot/",
- "layout": {
- "trunk": "netpbm/trunk",
- "branches": "netpbm/{advanced,stable,super_stable}",
- "tags": "netpbm/release_number/*"
- }
- }
- }
-
-### CVS
-The url for CVS repositories is the CVSROOT string. The module is required as
-cvs repositories usually have multiple modules, the module is usually the same
-as the project name.
-
- {
- "openssl": {
- "type": "cvs",
- "url": "anonymous@cvs.openssl.org:/openssl-cvs",
- "module": "openssl"
- }
- }
-
-### Tarball
-Some projects are old enough to pre-date version control, so the source is only
-available in tarballs.
-Tarball support is fairly limited, the compression format is currently specified
-as the long form option without the --, so --gzip becomes gzip.
-Strip removes that many components from the paths. This is necessary as tarballs
-often have the folder name as the first component.
-
-{
- "bc": {
- "type": "tarball",
- "compression": "gzip",
- "strip": 1,
- "url": "http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz"
- }
-}
-
-NOTE: tarball imports are unlikely to give the same sha.
-
-Legal stuff
------------
-
-Copyright (C) 2011 Codethink Limited
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+All other lorry files will not be automatically run.
+The lorries in this repository should be targetted at the `delta/` prefix on
+the Trove on baserock.org.