Chromium Code Reviews| Index: utils/pub/git_source.dart |
| diff --git a/utils/pub/git_source.dart b/utils/pub/git_source.dart |
| index 22c5c5500bc45a86ebeb434d3efeb7f370ee1134..3f346f66b527d1665c710c19f171b79ea5ed4fbf 100644 |
| --- a/utils/pub/git_source.dart |
| +++ b/utils/pub/git_source.dart |
| @@ -8,9 +8,12 @@ |
| class GitSource extends Source { |
| final String name = "git"; |
| - // TODO(nweiz): this should be cached since it uses the network, but until we |
| - // support versions there's no good way to distinguish between different |
| - // checkouts of the same repository. |
| + // TODO(rnystrom): Git packages could in theory be cached, but that adds a |
| + // lot of complexity. When you install a git package, you are installing |
| + // and pinning to a specific commit. That means different installs of the |
| + // same git path but at different commits need to be disambiguated in the |
| + // system cache. It may also lead to a lot of garbage in the system cache. |
| + // For now, we are punting and simply not caching them. |
| final bool shouldCache = false; |
| GitSource(); |
| @@ -19,7 +22,9 @@ class GitSource extends Source { |
| * Clones a Git repo to the local filesystem. |
| */ |
| Future<bool> install(PackageId id, String destPath) { |
| - return runProcess("git", ["clone", "--progress", id.fullName, destPath], |
| + // The package description for a git package is just the git URL. |
| + var url = id.description; |
|
nweiz
2012/05/18 00:08:24
This should at least validate that url is a String
Bob Nystrom
2012/05/18 20:02:38
Done. The GitSource validates the description when
|
| + return runProcess("git", ["clone", "--progress", url, destPath], |
| pipeStdout: true, pipeStderr: true). |
| transform((result) => result.success); |
| } |
| @@ -29,5 +34,5 @@ class GitSource extends Source { |
| * it'll be cloned. |
| */ |
| String packageName(PackageId id) => |
| - basename(id.fullName).replaceFirst(const RegExp("\.git\$"), ""); |
| + basename(id.description).replaceFirst(const RegExp("\.git\$"), ""); |
| } |