Build blame cache as own java_library

This is a first step towards properly packaging of blame cache in Gerrit
server which is needed for [1]. [1] currently (PS-44) depends on the
whole gitiles-servlet and this leads to a:

  java.lang.NoClassDefFoundError: com/google/template/soy/SoyFileSet

caused by packaging the gitiles-servlet in the Gerrit core but without
all of its dependencies.

[1] https://gerrit-review.googlesource.com/72798

Change-Id: I9326b30962c21082b3d152eb6397ddcf767d1ce3
8 files changed
tree: ce29a21a54c75c85f801dabae7f9640136577ee5
  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] (https://google.github.io/styleguide/javaguide.html) with a 100-column limit.

CSS in Gitiles follows the [SUIT CSS naming conventions] (https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md).

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