input: 
  from typing import List
  
  def VersionControl(lines: List[str]) -> None:
      """ Implement a basic version control system in Python that keeps track of changes in the code.
      Given a list of code lines, the function should allow committing changes and restoring to 
      previous versions. Each commit increments a version mark and logs the current state of the 
      code. The restore function should revert to the last committed version of the code.
      
      >>> lines = ['def function():', '    return "Hello, World!"']
      >>> vc = VersionControl(lines)
      >>> vc.commit()
      >>> lines = ['def function():', '    return "Goodbye, World!"']
      >>> vc.commit()
      >>> vc.restore()
      >>> print(vc.lines)
      ['def function():', '    return "Hello, World!"']
      """
  
output:     
  class VersionControl:
      def __init__(self, lines: List[str]):
          self.lines = lines
          self.versions = []
          self.current_version = -1
  
      def commit(self) -> None:
          self.versions.append(self.lines[:])
          self.current_version += 1
  
      def restore(self) -> None:
          if self.current_version >= 0:
              self.lines = self.versions[self.current_version]
              self.versions = self.versions[:self.current_version + 1]
          else:
              raise ValueError("No versions to restore")
  