MTrack/SCM/WorkingCopy.php
authorAlan Knowles <alan@akbkhome.com>
Tue, 6 Sep 2011 08:43:46 +0000 (16:43 +0800)
committerAlan Knowles <alan@akbkhome.com>
Tue, 6 Sep 2011 08:43:46 +0000 (16:43 +0800)
MTrack/SCM/WorkingCopy.php

index e69de29..2f2c834 100644 (file)
@@ -0,0 +1,52 @@
+<?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;
+        
+        
+    }
+    
+    
+}