docs: def fetch(self):
          """
          Returns a tuple of the major version together with the
          appropriate SHA and dirty bit (for development version only).
          """
          if self._release is not None:
              return self
  
          self._release = self.expected_release
          if not self.fpath:
              self._commit = self._expected_commit
              return self
  
           # Only git right now but easily extended to SVN, Mercurial, etc.
          for cmd in ['git', 'git.cmd', 'git.exe']:
              try:
                  self.git_fetch(cmd)
                  break
              except EnvironmentError:
                  pass
          return self