<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="author" content="EGerrit team">
    
    <meta name="keywords" content="" />
    <meta name="generator" content="Hugo 0.14" />
    <link href="//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,100" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="https://www.eclipse.org/egerrit/public/images/favicon.ico"/>
    <title>EGerrit</title>
    <meta property="og:title" content="" />
    <meta property="og:description" content="EGerrit" />
    <meta property="og:image" content="https://www.eclipse.org/egerrit/images/logo/eclipse.png" />
    <link rel="stylesheet" href="https://www.eclipse.org/egerrit/public/css/solstice.css">
    <link href="https://www.eclipse.org/egerrit//css/prism.css" rel="stylesheet" />
    
    
  </head>
  <body class="" id="body_solstice">
    <a class="sr-only" href="#content">Skip to main content</a>
    <div id="toolbar-container-wrapper" class="clearfix">
      <div class="container">
        <div id="row-toolbar" class="region region-toolbar text-right hidden-print">
          <div id="row-toolbar-col" class="col-md-24">
            <section id="block-solstice-support-solstice-support-toolbar" class="block block-solstice-support clearfix">
              <div class="block-content"><ul class="list-inline"><li>&nbsp;</li></ul></div>
            </section>
          </div>
        </div>
      </div>
    </div>
    <header role="banner">
      <div class="container">
        <div id="row-logo-search">
          <div id="header-left" class="col-sm-14 col-md-16 col-lg-19">
            <div class="row">
              <div class="hidden-xs">
                <a href="https://eclipse.org/"><img src="https://www.eclipse.org/egerrit/public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" class="logo-eclipse-default"/></a>
              </div>
              <div id="main-menu" class="navbar row yamm">
                <div id="navbar-collapse-1" class="navbar-collapse collapse">
                  <ul class="nav navbar-nav">
                    

<li class="dropdown">
  <a data-toggle="dropdown" class="dropdown-toggle">More<b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Community</strong></p>
            </li>
            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
            <li><a href="http://events.eclipse.org">Events</a></li>
            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
            <li><a href="https://eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
            <li><a href="https://eclipse.org/forums/">Forums</a></li>
            <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
            <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Working Groups</strong></p>
            </li>
            <li><a href="http://wiki.eclipse.org/Auto_IWG">Automotive</a></li>
            <li><a href="http://iot.eclipse.org">Internet of Things</a></li>
            <li><a href="http://locationtech.org">LocationTech</a></li>
            <li><a href="http://lts.eclipse.org">Long-Term Support</a></li>
            <li><a href="http://polarsys.org">PolarSys</a></li>
            <li><a href="http://science.eclipse.org">Science</a></li>
            <li><a href="http://www.openmdm.org">OpenMDM</a></li>
          </ul>
        </div>
      </div>
    </li>
  </ul>
</li>


                  </ul>
                </div>
                <div class="navbar-header">
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
                  <span class="sr-only">Toggle navigation</span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  </button>
                  <a href="https://eclipse.org/" class="navbar-brand visible-xs"><img src="https://www.eclipse.org/egerrit//public/images/logo/eclipse-800x188.png" alt="Eclipse.org logo" width="174" class="logo-eclipse-default"/></a>
                </div>
              </div>
            </div>
          </div>
          <div id="header-right" class="form-inline col-sm-10 col-md-8 col-lg-5 hidden-print hidden-xs">
            <div id="header-right-container">
              <div id="custom-search-form" class="reset-box-sizing">
  <script>
    (function() {
      var cx = '011805775785170369411:15ipmpflp-0';
      var gcse = document.createElement('script');
      gcse.type = 'text/javascript';
      gcse.async = true;
      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
          '//cse.google.com/cse.js?cx=' + cx;
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(gcse, s);
    })();
  </script>
  <gcse:searchbox-only></gcse:searchbox-only>
