Version 0.4.3.2 .
svn merge -c 20438 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
svn merge -c 20501 https://dart.googlecode.com/svn/branches/bleeding_edge trunk
git-svn-id: http://dart.googlecode.com/svn/trunk@20505 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/tools/VERSION b/tools/VERSION
index 10d3ee8..d7aaa81 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
MAJOR 0
MINOR 4
BUILD 3
-PATCH 1
+PATCH 2
diff --git a/utils/pub/entrypoint.dart b/utils/pub/entrypoint.dart
index a190c1b..f689416 100644
--- a/utils/pub/entrypoint.dart
+++ b/utils/pub/entrypoint.dart
@@ -298,10 +298,16 @@
Future _linkSecondaryPackageDir(String dir) {
return defer(() {
var symlink = path.join(dir, 'packages');
- if (fileExists(symlink)) {
- deleteFile(symlink);
- } else if (dirExists(symlink)) {
+ // The order of if tests is significant here. fileExists() will return
+ // true for a symlink (broken or not) but deleteFile() cannot be used
+ // to delete a broken symlink on Windows. So we test for the directory
+ // first since deleteDir() does work on symlinks.
+ // TODO(rnystrom): Make deleteFile() work for symlinks on Windows so this
+ // doesn't matter.
+ if (dirExists(symlink)) {
deleteDir(symlink);
+ } else if (fileExists(symlink)) {
+ deleteFile(symlink);
}
return createSymlink(packagesDir, symlink, relative: true);
});
diff --git a/utils/tests/pub/pub.status b/utils/tests/pub/pub.status
index b60d685..a33ef1c 100644
--- a/utils/tests/pub/pub.status
+++ b/utils/tests/pub/pub.status
@@ -14,4 +14,3 @@
[ $system == windows ]
io_test: Fail # Issue 7505
-install/broken_symlink_test: Fail # Issue 9192