Refactor MarkdownToHtml with Builder pattern

This refactoring simplifies how we access information about the
document being rendered, which makes the navbar.md, README.md and
normal markdown files all more consistent.

MarkdownConfig is now a JGit SectionParser managed object, which
allows caching the immutable MarkdownConfig inside the JGit Config.
This consolidates the key references from all over the code to one
location, and may improve performance for servers that reuse the
Config object across requests.

Change-Id: Id85130d1bc7351f125bf3b0f8bf3c6e028272b30
12 files changed
tree: a8a1fa48bab55848bd6ebea4df05eb5bb971c760
  1. .settings/
  2. blame-cache/
  3. Documentation/
  4. gitiles-dev/
  5. gitiles-servlet/
  6. lib/
  7. tools/
  8. .buckconfig
  9. .gitignore
  10. .gitmodules
  11. BUCK
  12. bucklets.defs
  13. COPYING
  14. fake_pom_deploy.xml
  15. README.md
  16. VERSION
README.md

Gitiles - A simple JGit repository browser

Gitiles is a simple repository browser for Git repositories, built on JGit. Its guiding principle is simplicity: it has no formal access controls, no write access, no fancy Javascript, etc.

Building

Gitiles requires Buck to build.

sudo apt-get install ant
cd ${HOME}
git clone https://github.com/facebook/buck.git
cd buck
ant
sudo ln -s ${PWD}/bin/buck /usr/bin/buck
cd /path/to/gitiles
git submodule update --init
buck build all
buck test

Testing

cd /path/to/repositories  # Don't run from the gitiles repo.
/path/to/gitiles/tools/run_dev.sh

This will recompile and start a development server. Open http://localhost:8080/ to view your local copy of gitiles, which will serve any repositories under /path/to/repositories.

To run unit tests, run buck test.

Eclipse IDE

If you'd like to use Eclipse to edit Gitiles, first generate a project file:

./bucklets/tools/eclipse.py --src

Import the project in Eclipse:

File -> Import -> Existing Projects into Workpace

The project only needs to be rebuilt if the source roots or third-party libraries have changed. For best results, ensure the project is closed in Eclipse before rebuilding.

Code Style

Java code in Gitiles follows the Google Java Style Guide with a 100-column limit.

Code should be automatically formatted using google-java-format prior to sending a code review. There is currently no Eclipse formatter, but the tool can be run from the command line:

java -jar /path/to/google-java-format-1.0-all-deps.jar -i path/to/java/File.java

CSS in Gitiles follows the SUIT CSS naming conventions.

Code Review

Gitiles uses Gerrit for code review: https://gerrit-review.googlesource.com/

Gitiles uses the “git push” workflow with server https://gerrit.googlesource.com/gitiles. You will need a generated cookie.

Gerrit depends on “Change-Id” annotations in your commit message. If you try to push a commit without one, it will explain how to install the proper git-hook:

curl -Lo `git rev-parse --git-dir`/hooks/commit-msg \
    https://gerrit-review.googlesource.com/tools/hooks/commit-msg
chmod +x `git rev-parse --git-dir`/hooks/commit-msg

Before you create your local commit (which you'll push to Gerrit) you will need to set your email to match your Gerrit account:

git config --local --add user.email foo@bar.com

Normally you will create code reviews by pushing for master:

git push origin HEAD:refs/for/master