Add statusmapper method instead of 4 times same logic
Merge symlink fix for conflict resolving

Jasper
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# testament_sha1: 2e697a62696cecf29c5587aca29a02191d861994
# timestamp: 2008-07-12 02:53:36 +0200
# source_branch: https://code.launchpad.net/~bzr-gtk/bzr-gtk/trunk
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'olive/__init__.py'
--- olive/__init__.py	2008-07-01 21:56:25 +0000
+++ olive/__init__.py	2008-07-12 00:46:48 +0000
@@ -308,7 +308,7 @@
                 
                 # We're local
                 try:
-                    self.wt, self.wtpath = WorkingTree.open_containing(path)
+                    self.wt, self.wtpath = WorkingTree.open_containing(os.path.realpath(path))
                 except (bzrerrors.NotBranchError, bzrerrors.NoWorkingTree):
                     self.notbranch = True
                 
@@ -998,6 +998,16 @@
         
         # Add'em to the ListStore
         for item in dirs:
+            status = ''
+            st = ''
+            fileid = ''
+            if not self.notbranch:
+                filename = self.wt.relpath(self.path + os.sep + item)
+                    
+                st, status = self.statusmapper(filename, delta)
+                if not ignored_files and status == 'ignored':
+                    continue
+            
             try:
                 statinfo = os.stat(self.path + os.sep + item)
             except OSError, e:
@@ -1008,62 +1018,23 @@
             liststore.append([ gtk.STOCK_DIRECTORY,
                                True,
                                item,
-                               '',
-                               '',
+                               st,
+                               status,
                                "<DIR>",
                                "<DIR>",
                                statinfo.st_mtime,
                                self._format_date(statinfo.st_mtime),
                                ''])
         for item in files:
-            status = 'unknown'
+            status = ''
+            st = ''
             fileid = ''
             if not self.notbranch:
                 filename = self.wt.relpath(self.path + os.sep + item)
                 
-                try:
-                    self.wt.lock_read()
-                    
-                    for rpath, rpathnew, id, kind, text_modified, meta_modified in delta.renamed:
-                        if rpathnew == filename:
-                            status = 'renamed'
-                            fileid = id
-                    for rpath, id, kind in delta.added:
-                        if rpath == filename:
-                            status = 'added'
-                            fileid = id
-                    for rpath, id, kind in delta.removed:
-                        if rpath == filename:
-                            status = 'removed'
-                            fileid = id
-                    for rpath, id, kind, text_modified, meta_modified in delta.modified:
-                        if rpath == filename:
-                            status = 'modified'
-                            fileid = id
-                    for rpath, id, kind in delta.unchanged:
-                        if rpath == filename:
-                            status = 'unchanged'
-                            fileid = id
-                    for rpath, file_class, kind, id, entry in self.wt.list_files():
-                        if rpath == filename and file_class == 'I':
-                            status = 'ignored'
-                finally:
-                    self.wt.unlock()
-            
-            if status == 'renamed':
-                st = _i18n('renamed')
-            elif status == 'removed':
-                st = _i18n('removed')
-            elif status == 'added':
-                st = _i18n('added')
-            elif status == 'modified':
-                st = _i18n('modified')
-            elif status == 'unchanged':
-                st = _i18n('unchanged')
-            elif status == 'ignored':
-                st = _i18n('ignored')
-            else:
-                st = _i18n('unknown')
+                st, status = self.statusmapper(filename, delta)
+                if not ignored_files and status == 'ignored':
+                    continue
             
             try:
                 statinfo = os.stat(self.path + os.sep + item)
@@ -1291,7 +1262,7 @@
             # Try to open the working tree
             notbranch = False
             try:
-                tree1 = WorkingTree.open_containing(path)[0]
+                tree1 = WorkingTree.open_containing(os.path.realpath(path))[0]
             except (bzrerrors.NotBranchError, bzrerrors.NoWorkingTree):
                 notbranch = True
             
@@ -1303,6 +1274,16 @@
                 
             # Add'em to the ListStore
             for item in dirs:
+                status = ''
+                st = ''
+                fileid = ''
+                if not notbranch:
+                    filename = tree1.relpath(os.path.realpath(path) + os.sep + item)
+                    
+                    st, status = self.statusmapper(filename, delta)
+                    if not ignored_files and status == 'ignored':
+                        continue
+                
                 try:
                     statinfo = os.stat(self.path + os.sep + item)
                 except OSError, e:
