org.gradle.vcs

## Interface VersionControlSystem

-     @Incubating
      public interface VersionControlSystem

  Allows the user to perform generic version control operations in ways specified by the underlying implementations.
  Since:
    4.4

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<VersionRef>` | `getAvailableVersions(VersionControlSpec spec)` Returns a `Set` of `VersionRef`s representing versions of a software package as they are known to the version control system.
    `File` | `populate(File versionDir, VersionRef ref, VersionControlSpec spec)` Populates a working directory under `versionDir` with the latest state of the version control repository from the `spec` and returns the working directory.

- - ### Method Detail

    - #### getAvailableVersions

          Set<VersionRef> getAvailableVersions(VersionControlSpec spec)

      Returns a `Set` of `VersionRef`s representing versions of a software package as they are known to the version control system.

    - #### populate

          File populate(File versionDir,
                        VersionRef ref,
                        VersionControlSpec spec)

      Populates a working directory under `versionDir` with the latest state of the version control repository from the `spec` and returns the working directory.