# Ignore any python bytecode.
*.pyc

# ignore cipd client files
/.cipd_bin
/.cipd_client*
/.versions

# Ignore "disable auto update" sentinel file.
.disable_auto_update

# Ignore the batch files produced by the Windows bootstrapping.
/git-bash
/git.bat
/gitk.bat
/pylint.bat
/.pylint.d/
/python
/python.bat
/ssh.bat
/ssh-keygen.bat
/svn
/svn.bat
/svnversion.bat
/.bleeding_edge
/.codereview_upload_cookies
/.gitconfig
/.git_bleeding_edge
/.git_cl_description_backup
/.last_codereview_email_address
/.ssh
/.subversion

# Ignore locations where third-party tools are placed during bootstrapping.
/python*_bin
/python_bin_reldir.txt
/win_tools*_bin
/git_bin
/git-*_bin
/svn_bin
/external_bin
/win_toolchain/vs2013_files
/win_toolchain/vs_files
/win_toolchain/*.timestamps
/win_toolchain/.vspro
/win_toolchain/data.json
/win_toolchain/vs_files.ciopfs

# Ignore ctags/cscope index files
/TAGS
/cscope.files
/cscope.in.out
/cscope.out
/cscope.po.out
/tags

# Ignore unittest related files.
/testing_support/_infra
/testing_support/_rietveld
/tests/git-svn-submodule/
/tests/subversion_config/README.txt
/tests/subversion_config/auth
/tests/subversion_config/servers
/tests/svn/
/tests/svnrepo/

# Ignore intermediate isolate files
*.isolated
*.isolated.state

# Ignore recipe working directory.
/.recipe_deps
/infra/.recipe_deps
/recipes/.recipe_deps

# Ignore google AE downloaded for running testing only.
testing_support/google_appengine

# Ignore emacs / vim backup files.
*~
*.swp

# Ignore the monitoring config. It is unique for each user.
/metrics.cfg

# Ignore the ninjalog upload config.
/ninjalog.cfg

# Ignore git traces produced by git push on git-cl upload.
/traces
