diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-03 17:14:07 +0100 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-03 17:14:07 +0100 |
commit | 5f03fd317c1dd56c0e59896ba75e6d56a7e79141 (patch) | |
tree | 2399cd556404b7d9eca12f851aa0f3abe782386d /README | |
parent | 77a24e14c8e24654e72e8b840aeda15238033c5c (diff) | |
download | lorries-5f03fd317c1dd56c0e59896ba75e6d56a7e79141.tar.gz |
Strip to just the lorries
Diffstat (limited to 'README')
-rw-r--r-- | README | 216 |
1 files changed, 9 insertions, 207 deletions
@@ -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. |