# -----------------------------------------------------------
# This document describes how to generate the Eclipse ip log
# for the eclipse project technology.jgit using a local clone
# of the git repository
#     git://egit.eclipse.org/jgit.git
# starting point is a manually written file
#     .eclipse_iplog
# located in the repository's work dir root path
# which is describing the project, see first section of this
# file in the jgit root directory:
#     $JGIT_BASE/.eclipse_iplog
# -----------------------------------------------------------
# Prepare:
# jgit work tree base dir
export JGIT_BASE="c:/data/ide/helios/jgit"

# repository work dir root path
export WORK_DIR="c:/data/ide/helios/jgit"

# cd to repository work dir root path (for jgit this is identical to $JGIT_BASE)
cd $WORK_DIR

# -----------------------------------------------------------
# Update the CQ list:
# - this command updates file .eclipse_iplog
java -jar $JGIT_BASE/org.eclipse.jgit.pgm/target/jgit-cli.jar eclipse-ipzilla

# - if there are any updates 'git commit' them
git add .eclipse_iplog
git commit

# - type in ipzilla user and password

# -----------------------------------------------------------
# Get the committer data from gerrit:
# - start gerrit gsql via ssh
# options:
#     -p : ssh port gerrit is listening on
ssh -p 29418 username@egit.eclipse.org gerrit gsql --format PRETTY

# - type in ssh passphrase for your ssh key
# - run the SQL query (cut and paste content to interactive gerrit shell)
#      org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/gsql_query.txt
# - copy the query result into the file (no headers, no blank lines):
#      $WORK_DIR/.git/gerrit_committers

# -----------------------------------------------------------
# Generate the iplog:
# options:
#     -- version : the project version the iplog is to be generated for
#     - o : the output file
java -jar $JGIT_BASE/org.eclipse.jgit.pgm/target/jgit-cli.jar eclipse-iplog --version=0.8.0 -o jgit-0.8.0.xml