@@ -1310,67 +1291,26 @@
                         continue
                     else:
                         raise
-                liststore.append([gtk.STOCK_DIRECTORY,
-                                  True,
-                                  item,
-                                  '',
-                                  '',
-                                  "<DIR>",
-                                  "<DIR>",
-                                  statinfo.st_mtime,
-                                  self._format_date(statinfo.st_mtime),
-                                  ''])
+                liststore.append([ gtk.STOCK_DIRECTORY,
+                                   True,
+                                   item,
+                                   st,
+                                   status,
+                                   "<DIR>",
+                                   "<DIR>",
+                                   statinfo.st_mtime,
+                                   self._format_date(statinfo.st_mtime),
+                                   ''])
             for item in files:
-                status = 'unknown'
+                status = ''
+                st = ''
                 fileid = ''
                 if not notbranch:
-                    filename = tree1.relpath(path + os.sep + item)
+                    filename = tree1.relpath(os.path.realpath(path) + os.sep + item)
                     
-                    try:
-                        self.wt.lock_read()
-                        
-                        for rpath, rpathnew, id, kind, text_modified, meta_modified in delta.renamed:
-                            if rpathnew == filename:
-                                status = 'renamed'
-                                fileid = id
-                        for rpath, id, kind in delta.added:
-                            if rpath == filename:
-                                status = 'added'
-                                fileid = id
-                        for rpath, id, kind in delta.removed:
-                            if rpath == filename:
-                                status = 'removed'
-                                fileid = id
-                        for rpath, id, kind, text_modified, meta_modified in delta.modified:
-                            if rpath == filename:
-                                status = 'modified'
-                                fileid = id
-                        for rpath, id, kind in delta.unchanged:
-                            if rpath == filename:
-                                status = 'unchanged'
-                                fileid = id
-                        for rpath, file_class, kind, id, entry in self.wt.list_files():
-                            if rpath == filename and file_class == 'I':
-                                status = 'ignored'
-                    finally:
-                        self.wt.unlock()
-                
-                if status == 'renamed':
-                    st = _i18n('renamed')
-                elif status == 'removed':
-                    st = _i18n('removed')
-                elif status == 'added':
-                    st = _i18n('added')
-                elif status == 'modified':
-                    st = _i18n('modified')
-                elif status == 'unchanged':
-                    st = _i18n('unchanged')
-                elif status == 'ignored':
-                    st = _i18n('ignored')
-                    if not ignored_files:
+                    st, status = self.statusmapper(filename, delta)
+                    if not ignored_files and status == 'ignored':
                         continue
-                else:
-                    st = _i18n('unknown')
                 
                 try:
                     statinfo = os.stat(self.path + os.sep + item)
@@ -1475,6 +1415,53 @@
         # Set sensitivity
         self.set_sensitivity()
 
+    def statusmapper(self, filename, delta):
+        status = 'unknown'
+        try:
+            self.wt.lock_read()
+            
+            for rpath, rpathnew, id, kind, text_modified, meta_modified in delta.renamed:
+                if rpathnew == filename:
+                    status = 'renamed'
+                    fileid = id
+            for rpath, id, kind in delta.added:
+                if rpath == filename:
+                    status = 'added'
+                    fileid = id
+            for rpath, id, kind in delta.removed:
+                if rpath == filename:
+                    status = 'removed'
+                    fileid = id
+            for rpath, id, kind, text_modified, meta_modified in delta.modified:
+                if rpath == filename:
+                    status = 'modified'
+                    fileid = id
+            for rpath, id, kind in delta.unchanged:
+                if rpath == filename:
+                    status = 'unchanged'
+                    fileid = id
+            for rpath, file_class, kind, id, entry in self.wt.list_files():
+                if rpath == filename and file_class == 'I':
+                    status = 'ignored'
+        finally:
+            self.wt.unlock()
+    
+        if status == 'renamed':
+            st = _i18n('renamed')
+        elif status == 'removed':
+            st = _i18n('removed')
+        elif status == 'added':
+            st = _i18n('added')
+        elif status == 'modified':
+            st = _i18n('modified')
+        elif status == 'unchanged':
+            st = _i18n('unchanged')
+        elif status == 'ignored':
+            st = _i18n('ignored')
+        else:
+            st = _i18n('unknown')
+        return st, status
+
     def _harddisks(self):
         """ Returns hard drive letters under Win32. """
         try:

# Begin bundle
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

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to