示例#1
0
    def _apply_patch(self, file_path, theirs_file):
        entry = self.get_entry(file_path)

        my_file = entry.get_file_path()
        origin_file = entry.get_origin_path()

        editor.save_current_file()

        view_state = editor.get_window_view_state()

        placeholder = utils.write_placeholder(
            my_file,
            editor.get_cursor()[0]
        )

        merged_contents = diff.diff3(my_file, origin_file, theirs_file)
        with open(my_file, 'w') as file:
            file.write(merged_contents)

        line_number = utils.extract_placeholder(
            my_file,
            placeholder,
        )

        editor.move_cursor(line_number, editor.get_cursor()[1], view_state)

        self._save_origin(theirs_file)

        os.unlink(theirs_file)
示例#2
0
    def commit(self):
        if not editor.is_current_file_modified():
            return

        editor.save_current_file()

        entry = self.get_entry(editor.get_current_file_path())

        ash.upload_review(
            self._review_url,
            editor.get_current_file_path(),
            entry.get_name_in_review(),
            entry.get_origin_path()
        )

        ash.get_review_into_file(
            self._review_url,
            entry.get_name_in_review(),
            entry.get_file_path(),
        )

        self._save_origin(entry.get_file_path())

        editor.reopen_current_file()
        editor.redraw()