input: from typing import List
  
  def VersionControl(lines: List[str]) -> versionControl:
      """
      Implements a basic version control system that keeps track of changes in the code by maintaining a list of changes called "lines". 
      The system allows for a commit of changes, which increments the version marker and logs the current state of the list, and a restore 
      that sets the current state of the list to the one saved at the version immediately before the current one.
      
      Example:
      >>> vcs = VersionControl(['a', 'b', 'c'])
      >>> vcs.commit()
      >>> vcs.lines.append('d')
      >>> vcs.commit()
      >>> vcs.restore()
      >>> vcs.lines
      ['a', 'b', 'c']
      """
      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()
output:     class versionControl:
          def __init__(self, lines):
              self.lines = lines
              self.mark = 0
              self.history = []
      
          def commit(self):
              self.mark += 1
              self.history.append(self.lines[:])
      
          def restore(self):
              if self.mark > 1:
                  self.mark -= 1
                  self.lines = self.history[self.mark - 1][:]