Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Changed error message reported on failure to find a match for a dependency in a Git repo to be more consistent with that reported on failure to find a match for the dependency in any binary repo.

  1. … 4 more files in changeset.
Added a `GitHttpRepository` fixture, which allows test to make assertion about the interactions with the Git server. This is important for performance reasons. Changed a test class to use this instead of a file repo.

    • -0
    • +211
    ./vcs/fixtures/GitFileRepository.java
    • -0
    • +140
    ./vcs/fixtures/GitHttpRepository.java
    • -173
    • +9
    ./vcs/fixtures/GitRepository.java
  1. … 12 more files in changeset.
Added some support for dynamic version selectors to source dependency resolution.

This change duplicates the logic that implements the same feature for binary dependencies. This duplicate implementation is incomplete and behaves differently to the implementation for binary dependencies. This is intended to be a place holder and a later change will move the source dependency resolver to a location where both source and binary dependency resolution can share the same implementation of the selection logic (plus a bunch of other missing capabilities).

  1. … 8 more files in changeset.
Add coverage for recursive submodules in source dependencies

  1. … 3 more files in changeset.
Add support for cloning/updating submodules in source dependencies

  1. … 3 more files in changeset.
Simplify uses of GitRepository.commit()

The different File-taking overloads weren't that useful. You almost

always want to commit everything.

  1. … 1 more file in changeset.
Simplify uses of GitRepository.commit()

The different File-taking overloads weren't that useful. You almost

always want to commit everything.

    • -34
    • +16
    ./vcs/fixtures/GitRepository.java
  1. … 8 more files in changeset.
Add coverage for checking out Git repos with submodules

  1. … 2 more files in changeset.
Update integration tests to expect checkout directory in another location

Signed-off-by: Sterling Greene <sterling@gradle.com>

  1. … 4 more files in changeset.
Throw an error when nested builds define conflicting source dependency rules

  1. … 7 more files in changeset.
Cache `latest.integration` selected version for source dependency

  1. … 5 more files in changeset.
Add close() to GitRepository

Add test for grgit plugin to smoke tests

  1. … 1 more file in changeset.
Revert "Remove jgit as a dependency for now"

This reverts commit 44153103683c94bd30d0ace6f7aa9584b40e5149.

    • -0
    • +104
    ./vcs/fixtures/GitRepository.java
  1. … 6 more files in changeset.
Remove jgit as a dependency for now

    • -104
    • +0
    ./vcs/fixtures/GitRepository.java
  1. … 6 more files in changeset.
Add test coverage for transitive source dependencies

If root -> first -> second, the root build should contain

VCS mappings for all builds.

- first will be cloned and added as an implicit build

- second will be cloned and added as an implicit build

  1. … 1 more file in changeset.
Refactor populate to return working directory

In an attempt to implement locking of the git clone directory in

gradle/gradle-native#146, we realized that the directory locking

mechanism writes a lock file into the directory being locked. That

lock file prevents jGit from cloning into the directory because it

expects directories to be empty when they are the target of a clone

operation.

This change moves the responsibility for calculating the path to the

working directory into the VersionControlSystem and provides the

populate method with a parent directory which can be the target of

locking.

Part of gradle/gradle-native#146

  1. … 6 more files in changeset.
Address review feedback

  1. … 11 more files in changeset.
Add a GitVersionRef and implement getAvailableVersions

This should provide everything needed to make progress on

gradle/gradle-native#87

Part of gradle/gradle-native#88

  1. … 3 more files in changeset.
Add version ref to Vcs populate

    • -0
    • +85
    ./vcs/fixtures/GitRepository.java
    • -79
    • +0
    ./vcs/fixtures/TemporaryGitRepository.java
  1. … 13 more files in changeset.
Downgrade to last version of JGit to support Java 7

    • -1
    • +1
    ./vcs/fixtures/TemporaryGitRepository.java
  1. … 2 more files in changeset.
Remove dependency on JGit test fixture

- Use our own fixture that drives Git itself

- We can control where the temporary files live and use our

other fixtures (e.g., TestFile)

    • -30
    • +34
    ./vcs/fixtures/TemporaryGitRepository.java
  1. … 3 more files in changeset.
Move more logic into the TemporaryGitRepository fixture

We don't have to expose the whole fine-grained API used in the JGit

unittests to meet our needs for testig Gradle code. This narrower

API allows us to reuse more logic.

    • -151
    • +24
    ./vcs/fixtures/TemporaryGitRepository.java
  1. … 1 more file in changeset.
Spike a GitVersionControlSystem

This spike just shows as a proof of concept how we can generically

approach version control system integration. This spike demonstrates:

* The use of a `VersionControlSpec` to define the url of the

remote repository.

* The use of a `VersionControlSystem` as the high-level abstraction

for all version control systems.

* A *very* rudimentary implementation of the `populate` method

for a `GitVersionControlSystem`

* An initial fixture for testing our Git integration.

The spike does not yet cover:

* How to get an instance of the correct type of version control

system based on the type of the version control spec that was

provided. But, we'll probably use some version control

system registry.

* Sophisticated handling for many common scenarios when

populating a working directory from a repository.

* Working directory exists and has correct remote.

* Working directory exists but is not a git repository.

* Working directory exists but has other remote.

* Multiple working directories for the same remote.

* Poorly formed user-input.

Related to https://github.com/gradle/gradle-native/issues/107

    • -0
    • +202
    ./vcs/fixtures/TemporaryGitRepository.java
  1. … 9 more files in changeset.