def vcs_checkin(self):
        try:
            cwd = os.getcwd()
            os.chdir(self.PROD_DIR)
            command_str = "svn add --force .".format(self.PROD_DIR)
            stdout, stderr, returncode = self.shell_out(
                command_str, message='failed to add files'
            )
            if self.detect_conflict():  # Will call svn up
                self.resolve_conflict()
                return False
        finally:
            os.chdir(cwd)  # go back!
            self.log("Changing cwd to {0}".format(cwd))

        lines_changed = self.svn_lines_changed(self.PROD_DIR)
        self.svn_sanity_check(lines_changed)
        if lines_changed == (0, 0):
            self.log("PUSH_TO_PROD is True but "
                     "svn_lines_changed found that no lines differ "
                     "from last svn checkin.")
        else:
            config_lines_changed = self.svn_lines_changed(
                os.path.join(self.PROD_DIR, 'config')
            )
            config_lines_removed = config_lines_changed[1]
            if config_lines_removed > MAX_ALLOWED_CONFIG_LINES_REMOVED:
                if self.FORCE:
                    self.log("Config sanity check failed but "
                             "FORCE == True. Ignoring thresholds.")
                else:
                    raise BuildError(
                        "Wow! Too many lines removed from the config dir ({0} "
                        "lines removed). Manually make sure this commit is "
                        "okay.".format(config_lines_removed)
                    )

            self.log("PUSH_TO_PROD is True. Checking into "
                     "svn.")
            self.svn_checkin(lines_changed)

        return True
:returns: success, whether or not the checkin was successful
dataset/ETHPy150Open mozilla/inventory/mozdns/mozbind/builder.py/SVNBuilderMixin.vcs_checkin