Location: PHPKode > projects > SVN Web Control (SWC) > svn_web_control/docu/changes.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Subversion Web Contol (SWC)</title>
	<link rel="stylesheet" type="text/css" href="api/media/style.css" />
	<meta name="keywords" content="sTEFANs" />
	<meta name="robots" content="all" />
	<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<a name="top"></a>
<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
  <tr class="header">
	<td class="header-top-left"><a href="http://www.ebc.bz" target="_blank"><img src="api/media/logo.png" border="0" alt="sTEFANs" /></a></td>
    <td class="header-top-right">Subversion Web Contol (SWC)<br /><div class="header-top-right-subpackage"></div></td>
  </tr>
  <tr><td colspan="2" class="header-line"><img src="api/media/empty.png" width="1" height="2" border="0" alt=""  /></td></tr>
  <tr>
    <td colspan="2" class="header-menu">
    &nbsp;
    </td>
  </tr>
  <tr><td colspan="2" class="header-line"><img src="api/media/empty.png" width="0" height="2" border="0" alt=""  /></td></tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="195" class="menu">
		<div class="package-title">Swc</div>
  <div class="package">
	<div id="ric">
		<p><a href="api/index.html">SWC Documentation</a></p>
	</div>
	</div>
      <b>Changes:</b><br />
  <div class="package">
		<div id="ric">
              <a href="#general">Versioning system</a><br />
    </div>
	</div>
	<br/>
      <b>Version History:</b><br />
  <div class="package">
		<div id="ric">
              <a href="#swc110">SWC v1.1.0</a><br />
              &nbsp;<a href="#mig_110"><b>Important:</b>&nbsp;Migration</a><br />
              <a href="#swc101">SWC v1.0.1</a><br />
    </div>
	</div>
                </td>
    <td>
      <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">

<div align="center"><h1>SVN Web Control Change History</h1></div>
<a name="general"></a>
<h2>Versioning system</h2>
<p>Subversion Web Control (SWC) versions are following the format SWC v&lt;major_version&gt;.&lt;minor_version&gt;.&lt;maintenance_version&gt; 
version number system. The three version numbers of the format are ordered by priority. One number within the version is increased 
with each new version. All numbers having a lower priority are set to zero when a version number with higher priority is increased.
For example, the version is changed first from SWC v1.0.0 to SWC v1.0.1 and then to SWC v1.0.2, but later on to SWC v1.1.0.</p>
<b>Meaning of version numbers</b><br/>
<ul>
	<li><b>Major version:</b>&nbsp;The major version number is increased if significant changes of SWC are applied. Significant changes 
	could be a complete redesign of SWC or the introduction of bigger features. Since backward compatibility is a basic principle
	for SWC development, it is very unlikely that a different major version is backward compatible in means of interfaces and behaviour.</li>
	<li><b>Minor version:</b>&nbsp;A new minor version is released when new smaller features are introduced. For minor versions SWC
	keeps usually backward compatible since only new functionality is introduced. However, complete bachward compatibility for minor versions
	cannot be guaranteed.</li>
	<li><b>Maintenance version:</b>&nbsp;Maintenance versions are used for fixing bugs and solving issues without adding new features.
	Maintenance versions are backward compatible within the same minor version, only the behaviour is changed in order to solve the issue ;-)</li>
</ul>
<p>A new release of SWC gets a new version. But this does not necessarily mean that all files are changed. A file gets only a
new version if it is changed for the particualar version. Unchanged files keep their version number. The concrete version of a 
single file is state within file header and in <a href="api/index.html">SWC API documentation</a>. The "since" tag states the version
the concrete file is created. With this information it should be easy to investigate changes between versions in detail.<br/>
Furthermore, this change history describes the purpose for each version and details about the changes include a list of changed files.</p>
<p>Bugs and issues can be reported via SWC bug trackers on <a href="http://sourceforge.net/tracker/?group_id=163673&atid=828667">Sourceforge.net</a>
(preferred) or <a href="http://svnwebcontrol.tigris.org">Tigris.org</a>. Features and enhancements can be requested on
"Feature Requests" traker on <a href="http://sourceforge.net/tracker/?group_id=163673&atid=828670">Sourceforge.net</a></p>
<br/><a href="#top">Top</a>
<hr class="separator" />

