[Erp5-report] r6801 - /erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Apr 19 14:46:26 CEST 2006


Author: chris
Date: Wed Apr 19 14:46:24 2006
New Revision: 6801

URL: http://svn.erp5.org?rev=6801&view=rev
Log:
- improved debug output in copytree function
- sort list before svn add/del because order is important

Modified:
    erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py

Modified: erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py?rev=6801&r1=6800&r2=6801&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py (original)
+++ erp5/trunk/products/ERP5Subversion/Tool/SubversionTool.py Wed Apr 19 14:46:24 2006
@@ -101,7 +101,7 @@
             else:
                 copy(srcname, dstname)
         except (IOError, os.error), why:
-            errors.append((srcname, dstname, why))
+            errors.append((srcname, dstname, 'Error: ' + str(why.strerror)))
     if errors:
         raise Error, errors
 
@@ -767,8 +767,9 @@
         dirs.remove('.svn')
       # get Directories
       for name in dirs:
+        i = root.replace(directory, '').count(os.sep)
         f = os.path.join(root, name)
-        dir_set.add(f.replace(directory,''))
+        dir_set.add((i, f.replace(directory,'')))
     return dir_set
       
   # return a set with files present in the directory
@@ -779,9 +780,10 @@
       if '.svn' in dirs:
         dirs.remove('.svn')
       # get Files
-      for name in files: 
+      for name in files:
+        i = root.replace(directory, '').count(os.sep)
         f = os.path.join(root, name)
-        dir_set.add(f.replace(directory,''))
+        dir_set.add((i, f.replace(directory,'')))
     return dir_set
   
   # return files present in new_dir but not in old_dir
@@ -793,6 +795,9 @@
       new_dir += os.sep
     old_set = self.getSetFilesForDir(old_dir)
     new_set = self.getSetFilesForDir(new_dir)
+    LOG("chrisold", 1, old_set)
+    LOG("chrisnew", 1, new_set)
+    LOG("chrisdiff", 1, new_set.difference(old_set))
     return new_set.difference(old_set)
 
   # return dirs present in new_dir but not in old_dir
@@ -813,8 +818,12 @@
     # detect removed directories
     dirs_set = self.getNewDirs(new_dir, old_dir)
     # svn del
-    self.remove([os.path.join(old_dir, x) for x in files_set])
-    self.remove([os.path.join(old_dir, x) for x in dirs_set])
+    list = [x for x in files_set]
+    list.sort()
+    self.remove([os.path.join(old_dir, x[1]) for x in list])
+    list = [x for x in dirs_set]
+    list.sort()
+    self.remove([os.path.join(old_dir, x[1]) for x in list])
   
   # copy files and add new files
   def addNewFiles(self, old_dir, new_dir, bt):
@@ -826,8 +835,12 @@
     #os.system('cp -af %s/* %s'%(new_dir, old_dir))
     copytree(new_dir, old_dir)
     # svn add
-    self.add([os.path.join(old_dir, x) for x in dirs_set])
-    self.add([os.path.join(old_dir, x) for x in files_set])
+    list = [x for x in dirs_set]
+    list.sort()
+    self.add([os.path.join(old_dir, x[1]) for x in list])
+    list = [x for x in files_set]
+    list.sort()
+    self.add([os.path.join(old_dir, x[1]) for x in list])
   
   def treeToXML(self, item) :
     output = "<?xml version='1.0' encoding='iso-8859-1'?>"+ os.linesep




More information about the Erp5-report mailing list