| Index: recipe_modules/gclient/example.expected/tryserver.json
 | 
| diff --git a/recipe_modules/gclient/example.expected/tryserver.json b/recipe_modules/gclient/example.expected/tryserver.json
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..c98d090d43b826ddd7b035389c1e0e0736643d9b
 | 
| --- /dev/null
 | 
| +++ b/recipe_modules/gclient/example.expected/tryserver.json
 | 
| @@ -0,0 +1,170 @@
 | 
| +[
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "config",
 | 
| +      "--spec",
 | 
| +      "cache_dir = '[ROOT]/git_cache'\nsolutions = [{'deps_file': '.DEPS.git', 'managed': True, 'name': 'src', 'url': 'https://chromium.googlesource.com/chromium/src.git'}]"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "gclient setup"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "sync",
 | 
| +      "--verbose",
 | 
| +      "--with_branch_heads",
 | 
| +      "--nohooks",
 | 
| +      "-j8",
 | 
| +      "--reset",
 | 
| +      "--force",
 | 
| +      "--upstream",
 | 
| +      "--no-nag-max",
 | 
| +      "--delete_unversioned_trees",
 | 
| +      "--revision",
 | 
| +      "src@HEAD",
 | 
| +      "--output-json",
 | 
| +      "/path/to/tmp/json"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "gclient sync",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"solutions\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"src/\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"revision\": \"f27fede2220bcd326aee3e86ddfd4ebd0fe58cb9\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "recurse",
 | 
| +      "git",
 | 
| +      "config",
 | 
| +      "user.name",
 | 
| +      "local_bot"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "gclient recurse (git config user.name)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "recurse",
 | 
| +      "git",
 | 
| +      "config",
 | 
| +      "user.email",
 | 
| +      "local_bot@example.com"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "gclient recurse (git config user.email)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "config",
 | 
| +      "--spec",
 | 
| +      "cache_dir = None\nsolutions = [{'deps_file': 'DEPS', 'managed': True, 'name': 'WebKit', 'safesync_url': 'https://blink-status.appspot.com/lkgr', 'url': 'svn://svn.chromium.org/blink/trunk'}]"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/src/third_party",
 | 
| +    "name": "[spec: WebKit] gclient setup"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[BUILD]/scripts/slave/gclient_safe_revert.py",
 | 
| +      ".",
 | 
| +      "[DEPOT_TOOLS]/gclient"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/src/third_party",
 | 
| +    "name": "[spec: WebKit] gclient revert"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "sync",
 | 
| +      "--nohooks",
 | 
| +      "--force",
 | 
| +      "--verbose",
 | 
| +      "--delete_unversioned_trees",
 | 
| +      "--with_branch_heads",
 | 
| +      "--revision",
 | 
| +      "third_party/WebKit@123",
 | 
| +      "--output-json",
 | 
| +      "/path/to/tmp/json"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/src/third_party",
 | 
| +    "name": "[spec: WebKit] gclient sync",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"solutions\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"WebKit/\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"revision\": 241198@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    }, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"src/blatley/\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"revision\": 248087@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@",
 | 
| +      "@@@SET_BUILD_PROPERTY@got_blatley_revision@248087@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport os, sys\n\nbuild_path = sys.argv[1]\nif os.path.exists(build_path):\n  for (path, dir, files) in os.walk(build_path):\n    for cur_file in files:\n      if cur_file.endswith('index.lock'):\n        path_to_file = os.path.join(path, cur_file)\n        print 'deleting %s' % path_to_file\n        os.remove(path_to_file)\n",
 | 
| +      "[SLAVE_BUILD]"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "cleanup index.lock",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@build_path = sys.argv[1]@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@if os.path.exists(build_path):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@  for (path, dir, files) in os.walk(build_path):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@    for cur_file in files:@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@      if cur_file.endswith('index.lock'):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@        path_to_file = os.path.join(path, cur_file)@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@        print 'deleting %s' % path_to_file@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@        os.remove(path_to_file)@@@",
 | 
| +      "@@@STEP_LOG_END@python.inline@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[DEPOT_TOOLS]/gclient.py",
 | 
| +      "runhooks"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]",
 | 
| +    "name": "gclient runhooks"
 | 
| +  },
 | 
| +  {
 | 
| +    "name": "$result",
 | 
| +    "recipe_result": null,
 | 
| +    "status_code": 0
 | 
| +  }
 | 
| +]
 | 
| 
 |