@on_trait_change('window:editors[]')
    def _sync_scene_editor_name(self, obj, trait_name, old, new):
        if trait_name.startswith('editors'):
            scenes = list(self.scenes)
            scenes.reverse()
            for editor in new:
                if not hasattr(editor, 'scene'):
                    continue
                for scene in scenes:
                    if id(editor.scene) == id(scene.scene):
                        editor.name = scene.name
                        scene.sync_trait('name', editor, 'name')
                        break
Get list of directories for the target environment using GitPython
dataset/ETHPy150Open enthought/mayavi/mayavi/plugins/envisage_engine.py/EnvisageEngine._sync_scene_editor_name--crossover with--dataset/ETHPy150Open saltstack/salt/salt/utils/gitfs.py/GitPython.dir_list