</div>

              
            </div>
          </div>
        </div>
      </div>
    </header>
    <section id="breadcrumb" class="defaut-breadcrumbs hidden-print">
  <div class="container">
    <h3 class="sr-only">Breadcrumbs</h3>
    <div class="col-xs-24">
      
      
      <ol class="breadcrumb">
        <li><a href="https://www.eclipse.org/">Home</a></li>
        <li><a href="https://www.eclipse.org/egerrit/">EGerrit</a></li>
        
        
        
        <li><a href='https://www.eclipse.org/egerrit/about'>about</a></li>
        
        
        
        
        
        
      </ol>
    </div>
  </div>
</section>

    <main role="main" class=" no-promo">
    <div class="container background-image-none" id="novaContent">
    



  <nav id="TableOfContents">
<ul>
<li><a href="#title-h1:6083a88ee3411b0d17ce02d738f69d47">title H1</a>
<ul>
<li><a href="#title:6083a88ee3411b0d17ce02d738f69d47">title</a></li>
<li><a href="#title2:6083a88ee3411b0d17ce02d738f69d47">title2</a></li>
</ul></li>
</ul>
</nav>
  

<h1 id="title-h1:6083a88ee3411b0d17ce02d738f69d47">title H1</h1>

<h2 id="title:6083a88ee3411b0d17ce02d738f69d47">title</h2>

<p>Some content</p>

<h2 id="title2:6083a88ee3411b0d17ce02d738f69d47">title2</h2>

<p>Some content</p>




</div>
</main>

<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer role="contentinfo" id="solstice-footer">
  <div class="container">
    <div class="row">
      <section id="footer-eclipse-foundation" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Eclipse Foundation</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/org/">About us</a></li>
          <li><a href="https://eclipse.org/org/foundation/contact.php">Contact Us</a></li>
          <li><a href="https://eclipse.org/donate">Donate</a></li>
          <li><a href="https://eclipse.org/org/documents/">Governance</a></li>
          <li><a href="https://eclipse.org/artwork/">Logo and Artwork</a></li>
          <li><a href="https://eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
        </ul>
      </section>
      <section id="footer-legal" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print ">
        <h2 class="section-title">Legal</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/legal/privacy.php">Privacy Policy</a></li>
          <li><a href="https://eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
          <li><a href="https://eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          <li><a href="https://eclipse.org/org/documents/epl-v10.php">Eclipse Public License </a></li>
          <li><a href="https://eclipse.org/legal/">Legal Resources </a></li>
        </ul>
      </section>
      <section id="footer-useful-links" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Useful Links</h2>
        <ul class="nav">
          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
          <li><a href="//help.eclipse.org/">Documentation</a></li>
          <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
          <li><a href="https://eclipse.org/forums/">Forums</a></li>
          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
        </ul>
      </section>
      <section id="footer-other" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Other</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/ide/">IDE and Tools</a></li>
          <li><a href="https://eclipse.org/projects">Community of Projects</a></li>
          <li><a href="https://eclipse.org/org/workinggroups/">Working Groups</a></li>
        </ul>
        <ul class="list-inline social-media">
          <li><a href="https://twitter.com/EclipseFdn"><i class="fa fa-twitter-square"></i></a></li>
          <li><a href="https://plus.google.com/+Eclipse"><i class="fa fa-google-plus-square"></i></a></li>
          <li><a href="https://www.facebook.com/eclipse.org"><i class="fa fa-facebook-square"></i> </a></li>
          <li><a href="https://www.youtube.com/user/EclipseFdn"><i class="fa fa-youtube-square"></i></a></li>
        </ul>
      </section>
      <div id="copyright"  class="col-xs-offset-1 col-sm-14 col-md-24 col-md-offset-0">
        <div>
          <span class="hidden-print"><img src="https://www.eclipse.org/egerrit/public/images/logo/eclipse-logo-bw-800x188.png" alt="Eclipse.org black and white logo" width="166" height="39" id="logo-eclipse-white"/></span>
          <p id="copyright-text">Copyright &copy; 2015 The Eclipse Foundation. All Rights Reserved.</p>
        </div>
      </div>
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>

<script src="https://www.eclipse.org/egerrit/public/js/solstice.js"></script>
<script src="https://www.eclipse.org/egerrit//js/prism.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-910670-2']);
  _gaq.push(['_trackPageview']);
  
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  
</script>
</body>
</html>

