<?php  																														
    require_once($_SERVER['DOCUMENT_ROOT']."/eclipse.org-common/system/app.class.php");	
    require_once($_SERVER['DOCUMENT_ROOT']."/eclipse.org-common/system/nav.class.php"); 	
    require_once($_SERVER['DOCUMENT_ROOT']."/eclipse.org-common/system/menu.class.php"); 	
    $App = new App();
    $Nav = new Nav();
    $Menu = new Menu();
    include($App->getProjectCommon());    
    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Igor Vinnykov
	# Date:			2007-11-16
	#
	# Description: Primary download page
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Subversive - Repository";
	$pageKeywords	= "Subversive, Subversion, SVN, Team Provider, Repository";
	$pageAuthor		= "Igor Vinnykov";
	
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Repository</h1>
		<p>
		    
		</p>
		<div class="homeitem3col">	
			<h3>Repository access</h3>
            <ul>
                <li>
                    <b><a href="http://dev.eclipse.org/svnroot/technology/org.eclipse.subversive">http://dev.eclipse.org/svnroot/technology/org.eclipse.subversive</a></b> - URL for anonymous access. Use this URL if you don't have Subversive committ rights and individual username and password. It allows only read-only access for everyone.
                </li>
                <li>
                    <b><a href="https://dev.eclipse.org/svnroot/technology/org.eclipse.subversive">https://dev.eclipse.org/svnroot/technology/org.eclipse.subversive</a></b> - URL for authenticated access. Use this URL if you are project committer and have idividual username and password. It allows read-only access for everyone and write access for committers.<br/>
                    Note: committers can use SSH protocol as well to connect to the repository.
                </li>
                <li>
                    <b><a href="http://dev.eclipse.org/viewsvn/index.cgi/org.eclipse.subversive/?root=Technology">Repository web access</a></b> - use this if you want to browse repository through web interface.
                </li>
            </ul>
		</div>
		<h2>Frequently asked questions</h2>

		<br/>
		<br/>		
	</div>	

	<div id="rightcolumn">
        $sidebar		
	</div>

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
