1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-09-20 09:18:48 +02:00

Update Diffusion main documentation

Summary:
This was really out of date and full of lies.

Mostly I've deleted sections, since the UI is way way more self-explanatory and much better at surfacing errors now.

Test Plan: L@@K

Reviewers: btrahan, chad

Reviewed By: chad

Subscribers: epriestley

Differential Revision: https://secure.phabricator.com/D8873
This commit is contained in:
epriestley 2014-04-28 09:26:34 -07:00
parent 9da255efaa
commit 93f23674bf

View file

@ -6,14 +6,13 @@ Guide to Diffusion, the Phabricator repository browser.
= Overview =
Diffusion is a repository browser which allows you to explore source code in a
Git or SVN repository, similar to software like Trac and GitWeb.
Subversion, Git, or Mercurial repository. It is somewhat similar to software
like Trac and GitWeb.
Diffusion provides a very high-performance SVN browser, a moderately
high-performance Git browser and relatively slow Mercurial browser. It achieves
performance by denormalizing large amounts of data about repository history into
a database and using this information like a cache so it can avoid querying the
repository directly. This data is generated by daemons which track repositories,
discover new commits, and parse and import them.
Diffusion can either import a read-only copy of repositories hosted somewhere
else (for example, from GitHub, Bitbucket or existing hosting) or host
repositories within Phabricator. Hosted repositories support a variety of
triggers and access controls.
Diffusion is integrated with the other tools in the Phabricator suite. For
instance:
@ -22,9 +21,22 @@ instance:
automatically updated and linked to the corresponding commits;
- you can add Herald rules to notify you about commits that match certain
rules;
- the Owners tool uses Diffusion to map repositories; and
- for hosted repositories, Herald can enforce granular access control rules;
- in all the tools, commit names are automatically linked.
= Adding Repositories =
Repository administration is accomplished through Diffusion. You can use the
web interface in Diffusion to import an external repository, or create a new
hosted repository.
- For hosted repositories, make sure you go through the setup instructions
in @{article:Diffusion User Guide: Repository Hosting} first.
- For all repositories, you'll need to be running the daemons. If you have
not set them up yet, see @{article:Managing Daemons with phd}.
By default, you must be an administrator to create a new repository.
= Repository Callsigns and Commit Names =
Each repository is identified by a "callsign", which is a short uppercase string
@ -62,36 +74,6 @@ repositories, Diffusion generally uses either a 16-character prefix (which makes
collisions very unlikely) or the full 40-character hash (which makes collisions
astronomically unlikely).
= Adding Repositories =
Repository administration is accomplished through the "Repository" tool, which
is primarily a set of administrative interfaces for Diffusion. To add a
repository to Diffusion, you need to:
- create a new repository in the Repository tool; and
- start the daemons that will track and import the repository.
To create a new repository (or edit or delete an existing repository),
**you must be an administrator** (see
@{article:Configuring Accounts and Registration} for instructions on making an
existing account an administrator account). As an administrator, go to the
Repository tool and you'll have the options to create or edit repositories.
When you create a new repository, you need to specify a human-readable name,
a permanent "Callsign" (see previous section), and the underlying VCS type. Once
you have created a repository, you can go to the "Tracking" tab and set up
tracking in Diffusion.
Most of the options in the **Tracking** tab should be self-explanatory or are
safe to leave at their defaults. In broad strokes, Diffusion tracks SVN
repositories by issuing an "svn log" command periodically against the remote to
look for new commits. It tracks Git and Mercurial repositories by cloning a
local copy and issuing `git fetch` or `hg pull` periodically.
Once you've configured everything (and made sure **Tracking** is set to
"Enabled"), you can launch the daemons to begin actually tracking the
repository.
= Running Diffusion Daemons =
In most cases, it is sufficient to run:
@ -104,13 +86,13 @@ see @{article:Managing Daemons with phd}.
NOTE: If you have an unusually large install with multiple web frontends, see
notes in @{article:Managing Daemons with phd}.
You can use the Daemon Console to monitor the daemons and their progress
importing the repository. Small repositories should import quickly, while
larger repositories may take some time (it takes about 10 minutes to begin
discovering commits in Facebook's 350,000-commit primary repository, and about
18 hours to import it all with 64 taskmasters on modern hardware). Commits
should begin appearing in Diffusion within a few minutes for all but the
largest repositories.
You can use the repository detail screen and the Daemon Console to monitor the
daemons and their progress importing the repository. Small repositories should
import quickly, while larger repositories may take some time (it takes about 10
minutes to begin discovering commits in Facebook's 350,000-commit primary
repository, and about 18 hours to import it all with 64 taskmasters on modern
hardware). Commits should begin appearing in Diffusion within a few minutes for
all but the largest repositories.
== Tuning Daemons ==
@ -156,5 +138,7 @@ repositories.
- Learn about creating a symbol index at
@{article:Diffusion User Guide: Symbol Indexes}; or
- set up repository hosting with
@{article:Diffusion User Guide: Repository Hosting}; or
- understand daemons in detail with @{article:Managing Daemons with phd}; or
- give us feedback at @{article:Give Feedback! Get Support!}.