diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -762,10 +762,10 @@
     'DiffusionRepositoryEditDeleteController' => 'applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php',
     'DiffusionRepositoryEditEngine' => 'applications/diffusion/editor/DiffusionRepositoryEditEngine.php',
     'DiffusionRepositoryEditUpdateController' => 'applications/diffusion/controller/DiffusionRepositoryEditUpdateController.php',
-    'DiffusionRepositoryEditproController' => 'applications/diffusion/controller/DiffusionRepositoryEditproController.php',
     'DiffusionRepositoryHistoryManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryHistoryManagementPanel.php',
     'DiffusionRepositoryListController' => 'applications/diffusion/controller/DiffusionRepositoryListController.php',
     'DiffusionRepositoryManageController' => 'applications/diffusion/controller/DiffusionRepositoryManageController.php',
+    'DiffusionRepositoryManagePanelsController' => 'applications/diffusion/controller/DiffusionRepositoryManagePanelsController.php',
     'DiffusionRepositoryManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryManagementPanel.php',
     'DiffusionRepositoryPath' => 'applications/diffusion/data/DiffusionRepositoryPath.php',
     'DiffusionRepositoryPoliciesManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryPoliciesManagementPanel.php',
@@ -4975,17 +4975,17 @@
     'DiffusionRepositoryDatasource' => 'PhabricatorTypeaheadDatasource',
     'DiffusionRepositoryDefaultController' => 'DiffusionController',
     'DiffusionRepositoryDocumentationManagementPanel' => 'DiffusionRepositoryManagementPanel',
-    'DiffusionRepositoryEditActivateController' => 'DiffusionRepositoryEditController',
+    'DiffusionRepositoryEditActivateController' => 'DiffusionRepositoryManageController',
     'DiffusionRepositoryEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
-    'DiffusionRepositoryEditController' => 'DiffusionController',
-    'DiffusionRepositoryEditDangerousController' => 'DiffusionRepositoryEditController',
-    'DiffusionRepositoryEditDeleteController' => 'DiffusionRepositoryEditController',
+    'DiffusionRepositoryEditController' => 'DiffusionRepositoryManageController',
+    'DiffusionRepositoryEditDangerousController' => 'DiffusionRepositoryManageController',
+    'DiffusionRepositoryEditDeleteController' => 'DiffusionRepositoryManageController',
     'DiffusionRepositoryEditEngine' => 'PhabricatorEditEngine',
-    'DiffusionRepositoryEditUpdateController' => 'DiffusionRepositoryEditController',
-    'DiffusionRepositoryEditproController' => 'DiffusionRepositoryEditController',
+    'DiffusionRepositoryEditUpdateController' => 'DiffusionRepositoryManageController',
     'DiffusionRepositoryHistoryManagementPanel' => 'DiffusionRepositoryManagementPanel',
     'DiffusionRepositoryListController' => 'DiffusionController',
     'DiffusionRepositoryManageController' => 'DiffusionController',
+    'DiffusionRepositoryManagePanelsController' => 'DiffusionRepositoryManageController',
     'DiffusionRepositoryManagementPanel' => 'Phobject',
     'DiffusionRepositoryPath' => 'Phobject',
     'DiffusionRepositoryPoliciesManagementPanel' => 'DiffusionRepositoryManagementPanel',
@@ -4997,7 +4997,7 @@
     'DiffusionRepositoryStorageManagementPanel' => 'DiffusionRepositoryManagementPanel',
     'DiffusionRepositorySymbolsManagementPanel' => 'DiffusionRepositoryManagementPanel',
     'DiffusionRepositoryTag' => 'Phobject',
-    'DiffusionRepositoryTestAutomationController' => 'DiffusionRepositoryEditController',
+    'DiffusionRepositoryTestAutomationController' => 'DiffusionRepositoryManageController',
     'DiffusionRepositoryURICredentialController' => 'DiffusionController',
     'DiffusionRepositoryURIDisableController' => 'DiffusionController',
     'DiffusionRepositoryURIEditController' => 'DiffusionController',
diff --git a/src/applications/diffusion/application/PhabricatorDiffusionApplication.php b/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
--- a/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
+++ b/src/applications/diffusion/application/PhabricatorDiffusionApplication.php
@@ -58,7 +58,7 @@
         $this->getQueryRoutePattern()
           => 'DiffusionRepositoryListController',
         $this->getEditRoutePattern('edit/') =>
