When the present-day sid did not exist, the FTP site organization had one major flaw: there was an assumption that when an architecture is created in the current unstable, it will be released when that distribution becomes the new stable. For many architectures that isn't the case, with the result that those directories had to be moved at release time. This was impractical because the move would chew up lots of bandwidth.
The archive administrators worked around this problem for several years by placing binaries for unreleased architectures in a special directory called "sid". For those architectures not yet released, the first time they were released there was a link from the current stable to sid, and from then on they were created inside the unstable tree as normal. This layout was somewhat confusing to users.
With the advent of package pools (see What's in the pool directory?, Section 5.10), binary packages began to be stored in a canonical location in the pool, regardless of the distribution, so releasing a distribution no longer causes large bandwidth consumption on the mirrors (there is, however, a lot of gradual bandwidth consumption throughout the development process).
dists/stable/main, dists/stable/contrib, dists/stable/non-free, and dists/unstable/main/, etc.
Historically, packages were kept in the subdirectory of dists corresponding to which distribution contained them. This turned out to cause various problems, such as large bandwidth consumption on mirrors when major changes were made. This was fixed with the introduction of the package pool.
The dists directories are still used for the index files used by programs like apt. You may also still see paths containing dists/potato or dists/woody in the Filename header field of some older packages.
Notice that there are ports that make this tool available with other package
management systems, like Red Hat package manager, also known as
rpm
Although this can also lead to systems with more packages installed than they actually need to work.
Use the debian-list-subject-REQUEST@lists.debian.org address for that.
The Debian GNU/Linux FAQ
version 3.1.5, 17 January 2007