hunk.code_window:         this._compilerHost.writeFile(filePath, options.hostOverrideFileSystem[filePath], false);
         }
       }
       this._program = ts.createProgram(
         this._rootFilePath, this._compilerOptions, this._compilerHost);
  
hunk.labels: keep keep add keep keep keep
hunk.after_edit:     // Override some files in the FileSystem with paths from the actual file system.
       if (options.hasOwnProperty('hostReplacementPaths')) {
         for (const filePath of Object.keys(options.hostReplacementPaths)) {
           const replacementFilePath = options.hostReplacementPaths[filePath];
           const content = this._compilerHost.readFile(replacementFilePath);
           this._compilerHost.writeFile(filePath, content, false);
         }
       }
  
hunk.file_path: packages/@ngtools/webpack/src/plugin.ts
hunk.type: add
file: 'use strict';
  
  var Promise  = require('../../lib/ext/promise');
  var Task     = require('../models/task');
  var exec     = Promise.denodeify(require('child_process').exec);
  var path     = require('path');
  var pkg      = require('../../../package.json');
  var fs       = require('fs');
  var template = require('lodash/template');
  
  var gitEnvironmentVariables = {
    GIT_AUTHOR_NAME: 'Tomster',
    GIT_AUTHOR_EMAIL: 'tomster@emberjs.com',
    get GIT_COMMITTER_NAME() { return this.GIT_AUTHOR_NAME; },
    get GIT_COMMITTER_EMAIL() { return this.GIT_AUTHOR_EMAIL; }
  };
  
  module.exports = Task.extend({
    run: function(commandOptions) {
      var chalk  = require('chalk');
      var ui     = this.ui;
  
      if (commandOptions.skipGit) {
        return Promise.resolve();
      }
  
      return exec('git --version')
        .then(function() {
          return exec('git init')
            .then(function() {
              return exec('git add .');
            })
            .then(function() {
              var commitTemplate = fs.readFileSync(path.join(__dirname, '../utilities/COMMIT_MESSAGE.txt'));
              var commitMessage = template(commitTemplate)(pkg);
              return exec('git commit -m "' + commitMessage + '"', {env: gitEnvironmentVariables});
            })
            .then(function() {
              ui.writeLine(chalk.green('Successfully initialized git.'));
            });
        })
        .catch(function(error) {
          if (commandOptions.logErrors) {
            ui.writeError(error);
          }
          // if git is not found or an error was thrown during the `git`
          // init process just swallow any errors here
        });
    }
  });
  