code: def search_for_vcs(self, dependency):  # type: (VCSDependency) -> List[Package]
          
          if dependency.vcs != "git":
              raise ValueError("Unsupported VCS dependency {}".format(dependency.vcs))
  
          tmp_dir = Path(mkdtemp(prefix="pypoetry-git-{}".format(dependency.name)))
  
          try:
              git = Git()
              git.clone(dependency.source, tmp_dir)
              git.checkout(dependency.reference, tmp_dir)
              revision = git.rev_parse(dependency.reference, tmp_dir).strip()
  
              if dependency.tag or dependency.rev:
                  revision = dependency.reference
  
              directory_dependency = DirectoryDependency(
                  dependency.name,
                  tmp_dir,
                  category=dependency.category,
                  optional=dependency.is_optional(),
              )
              for extra in dependency.extras:
                  directory_dependency.extras.append(extra)
  
              package = self.search_for_directory(directory_dependency)[0]
  
              package.source_type = "git"
              package.source_url = dependency.source
              package.source_reference = revision
          except Exception:
              raise
          finally:
              safe_rmtree(str(tmp_dir))
  
          return [package]
docs: Search for the specifications that match the given VCS dependency.
  
          Basically, we clone the repository in a temporary directory
          and get the information we need by checking out the specified reference.