This is a short how to setup a repository.

First choose some directory you want your things in.

1) Config

Generate a directory named conf/
Place a file named "distributions" there.
There add things like:

Origin: Debian
Label: Debian-All
Suite: stable
Codename: woody
Version: 3.0
Architectures: i386 sparc mips source
Components: main non-free contrib
UDebComponents: main
Description: Debian woody + woody/non-US + woody/updates
#Update: security woody swoody
#SignWith: yes

or: 

Origin: PCPool
Label: PCPool
Suite: stable
Codename: pcpool
Version: 3.0
Architectures: i386 source
Components: main non-free contrib bad protected server
Description: PCPool specific (or backported) packages
SignWith: yes
Override: override
SourceOverride: srcoverride

Multiple such entries are seperated with an empty line.
The codename is used to determine the directory to create,
the Update line is described later, when SignWith is there,
it will try to sign it. (It cannot yet be use to tell which
key to use).
The other fields are copies into the appropiate Release files
generated.


2) Add files

To add a .deb manually:

reprepro -Vb . includedeb pcpool /lhome/aptcache/zoggy_0.91-3_i386.deb

to add a .changes file:

reprepro -Vb . include pcpool test.changes

Hint: you can add -C component, -A architecture, -S section, -P priority
to give additional hints where it should go. (Note -A will not overwrite
something to go into another architecture, but simply ignore those not
fitting, only "Architecture: all" packages are placed exactly in theese
architecture. (Helps when it is not available for all architectures and
each binary version needs a fitting version of the Arch:all package))

3) to remove files:
	
reprepro -Vb . remove pcpool zoggy

to only delete in a specific component or architecture:

reprepro -Vb . -C main -A i386 remove pcpool zoggy

Note: this only removes it out of the database for this distribution.
To delete the physical files, try:

reprepro -Vb . deleteunrefereced

4) getting informations:
To see in which architectures/components a packages exists and which version it uses.

reprepro -b . list pcpool zoggy

5) Override-Files
When including packages via includedeb, includedsc or include
the applicaple override file from the distribution it is placed
into is used. The file given by Override for .deb's the file
given by SourceOverride for .dsc's. If the filename starts with
a slash (/) it is not relative to the override directory given
with -o. Note that the Format is those of apt-ftparchive's
ExtraOverride, not the old format.

6) importing from upstream represetories

In conf/updates can be entries like this:	

Name: debian
Method: http://ftp.debian.de/debian 
VerifyRelease: 6FFA8EF91DB114E0

Name: non-US
Method: http://ftp.debian.de/debian-non-US 
Suite: */non-US
Architectures: i386 sparc mips source
Components: main>main non-free>non-free contrib>contrib
UDebComponents: none
VerifyRelease: B629A24C38C6029A

Name: security
Method: http://security.debian.org/debian-security 
Suite: */updates 
UDebComponents: none
VerifyRelease: 6FFA8EF91DB114E0

Which of those are used is determined by the "Update:" line
in the description in conf/distributions. When "Suite:",
"Architecture:", "Components" or "UDebComponents" are not given
or empty, those of the distribution to be added are used.
(Place some irreal component like "none" there if you want
 only the other of Components or UDebComponents). The suite of 
the target can be used as "*" in the Suite here. "VerifyRelease:" 
tells which gpgkey to use checking the Release.gpg. 
(Add a "IgnoreRelease: yes" to ignore any Release files)
To import components in other components, use the source>target
syntax.
"Method:" describes a apt-method, for which the programs
from /usr/lib/apt/methods are used...

To update everything possible do:

reprepro -b . update

To only update some distributions do:

reprepro -b . update woody

(There is no support for updating a distribution from only specific
 upstreams yet. You will have to edit conf/distributions for that)

The value for VerifyRelease can be get by 

gpg --with-colons --list-keys <whatever>
