anchor.diff:  [[configuring-the-source-environment]]
   == Source Environment
   
  -There are two ways to make environment variables available to the link:../architecture/core_objects/builds.html#source-build[Source] 
  -build process and resulting image, Environment files and BuildConfig environment values.  
  +There are two ways to make environment variables available to the link:../architecture/core_objects/builds.html#source-build[Source]
  +build process and resulting image, Environment files and BuildConfig environment values.
   
   === Environment files
   Source enables you to set environment values
  
positive.code: 
  ----
  {
       type: 'git',
       git: {
          uri: '<url to git repository>',
  	ref: '<optional git reference>',
  	commit: '<commit hash identifying a specific git commit>',
  	author: {
  		name: '<author name>',
  		email: '<author e-mail>',
  	},
  	committer: {
  		name: '<committer name>',
  		email: '<committer e-mail>',
  	},
  	message: '<commit message>'
       }
  }
  ----
  ====
  
negative.code: <4> The `*strategy*` section describes the build strategy used to execute the build. You can specify `*Source*`, `*Docker*` and `*Custom*` strategies here. This specification uses the `*ruby-20-centos7*` Docker image that Source-To-Image will use for the application build.
  <5> After the Docker image is successfully built, it will be pushed into the repository described in the `*output*` section.
  
  == Defining an incremental buildConfig
  Source-To-Image (S2I) builds provide an option to perform incremental build, which means they will
  reuse artifacts from previously built image. To create an incremental build one
  needs to create a BuildConfig as previously explained, but with a slight modification
  in strategy definition as presented below:
  
  [incremental.json]
  ----
  {
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "from": {
          "kind": "ImageStreamTag",
          "name": "incremental-image:latest" <1>
        },
        "incremental": true <2>
      }
    }
  }
  ----
  
  <1> You need to specify here an image that supports incremental builds. Note: the S2I images provided by OpenShift do not implement artifact reuse, so setting incremental to true will have no effect on BuildConfigs using those builder images.
  <2> This flag controls whether an incremental build is attempted. If the builder image does not support incremental builds, the build will still succeed but you will get a log message that the incremental build was not successful because of a missing `save-artifacts` script.
  
  NOTE: For information on how to create a builder image which supports incremental build see link:../creating_images/sti.html[creating images guide].
  
  == Starting a Build
  You can manually invoke a build using the following command:
  
  