<a name="swc110"></a>
<h2>Changes in SWC v1.1.0</h2>
<ul>
	<li><b>Purpose:</b>&nbsp;New features added.</li>
	<li><a name="mig_110"></a><b>Important:</b>&nbsp;Migration to SWC v1.1.0<br />
		Due to solution of <a href="#1516603">SF #1516603 / Tigris #8 "Enable additional SVN protocols"</a>
		interface and usage of SwcConfig has been change slightly but signifcantly.
		No parse errors will occur but the configuration will not work anymore!
		<br /><br />
		<b>Migration steps</b><br/>
		For each SWC configuration (derived from SwcConfig): 
		<ol>
			<li>The function GetRepositoryRoot must be deleted and GetRepositoryRootDir must be
		renamed to GetRepositoryRoot.</li>
			<li>The function GetWebspaceRootDir must be used, GetWebspaceRoot is deprecated
		and not used anymore.</li>
		</ol><br />
		I'd recommend to cleanup configruation files and switch to SwcConfigAdapter as 
		described in <a href="#1516603">SF #1563682 / Tigris #10</a> below. However, this is an optional step.
	</li>			
	<li><b>New Features:</b>&nbsp;The following features have been added:
		<ul>
			<li><b>Add "Release" function (SF #1516590 / Tigris #7):</b><br/>
				To ease releasing of project files, SWC should support a "release" funtionality.
				The "release" functionality should create a ZIP file and/or a TARball including 
				all project files but no ".svn" subdirectories. The created files should be 
				displayed and downloadable on the result page of the operation.
				The functionality shall be accessable via an according button 
				within SWC's enlarged view.
				<br/><br/>
				<b>Solution:</b><br/>
				SWC offers now the possibility to put the current content of the webspace
				into a file archive called Spaceball. A Spaceball page can be opened using
				the according button on the action bar of SWC. This detail page allows to
				create a Spaceball by specifing a name. Existing Spaceballs are listed beneeth
				and can be downloaded by clicking on its name. The directory where Spaceballs
				resides can be configured within SwcConfig.				
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/index.php<br/>
				swc/tp1_conf.php<br/>
				swc/inc/config.inc.php<br/>
				swc/inc/page.inc.php<br/>
				swc/inc/resources/_default.php<br/>
				swc/inc/resources/de-at.php
				swc/inc/resources/de.php<br/>
				swc/inc/resources/en.php<br/>
				swc/styles/default.css<br/>
				swc/styles/sTEFANs/stefans.css<br/>
				swc/styles/ebc/ebc.css<br/>
				swc/inc/svn_lib.inc.php<br/>
				swc/inc/swc_archive_content.inc.php<br/>
				swc/inc/swc_control_content.inc.php<br/>
				swc/inc/translation.inc.php<br/>
				swc/inc/translation_keys.inc.php<br/>
				swc/inc/utils.inc.php<br/>
				swc/inc/var.inc.php<br/>
				swc/inc/zip.inc.php<br/>
				swc/config/std_config1.inc.php<br/>
				swc/config/std_config2.inc.php<br/>
				<br/>
			</li>
			<li><a name="1516603"></a><b>Enable additional SVN protocols (SF #1516603 / Tigris #8):</b><br/>
				Currently SWC supports only file:// protocol, which implies the the files 
				are available on the same machine where also the WebSpace resists.
				In order to offer a better suport for distributed systems where 
				WebSpace and repository are realized on separate machines, other protocols, 
				namely http://, https://, svn:// should be supported as well.
				<br/><br/>
				<b>Solution:</b><br/>
				Any protocol related to SVN repository can be configured via SWC-Configuration function
				GetRepositoryRoot. The function GetRepositoryRootDir is not used anymore (see
				Migration to SWC 1.1.0). This includes especially file://, http://, https:// 
				svn+ssh:// protocols.
				<br/>
				Tested protocols accessing operating systems running Apache 2 and svnserve:
				Windows XP -> Windows XP: file://, http://, svn://
				Windows XP -> Linux (unspecified): file:// (via Samba), http://, https://, svn://
				Linux -> anywhere: no protocol.<br />
				The reason why this feature was not supported in earlier versions of SWC and why
				it is (currently) not tested on Linux environment is simply because my environment
				quites every request to SVN other than via file:// protocol with a "PROPFIND" error.
				This is definitly an issue of my environment, since other HTTP-based SVN tools
				don't work either with such protocols. Even after searching sleepless nights for
				a reason or even solution I was not able to track down the issue. The online-sources
				I found couldn't unfortunately mitigate the issue. I have still no glue.
				The funny thing is, that everything works fine when I try to access a repository
				via command line client, but when SWC uses the same command line client via PHP
				it results to this error. However it works fine on my Windows XP environment and
				it should work on very most Linux environment as well.	
				<br/><br/>				
				Due to different protocols, also the behaviour of the "Repository" feature changed
				a little bit: Repositories can only be browsed if the repository root points to
				an HTTP URL, the output for any other protocol is a flat list of files within 
				the repository.
				<br/><br/>				
				For Webspaces only file protocol is supported, which makes sense since SWC shall run
				on the machine that provides the webspace to control.			
				<br/><br/>				
				<b>Incompatible interface changes:</b><br/>
					<ul>
						<li><b>swc/config/config.inc.php:</b><br/>
							SwcConfig::GetRepositoryRootDir	replaced by	SwcConfig::GetRepositoryRoot<br/>
							SwcConfig::GetWebspaceRoot replaced by SwcConfig::GetWebspaceRootDir<br/></li>
						<li><b>swc/svn_lib.inc.php:</b><br/>
							function &amp;BuildSvnDirTree(&amp;$paths, &amp;$tree, $max_level, &amp;$idx = 0, $parent_dir = '', &amp;$level = 0)<br/>
							changed to<br/>
							function &amp;BuildSvnDirTree(&amp;$paths, &amp;$tree, $max_level, $parent_dir = '')<br/></li>
					</ul><br />					
				<b>Affected files:</b><br/>
					<b>Important: Any config files.</b><br/>
					Interfaces SwcConfig::GetRepositoryRootDir and
					SwcConfig::GetWebspaceRoot is deprecated and not used anymore. Since 
					SwcConfig::GetRepositoryRootDir was used in previous versions, it needs to be
					renamed to SwcConfig::GetRepositoryRoot. Please see also 
					<a href="#mig_110">Migiration to SWC 1.1.0</a>.			
				<br/><br/>				
					swc/config/std_config1.inc.php<br/>
					swc/config/std_config2.inc.php<br/>
					swc/inc/config.inc.php<br/>
					swc/inc/svn_executor.inc.php<br/>
					swc/inc/svn_lib.inc.php<br/>
					swc/inc/svn_control_content.inc.php<br/>
					swc/inc/svn_details_content.inc.php<br/>
					swc/inc/translation_keys.inc.php<br/>
					swc/inc/resources/_default.php<br/>
					swc/inc/resources/en.php<br/>
					swc/inc/resources/de.php<br/>
					swc/inc/resources/de-at.php<br/><br/>
				</li>
			</ul>
		</li>		
	<li><b>Fixed bugs:</b>&nbsp;The following issues are fixed:
		<ul>
			<li><b>Add "Release" function (SF #1516590 / Tigris #7):</b><br/>
				If SWC is configured for multiple projects it offers a list 
				to select a concrete project. Currently the first project is preselected 
				if no project is choosen. It is not possible to switch to this project immediately.
				If no project is choosen a generic text - e.g. "Please select a project" - 
				shall be displayed as preselection in the project list. 
				If a project is choosen, this list entry shall not be offered.
				<br/><br/>
				<b>Solution:</b><br/>
				Text " - Select a project - " is displayed as first entry of the project list if
				no project is selected. After a project is chosen, this list item is not shown.			
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/inc/swc_control_content.inc.php<br/>
				swc/inc/translation_keys.inc.php<br/>
				swc/inc/resources/de.php<br/>
				swc/inc/resources/de-at.php<br/>
				swc/inc/resources/en.php<br/>
				swc/inc/resources/_default.php<br/><br/>
			</li>
			<li><b>Cookies are not accepted by browser - behave correctly (SF #1516617 / Tigris #5):</b><br/>
				If a browser does not accept cookies SWC behaves not correctly. The reason is 
				that the current state (incl. project selection, user settings, etc.) are dependent on cookies.
				If a borwser does not support cookies, at least SWC should be have 
				correclty during a session. User settings might not be be stored persistently but 
				they should be kept during an ongoing session.
				<br/><br/>
				<b>Solution:</b><br/>
				Cookies are used for sessions and user settings. If the browser does not
				accept cookies, the session ID is appended to the URL. User settings
				are stored in the session in this case as well.
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/inc/page.inc.php<br/>
				swc/inc/user_settings.inc.php<br/><br/>
			</li>
			<li><b>Put SVN command result output underneeth command line (SF #1516586 / Tigris #6):</b><br/>
				Results of SVN commands are currently displayed at the
				bottom of the table that shows details of SVN command
				execution. If a lot of files are changed, the line is
				not visible without scrolling.
				To see at a glance whether the operation was
				successful, the result should be displayed just beneath
				the SVN command line in the result table.
				<br/><br/>
				<b>Solution:</b><br/>
				Done so ;)
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/inc/swc_details_content.inc.php<br/><br/>
			</li>
			<li><b>Provide default implementation for SwcConfig (SF #1563682 / Tigris #10):</b><br/>
				To minimize the effort for configuration, configuration
				methods of interface SwcConfig shall be implemented.
				<br/><br/>
				<b>Solution:</b><br/>
				An abstract class called SwcConfigAdapter is provided within
				file swc/inc/config.inc.php. This class implements methods that
				are usually not changed within concrete project configurations.
				However, different configurations can still be applied by overwriting
				the according methods.
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/inc/config.inc.php<br/>
				swc/config/std_config1.inc.php<br/>
				swc/config/std_config2.inc.php<br/><br/>
			</li>
			<li><b>Project list not shown when project is not cecked out (SF #1568508 / Tigris #11):</b><br/>
				If a project is not checked out, the project list is not shown.
				<br/><br/>
				<b>Solution:</b><br/>
				The project selection list is now also displayed, if more than
				one project is configured but the selected project is not checked out.
				<br/><br/>
				<b>Affected files:</b><br/>
				swc/inc/swc_control_content.inc.php<br/><br/>
			</li>
			<li><b>Fix mini bugs (SF #1585377 / Tigris #12):</b><br/>
				All known mini bugs shall be fixed.
				<br/><br/>
				<b>Solution:</b><br/>
				Fixed hard-coded trunk path for checkout.<br/>
				Fixed missing footer in default help page.<br/>
				Fixed help page display if project is not checked out.<br/>
				Fixed unsecure code in utils.inc.php.<br/>
				Fixed uncought warning when reading not existing spaceball.hints.<br/>
				Fixed typo in translations.<br/><br/>
				<b>Affected files:</b><br/>
				swc/index.php<br/>
				swc/swc_help_page.php<br/>
				swc/inc/swc_archive_content.inc.php<br/>
				swc/inc/svn_lib.inc.php<br/>
				swc/inc/utils.inc.php<br/>
				swc/inc/resources/de.php<br/>
				swc/inc/resources/de-at.php<br/>
				swc/inc/resources/en.php<br/>
				swc/inc/resources/_default.php<br/><br/>
			</li>
		</ul>
	</li>
</ul>
<a href="#top">Top</a>
		    <hr class="separator" />

<a name="swc110"></a>
<h2>Changes in SWC v1.0.1</h2>
<ul>
	<li><b>Purpose:</b>&nbsp;Maintenance release to make SWC compliant to PHP5 strict standards.
	</li>
	<li><b>Details:</b> The following issues are fixed.
		<ul>
			<li><b>Parts of the code does not comply to PHP Strict rules. (SF #1463764 / Tigris #3):</b><br/>
				Violations with message "Strict Standards: Only variable references 
				should be returned by reference" are known in affected files.<br/>
				<b>Affected files:</b><br/>
				swc/inc/svn_executor.inc.php on line 60<br/>
				swc/inc/svn_lib.inc.php on line 264<br/>
				swc/inc/svn_lib.inc.php on line 277<br/>
				swc/inc/svn_lib.inc.php on line 290<br/><br />
				These violations shall be removed.</li>
			<li><b>Wrong text if no project is configured. (SF #1463767 / Tigris #2):</b><br/>
				Wrong text if no project is configured.
				If SWC is opened without a specified project, the
				character '%s' as placeholder for the project title is
				displayed within the error text. A text without this
				placeholder shall be displayed if no project is selected.</li>
		</ul>
	</li>
</ul>
<a href="#top">Top</a>
		    <hr class="separator" />

This software was created by <img src="api/media/sTEFANs-sig.jpg" alt="sTEFANs"></img> POWERED BY <a href="http://www.ebc.bz" target="_blank"><img src="api/media/eBC.bz-logo-small.jpg" alt="eBC.bz"></img></a>.
<br />
        <div class="credit">
		    <hr class="separator" />
		    Documentation generated on Tue, 27 Jun 2006 21:06:54 +0200 by <a href="http://www.phpdoc.org">phpDocumentor 1.3.0RC6</a><br>
	      </div>
      </td></tr></table>
    </td>
  </tr>
</table>

</body>
</html>
Return current item: SVN Web Control (SWC)