+<?php
+require_once 'MTrack/Changeset.php';
+
+abstract class MTrack_SCM_WorkingCopy {
+ public $dir;
+
+ /** returns the root dir of the working copy */
+ function getDir() {
+ return $this->dir;
+ }
+
+ /** add a file to the working copy */
+ abstract function addFile($path);
+ /** removes a file from the working copy */
+ abstract function delFile($path);
+ /** commit changes that are pending in the working copy */
+ abstract function commit(MTrackChangeset $CS);
+ /** get an MTrackSCMFile representation of a file */
+ abstract function getFile($path);
+
+ /** enumerates files in a path in the working copy */
+ function enumFiles($path)
+ {
+ return scandir($this->dir . DIRECTORY_SEPARATOR . $path);
+ }
+
+ /** determines if a file exists in the working copy */
+ function file_exists($path)
+ {
+ return file_exists($this->dir . DIRECTORY_SEPARATOR . $path);
+ }
+
+ function __destruct()
+ {
+ if (strlen($this->dir) > 1) {
+ require_once 'System.php';
+ echo "rmdir {$this->dir}";
+
+ //System::rmdir($this->dir, '-r');
+ }
+ }
+ function generateTempDir()
+ {
+ $tn = tempnam(ini_get('session.save_path'),'mtrackworkingdir');
+ unlink($tn);
+ return $tn;
+
+
+ }
+
+
+}