diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 212d02442..2c4bf38e3 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -272,8 +272,7 @@ object Defaults extends BuildCommon { None }, watchStartMessage := Watched.defaultStartWatch, - fileTreeViewConfig := FileTreeViewConfig - .default(watchAntiEntropy.value, pollInterval.value, pollingDirectories.value), + fileTreeViewConfig := FileManagement.defaultFileTreeView.value, fileTreeView := state.value .get(BasicKeys.globalFileTreeView) .getOrElse(FileTreeView.DEFAULT.asDataView(StampedFile.converter)), @@ -657,8 +656,7 @@ object Defaults extends BuildCommon { }, watchStartMessage := Watched.projectOnWatchMessage(thisProjectRef.value.project), watch := watchSetting.value, - fileTreeViewConfig := FileTreeViewConfig - .default(watchAntiEntropy.value, pollInterval.value, pollingDirectories.value) + fileTreeViewConfig := FileManagement.defaultFileTreeView.value ) def generate(generators: SettingKey[Seq[Task[Seq[File]]]]): Initialize[Task[Seq[File]]] = diff --git a/main/src/main/scala/sbt/internal/FileManagement.scala b/main/src/main/scala/sbt/internal/FileManagement.scala index bbdbb346c..127fd4a1d 100644 --- a/main/src/main/scala/sbt/internal/FileManagement.scala +++ b/main/src/main/scala/sbt/internal/FileManagement.scala @@ -13,10 +13,16 @@ import java.nio.file.Path import sbt.Keys._ import sbt.io.FileTreeDataView.Entry import sbt.io.syntax.File -import sbt.io.{ FileFilter, FileTreeRepository, FileTreeDataView } -import sbt.{ Def, ScopedTaskable, StampedFile, Task } +import sbt.io.{ FileFilter, FileTreeDataView, FileTreeRepository } +import sbt._ private[sbt] object FileManagement { + private[sbt] def defaultFileTreeView: Def.Initialize[Task[FileTreeViewConfig]] = Def.task { + if (state.value.remainingCommands.exists(_.commandLine == "shell")) { + FileTreeViewConfig + .default(watchAntiEntropy.value, pollInterval.value, pollingDirectories.value) + } else FileTreeViewConfig.sbt1_2_compat(pollInterval.value, watchAntiEntropy.value) + } private[sbt] implicit class FileTreeDataViewOps[+T](val fileTreeDataView: FileTreeDataView[T]) { def register(path: Path, maxDepth: Int): Either[IOException, Boolean] = { fileTreeDataView match {