input: from typing import List
  
  def basic_version_control(lines: List[str]) -> List[str]:
      """ Implements a basic version control system. Takes in a list of lines,
      and provides methods to commit and restore the version of the lines.
      >>> basic_version_control(["print('Hello')", "print('World')"]).commit()
      '1: [print("'Hello'"), print("'World'")]'
      >>> basic_version_control(["print('Hello')", "print('World')", "print('Python')"]).commit()
      '2: [print("'Hello'"), print("'World'"), print("'Python'")]'
      >>> basic_version_control(["print('Hello')", "print('Python')"]).restore()
      ["print('Hello')", "print('World')"]
      """
      def __init__(self, lines):
          self.lines = lines
          self.mark = 0
   
      def commit(self):
          self.mark += 1
          log_file = open("log_file.txt", "a+")
          log_file.write(str(self.mark) + ": " + str(self.lines))
          log_file.close()
   
      def restore(self):
          log_file = open("log_file.txt", "r")
          lines = log_file.readlines()
          to_mark = self.mark-1
          return lines[to_mark]
          log_file.close()
output:     def __init__(self, lines):
          self.lines = lines
          self.mark = 0
          self.versions = []
  
      def commit(self):
          self.mark += 1
          self.versions.append(self.lines.copy())
          return f"{self.mark}: {self.lines}"
  
      def restore(self):
          if self.mark > 0:
              self.mark -= 1
              self.lines = self.versions[self.mark].copy()
          return self.lines