Introduction
phpEasyVCS is a simple version control system (VCS) and WebDAV server with minimal hosting requirements:
PHP 5.2+
No database is needed.
Files can be viewed and uploaded with a browser or by WebDAV.
License: GPLv3
If you want to see the web interface of phpEasyVCS, either
see the Screenshots or
go to the Demo site (login with username demo and password demo). You may only upload files up to 50kB and the data will be purged regularly.
Download
You can download phpEasyVCS from Sourceforge.
Installation
Copy phpEasyVCS to a directory on your server, e.g. easyvcs.
Browse to http(s)://your.server/easyvcs-dir/index.php (replace your.server and easyvcs-dir with your server and installation directory) and fill out the settings form.
You can also create additional users on the Users tab.
Depending on your server settings, the authorization header might not reach PHP. In case of Apache you can add the following rewrite rule to your .htaccess:
RewriteEngineonRewriteBase/RewriteRule.*-[E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
You can also create additional repositories by
creating a new directory in the data folder (on the same level as the default folder)
editing the user(s) to give them access to the additional repository - you have to reenter the password for this
Usage
Independent of the access type the user has to identify himself with his user name and password. If the user has access to multiple repositories, he must prefix the user name with the repository name and a backslash, e.g. "specialrepository\max", otherwise it is not sure, into which repository he will be logged in.
Web Browser
Browse to http(s)://your.server/easyvcs-dir/index.php (replace your.server and easyvcs-dir with your server and installation directory).
You can browse the VCS, create tags to browse the VCS at a specific date, view versions, revert a file to a version, etc.
The web access will work
with Javascript switched off (no syntax highlighting, page reload on many actions),
with Javascript activated,
with Javascript and Java plugin activated and the Java applet loaded you can upload whole directories and get progress bars during upload.
To enable Java and experience the least warnings possible:
Download and install Java from java.com,
in your favorite browser (which should support the Java plugin), go to the plugins page (e.g. in Firefox Tools/Add-ons/Plugins) and make sure that the Java plugin will either Always Activate orAsk to Activate,
open the Java Plugin Control Panel (Windows: in Start/Programs, Linux Gnome: search for "java" in your Gnome menu) and set Security/Security Level to medium and add your phpEasyVCS web site URL to the website exceptions.
Using the navigation item Profile the user can change his password and switch the repository, if he has access to multiple repositories.
WebDAV
Use http(s)://your.server/easyvcs-dir/webdav.php for WebDAV access. The actual syntax may vary depending on your operating system and WebDAV program.
The root level of the WebDAV drive shows at least the directory current, which represents the currently saved files. You will also see the tags created in the web interface, which represent read-only views of your VCS at a specific time. Additionally you can view the VCS at a specific point in time by manually specifying a date and time in the format YYYY-MM-DD or YYYY-MM-DDTHH:MM, e.g.http://your.server/easyvcs-dir/webdav.php/2011-01-01 or http://your.server/easyvcs-dir/webdav.php/2011-01-01T16:00 (this might not work with your WebDAV client).
Linux
Enter the following URL in Nautilus or Caja: dav://your.server/easyvcs-dir/webdav.php
If this does not work, connect explicitely by use of its menu File/Connect to Server and set Server to your.server, type to WebDAV (HTTP) or Secure WebDAV (HTTPS), path to easyvcs-dir/webdav.php and enter your user name and password.
You can also connect using Gnome Commander: set type to WebDAV, server to your.server and remote directory to /easyvcs-dir/webdav.php.
Or install davfs2 and mount the WebDAV, e.g.:
sudo apt-get install davfs2
sudo mkdir/media/easyvcs
sudo mount-t davfs http://your.server/easyvcs-dir/webdav.php /media/easyvcs
You probably need to add options like -o rw,user,uid=myusername to be able to write, too.
Windows XP
Preparation:
Download and install KB907306 for web folders
To use basic authentication, set the DWORD registry entry UseBasicAuth in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters to 1and restart Windows.
Goto explorer - Tools - Map Network Drive - Connect to a Web site and enter http://your.server/easyvcs-dir/webdav.php as URL
Or goto explorer - Tools - Map Network Drive and directly add http://your.server/easyvcs-dir/webdav.php as folder (this only seems to work if your phpEasyVCS installation requires no authentication)
Windows Vista/Windows 7
Preparation:
Go to Settings in your phpEasyVCS instance and make sure that authentication method is Digest.
Or, if you really want to use Basic authentication, follow the steps in KB841215: Set the DWORD registry entry BasicAuthLevel inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters to 2 and restart Windows.
Goto explorer - Map Network Drive - Connect to a Web site and enter http://your.server/easyvcs-dir/webdav.php as URL.
Alternatives for Windows XP/Windows Vista/Windows 7
TotalCommander has a WebDAV plugin.
BitKinex - All-in-one FTP/SFTP/HTTP/WebDAV Client (Freeware)
When setting up the connection you need to specify first the server and then set easyvcs-dir/webdav.php as default directory.
NetDrive (free for home use): You can assign a drive letter to the WebDAV drive and use it like a local drive.
Problem Solving
The following is a list of problems with various WebDAV clients:
With Nautilus you get an error message when moving/renaming (this is a Nautilus bug). But the move is executed correctly and you will see it after a refresh (F5).
Windows XP: opening a file from a WebDAV drive, which is NOT mapped to a drive letter, will only work, if the opening program is WebDAV aware, like Microsoft Word.
Windows 7: Although connecting to a WebDAV drive without authentication by http works perfectly, connecting to the same WebDAV drive with basic authentication set up only displays grayed out entries, clicking on a file or folder will do nothing.
Comparison with other VCSes
phpEasyVCS is the only VCS which
is implemented in pure PHP,
stores the data in the file system, and
offers WebDAV access.