input: Write a function to implement a basic version control system in Python that keeps track of changes in the code. The function should include an `__init__` method to initialize the version control system with the initial lines of code, a `commit` method to log changes by incrementing a marker and storing the current state of the code, and a `restore` method to revert the code to a previous state based on the marker.
  
  class VersionControl:
      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
   
          self.lines = lines[to_mark]
          log_file.close()
  
  # Test cases
  vc = VersionControl(["print('Hello, World')", "x = 5"])
  vc.commit()
  vc.lines = ["print('Hello, Python')", "y = 10"]
  vc.commit()
  assert vc.lines == ["print('Hello, Python')", "y = 10"]
  vc.restore()
  assert vc.lines == ["print('Hello, World')", "x = 5"]
  assert vc.mark == 2
output: 
  class VersionControl:
      def __init__(self, lines):
          self.lines = lines
          self.mark = 0
          self.log = []
          self.commit()
  
      def commit(self):
          self.mark += 1
          self.log.append((self.mark, self.lines[:]))
  
      def restore(self, mark=None):
          if mark is None:
              mark = self.mark - 1
          for m, lines in self.log:
              if m == mark:
                  self.lines = lines[:]
                  self.mark = m
                  break
  