input: from typing import List
  
  
  class VersionControl:
      def __init__(self, lines: List[str]):
          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()
  
  ### Example:
  
  vc = VersionControl(["a", "b", "c"])
  vc.commit()
  vc.commit()
  vc.restore()
  assert vc.lines == '2: ["a", "b", "c"]'
  
output:     def restore(self):
          log_file = open("log_file.txt", "r")
          lines = log_file.readlines()
          log_file.close()
          
          if self.mark > 0 and self.mark <= len(lines):
              self.lines = eval(lines[self.mark - 1].split(": ", 1)[1])
          else:
              raise ValueError("Invalid mark for restore")