| Index: lib/src/source/hosted.dart
|
| diff --git a/lib/src/source/hosted.dart b/lib/src/source/hosted.dart
|
| index 62832e9723007e1449efb306617f2cdb2e3fcc1e..e1cde6365633076f18ec3277d567c04fbb41c14c 100644
|
| --- a/lib/src/source/hosted.dart
|
| +++ b/lib/src/source/hosted.dart
|
| @@ -80,7 +80,8 @@ class HostedSource extends CachedSource {
|
| var pubspec = new Pubspec.fromMap(
|
| map['pubspec'], systemCache.sources,
|
| expectedName: ref.name, location: url);
|
| - var id = idFor(ref.name, pubspec.version);
|
| + var id = idFor(ref.name, pubspec.version,
|
| + url: _serverFor(ref.description));
|
| memoizePubspec(id, pubspec);
|
|
|
| return id;
|
| @@ -166,7 +167,7 @@ class HostedSource extends CachedSource {
|
| packages.sort(Package.orderByNameAndVersion);
|
|
|
| for (var package in packages) {
|
| - var id = idFor(package.name, package.version);
|
| + var id = idFor(package.name, package.version, url: url);
|
|
|
| try {
|
| await _download(url, package.name, package.version, package.dir);
|
| @@ -269,7 +270,9 @@ class OfflineHostedSource extends HostedSource {
|
| versions = await listDir(dir).map((entry) {
|
| var components = path.basename(entry).split("-");
|
| if (components.first != ref.name) return null;
|
| - return HostedSource.idFor(ref.name, new Version.parse(components.last));
|
| + return HostedSource.idFor(
|
| + ref.name, new Version.parse(components.last),
|
| + url: _serverFor(ref.description));
|
| }).where((id) => id != null).toList();
|
| } else {
|
| versions = [];
|
| @@ -352,6 +355,9 @@ Uri _makeUrl(description, String pattern(String server, String package)) {
|
| return Uri.parse(pattern(server, package));
|
| }
|
|
|
| +/// Returns the server URL for [description].
|
| +Uri _serverFor(description) => Uri.parse(_parseDescription(description).last);
|
| +
|
| /// Parses [id] into its server, package name, and version components, then
|
| /// converts that to a Uri given [pattern].
|
| ///
|
|
|