Phabricator/Diffusion

"Diffusion" is the Phabricator repository browser and repository management tool. Eventually we want to replace "Gerrit" for code review and repository management by "Differential", and "gitblit" for repository read-only mirroring by "Diffusion". Right now, we're mirroring some of our Git repositories to Phabricator for demonstration purposes.

If you're looking for a new repository, that's still over here at Gerrit.

Callsigns
Callsigns are a thing in Diffusion. You can read about them at . Callsigns must be. This means that one or more letters from A to Z inclusive in the Latin alphabet must be in the callsign and the callsign is considered immutable. Naming conventions for repository callsigns are detailed here. diffusion lists all active repositories and their callsigns.

Module:Callsigns maps repository "paths" in gerrit to Diffusion callsigns, for example "mediawiki/extensions/AbuseFilter" maps to the callsign. git file takes a  parameter to refer to a git repository (T101358), so it invokes Module:Callsigns to create a diffusion link.

Repository-Admins
The Repository-Admins group in Phabricator is tasked with creating, managing and organizing our repositories. If you need help with a repo, these are the folks to ask.

Currently we're on hold while we finish the callsign discussion. Also no repos are to be locally hosted yet.

Diffusion vs. Gitblit

 * ''See also Git/Gerrit evaluation

Advantages

 * Privacy: doesn't load external resources from googleapis.com.
 * Nice minor features of the project summary
 * README preview
 * "Locate file" quicksearch by filename
 * Allows grepping file content and filename from Browse > Show search (grepping not enabled on out gitblit, but was quite used at gitweb's time)
 * Easier to configure
 * "Path was deleted" feature when looking for a deleted file.

Potential advantages

 * Discoverability: diffusion seems able to sustain more traffic, e.g. from search engines, allowing a permissive robots.txt. (Not verified yet; we thought this of gitblit too, initially.)

Disadvantages

 * No repository metrics
 * Will not be able to show big diffs.
 * No ZIP/tarball download?

Neutral

 * URL easier to type because they don't contain escaped characters nor .git suffix (like gitweb); but only if you know the callsign, (e.g.  vs.  ).
 * Performance?
 * "Remote repositories" (?)
 * No full list of projects ( is paginated), but that was too slow to use for real anyway.