'Stages add/removals to git.'

def stage_paths(self, paths):

    if (not paths):
        self.stage_all()
        return
    add = []
    remove = []
    for path in set(paths):
        if core.exists(path):
            if path.endswith(u'/'):
                path = path.rstrip(u'/')
            add.append(path)
        else:
            remove.append(path)
    self.notify_observers(self.message_about_to_update)
    if add:
        self._sliced_add(add)
    if remove:
        while remove:
            self.git.add(u'--', u=True, *remove[:42])
            remove = remove[42:]
    self._update_files()
    self.notify_observers(self.message_updated)
