Poor implementation of "clean build" feature for Hg-controlled workspaces

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      The current impl in MercurialSCM just does

      for( FilePath child : workspace.list((FileFilter)null) )

      { if(child.getName().equals(".hg")) continue; child.deleteRecursive(); }

      which deletes version-controlled files along with everything else, forcing a
      clean checkout the next time (much slower than a pull for a big repository), and
      fragmenting the disk.

      Better would be to run

      hg up -C .
      hg --config extensions.purge= clean --all

      which (1) reverts any accidental modifications made to source files by the
      previous build, (2) deletes all and only those files which are not listed in the
      Hg manifest for the current revision.

      I could implement the change if you agree.

            Assignee:
            Kohsuke Kawaguchi
            Reporter:
            Jesse Glick
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: