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](http://facebook.github.io/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
```


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`.


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][1] with server
https://gerrit.googlesource.com/gitiles.  You will need a
[generated cookie][2].

[1]: https://gerrit-review.googlesource.com/Documentation/user-upload.html#_git_push
[2]: https://gerrit.googlesource.com/new-password

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
```