-          'DiffusionRepositoryEditproController',
+          'DiffusionRepositoryEditController',
         'pushlog/' => array(
           '(?:query/(?P<queryKey>[^/]+)/)?' => 'DiffusionPushLogListController',
           'view/(?P<id>\d+)/' => 'DiffusionPushEventViewController',
@@ -87,7 +87,7 @@
           'commit/(?P<commit>[a-z0-9]+)/edit/'
             => 'DiffusionCommitEditController',
           'manage/(?:(?P<panel>[^/]+)/)?'
-            => 'DiffusionRepositoryManageController',
+            => 'DiffusionRepositoryManagePanelsController',
           'uri/' => array(
             'view/(?P<id>[0-9]\d*)/' => 'DiffusionRepositoryURIViewController',
             'disable/(?P<id>[0-9]\d*)/'
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditActivateController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditActivateController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditActivateController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditActivateController.php
@@ -1,7 +1,7 @@
 <?php
 
 final class DiffusionRepositoryEditActivateController
-  extends DiffusionRepositoryEditController {
+  extends DiffusionRepositoryManageController {
 
   public function handleRequest(AphrontRequest $request) {
     $response = $this->loadDiffusionContextForEdit();
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
@@ -1,28 +1,69 @@
 <?php
 
-abstract class DiffusionRepositoryEditController
-  extends DiffusionController {
+final class DiffusionRepositoryEditController
+  extends DiffusionRepositoryManageController {
 
-  protected function buildApplicationCrumbs($is_main = false) {
-    $crumbs = parent::buildApplicationCrumbs();
+  public function handleRequest(AphrontRequest $request) {
+    $engine = id(new DiffusionRepositoryEditEngine())
+      ->setController($this);
 
-    if ($this->hasDiffusionRequest()) {
-      $drequest = $this->getDiffusionRequest();
-      $repository = $drequest->getRepository();
-      $repo_uri = $repository->getURI();
-      $edit_uri = $this->getRepositoryControllerURI($repository, 'edit/');
+    $id = $request->getURIData('id');
+    if (!$id) {
+      $this->requireApplicationCapability(
+        DiffusionCreateRepositoriesCapability::CAPABILITY);
 
-      $crumbs->addTextCrumb($repository->getDisplayname(), $repo_uri);
-
-      if ($is_main) {
-        $crumbs->addTextCrumb(pht('Edit Repository'));
-      } else {
-        $crumbs->addTextCrumb(pht('Edit'), $edit_uri);
+      $vcs = $request->getStr('vcs');
+      $vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();
+      if (empty($vcs_types[$vcs])) {
+        return $this->buildVCSTypeResponse();
       }
+
+      $engine
+        ->addContextParameter('vcs', $vcs)
+        ->setVersionControlSystem($vcs);
     }
+
+    return $engine->buildResponse();
+  }
+
+  private function buildVCSTypeResponse() {
+    $vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();
+
+    $request = $this->getRequest();
+    $viewer = $this->getViewer();
+
+    $crumbs = $this->buildApplicationCrumbs();
+    $crumbs->addTextCrumb(pht('Create Repository'));
     $crumbs->setBorder(true);
 
-    return $crumbs;
+    $title = pht('Choose Repository Type');
+    $header = id(new PHUIHeaderView())
+      ->setHeader(pht('Create Repository'))
+      ->setHeaderIcon('fa-plus-square');
+
+    $layout = id(new AphrontMultiColumnView())
+      ->setFluidLayout(true);
+
+    $create_uri = $request->getRequestURI();
+
+    foreach ($vcs_types as $vcs_key => $vcs_type) {
+      $action = id(new PHUIActionPanelView())
+        ->setIcon(idx($vcs_type, 'icon'))
+        ->setHeader(idx($vcs_type, 'create.header'))
+        ->setHref($create_uri->alter('vcs', $vcs_key))
+        ->setSubheader(idx($vcs_type, 'create.subheader'));
+
+      $layout->addColumn($action);
+    }
+
+    $view = id(new PHUITwoColumnView())
+      ->setHeader($header)
+      ->setFooter($layout);
+
+    return $this->newPage()
+      ->setTitle($title)
+      ->setCrumbs($crumbs)
+      ->appendChild($view);
   }
 
 }
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditDangerousController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditDangerousController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditDangerousController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditDangerousController.php
@@ -1,7 +1,7 @@
 <?php
 
 final class DiffusionRepositoryEditDangerousController
-  extends DiffusionRepositoryEditController {
+  extends DiffusionRepositoryManageController {
 
   public function handleRequest(AphrontRequest $request) {
     $response = $this->loadDiffusionContextForEdit();
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php
@@ -1,7 +1,7 @@
 <?php
 
 final class DiffusionRepositoryEditDeleteController
-  extends DiffusionRepositoryEditController {
+  extends DiffusionRepositoryManageController {
 
   public function handleRequest(AphrontRequest $request) {
     $response = $this->loadDiffusionContextForEdit();
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditUpdateController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditUpdateController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditUpdateController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditUpdateController.php
@@ -1,7 +1,7 @@
 <?php
 
 final class DiffusionRepositoryEditUpdateController
-  extends DiffusionRepositoryEditController {
+  extends DiffusionRepositoryManageController {
 
   public function handleRequest(AphrontRequest $request) {
     $response = $this->loadDiffusionContextForEdit();
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditproController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditproController.php
deleted file mode 100644
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditproController.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-final class DiffusionRepositoryEditproController
-  extends DiffusionRepositoryEditController {
-
-  public function handleRequest(AphrontRequest $request) {
-    $engine = id(new DiffusionRepositoryEditEngine())
-      ->setController($this);
-
-    $id = $request->getURIData('id');
-    if (!$id) {
-      $this->requireApplicationCapability(
-        DiffusionCreateRepositoriesCapability::CAPABILITY);
-
-      $vcs = $request->getStr('vcs');
-      $vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();
-      if (empty($vcs_types[$vcs])) {
-        return $this->buildVCSTypeResponse();
-      }
-
-      $engine
-        ->addContextParameter('vcs', $vcs)
-        ->setVersionControlSystem($vcs);
-    }
-
-    return $engine->buildResponse();
-  }
-
-  private function buildVCSTypeResponse() {
-    $vcs_types = PhabricatorRepositoryType::getRepositoryTypeMap();
-
-    $request = $this->getRequest();
-    $viewer = $this->getViewer();
-
-    $crumbs = $this->buildApplicationCrumbs();
-    $crumbs->addTextCrumb(pht('Create Repository'));
-    $crumbs->setBorder(true);
-
-    $title = pht('Choose Repository Type');
-    $header = id(new PHUIHeaderView())
-      ->setHeader(pht('Create Repository'))
-      ->setHeaderIcon('fa-plus-square');
-
-    $layout = id(new AphrontMultiColumnView())
-      ->setFluidLayout(true);
-
-    $create_uri = $request->getRequestURI();
-
-    foreach ($vcs_types as $vcs_key => $vcs_type) {
-      $action = id(new PHUIActionPanelView())
-        ->setIcon(idx($vcs_type, 'icon'))
-        ->setHeader(idx($vcs_type, 'create.header'))
-        ->setHref($create_uri->alter('vcs', $vcs_key))
-        ->setSubheader(idx($vcs_type, 'create.subheader'));
-
-      $layout->addColumn($action);
-    }
-
-    $view = id(new PHUITwoColumnView())
-      ->setHeader($header)
-      ->setFooter($layout);
-
-    return $this->newPage()
-      ->setTitle($title)
-      ->setCrumbs($crumbs)
-      ->appendChild($view);
-  }
-
-}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryManageController.php b/src/applications/diffusion/controller/DiffusionRepositoryManageController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryManageController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryManageController.php
@@ -1,139 +1,25 @@
 <?php
 
-final class DiffusionRepositoryManageController
+abstract class DiffusionRepositoryManageController
   extends DiffusionController {
 
-  private $navigation;
+  protected function buildApplicationCrumbs() {
+    $crumbs = parent::buildApplicationCrumbs();
 
-  public function buildApplicationMenu() {
-    // TODO: This is messy for now; the mobile menu should be set automatically
-    // when the body content is a two-column view with navigation.
-    if ($this->navigation) {
-      return $this->navigation->getMenu();
-    }
-    return parent::buildApplicationMenu();
-  }
-
-
-  public function handleRequest(AphrontRequest $request) {
-    $response = $this->loadDiffusionContext();
-    if ($response) {
-      return $response;
-    }
-
-    $viewer = $this->getViewer();
-    $drequest = $this->getDiffusionRequest();
-    $repository = $drequest->getRepository();
-
-    $panels = DiffusionRepositoryManagementPanel::getAllPanels();
-
-    foreach ($panels as $panel) {
-      $panel
-        ->setViewer($viewer)
-        ->setRepository($repository)
-        ->setController($this);
-    }
-
-    $selected = $request->getURIData('panel');
-    if (!strlen($selected)) {
-      $selected = head_key($panels);
-    }
-
-    if (empty($panels[$selected])) {
-      return new Aphront404Response();
-    }
-
-    $nav = $this->renderSideNav($repository, $panels, $selected);
-    $this->navigation = $nav;
-
-    $panel = $panels[$selected];
-
-    $content = $panel->buildManagementPanelContent();
-
-    $title = array(
-      $panel->getManagementPanelLabel(),
-      $repository->getDisplayName(),
-    );
-
-    $crumbs = $this->buildApplicationCrumbs();
-    $crumbs->addTextCrumb(
-      $repository->getDisplayName(),
-      $repository->getURI());
-    $crumbs->addTextCrumb(
-      pht('Manage'),
-      $repository->getPathURI('manage/'));
-    $crumbs->addTextCrumb($panel->getManagementPanelLabel());
+    if ($this->hasDiffusionRequest()) {
+      $drequest = $this->getDiffusionRequest();
+      $repository = $drequest->getRepository();
 
-    $header_text = pht(
-      '%s: %s',
-      $repository->getDisplayName(),
-      $panel->getManagementPanelLabel());
+      $crumbs->addTextCrumb(
+        $repository->getDisplayName(),
+        $repository->getURI());
 
-    $header = id(new PHUIHeaderView())
-      ->setHeader($header_text)
-      ->setHeaderIcon('fa-pencil');
-    if ($repository->isTracked()) {
-      $header->setStatus('fa-check', 'bluegrey', pht('Active'));
-    } else {
-      $header->setStatus('fa-ban', 'dark', pht('Inactive'));
+      $crumbs->addTextCrumb(
+        pht('Manage'),
+        $repository->getPathURI('manage/'));
     }
 
-    $view = id(new PHUITwoColumnView())
-      ->setHeader($header)
-      ->setNavigation($nav)
-      ->setMainColumn($content);
-
-    $curtain = $panel->buildManagementPanelCurtain();
-    if ($curtain) {
-      $view->setCurtain($curtain);
-    }
-
-    return $this->newPage()
-      ->setTitle($title)
-      ->setCrumbs($crumbs)
-      ->appendChild($view);
+    return $crumbs;
   }
 
-  private function renderSideNav(
-    PhabricatorRepository $repository,
-    array $panels,
-    $selected) {
-
-    $base_uri = $repository->getPathURI('manage/');
-    $base_uri = new PhutilURI($base_uri);
-
-    $nav = id(new AphrontSideNavFilterView())
-      ->setBaseURI($base_uri);
-
-    foreach ($panels as $panel) {
-      $key = $panel->getManagementPanelKey();
-      $label = $panel->getManagementPanelLabel();
-      $icon = $panel->getManagementPanelIcon();
-      $href = $panel->getPanelNavigationURI();
-
-      $item = id(new PHUIListItemView())
-        ->setKey($key)
-        ->setName($label)
-        ->setType(PHUIListItemView::TYPE_LINK)
-        ->setHref($href)
-        ->setIcon($icon);
-
-      $nav->addMenuItem($item);
-    }
-
-    $nav->selectFilter($selected);
-
-    return $nav;
-  }
-
-  public function newTimeline(PhabricatorRepository $repository) {
-    $timeline = $this->buildTransactionTimeline(
-      $repository,
-      new PhabricatorRepositoryTransactionQuery());
-    $timeline->setShouldTerminate(true);
-
-    return $timeline;
-  }
-
-
 }
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryManageController.php b/src/applications/diffusion/controller/DiffusionRepositoryManagePanelsController.php
copy from src/applications/diffusion/controller/DiffusionRepositoryManageController.php
copy to src/applications/diffusion/controller/DiffusionRepositoryManagePanelsController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryManageController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryManagePanelsController.php
@@ -1,7 +1,7 @@
 <?php
 
-final class DiffusionRepositoryManageController
-  extends DiffusionController {
+final class DiffusionRepositoryManagePanelsController
+  extends DiffusionRepositoryManageController {
 
   private $navigation;
 
@@ -56,12 +56,6 @@
     );
 
     $crumbs = $this->buildApplicationCrumbs();
-    $crumbs->addTextCrumb(
-      $repository->getDisplayName(),
-      $repository->getURI());
-    $crumbs->addTextCrumb(
-      pht('Manage'),
-      $repository->getPathURI('manage/'));
     $crumbs->addTextCrumb($panel->getManagementPanelLabel());
 
     $header_text = pht(
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryTestAutomationController.php b/src/applications/diffusion/controller/DiffusionRepositoryTestAutomationController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryTestAutomationController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryTestAutomationController.php
@@ -1,7 +1,7 @@
 <?php
 
 final class DiffusionRepositoryTestAutomationController
-  extends DiffusionRepositoryEditController {
+  extends DiffusionRepositoryManageController {
 
   public function handleRequest(AphrontRequest $request) {
     $response = $this->loadDiffusionContextForEdit();