# These ignores are auto-generated from the canonical svn ignore metadata
# using:
#
#  $ git svn create-ignore
#
# Whenever possible, prefer creating ignores in svn and then generating them
# to keep git in sync.
/.children
/.project
/Makefile
/benchmarks
/build
/ipch
/out
/xcodebuild
/.flaky.log
/.debug.log
/*.Makefile
/*.opensdf
/*.pyc
/*.sdf
/*.sln
/*.suo
/*.target.mk
/*.vcproj
/*.vcxproj
/*.vcxproj.filters
/*.vcxproj.user

# End generated ignores. The following are hand-added because the svn:ignore
# stuff doesn't handle them well.

# Gyp generated files
*.xcodeproj

# Dart Editor config files - also in all subdirectories.
.children
.project

# Built by chromebot and downloaded from Google Storage
client/tests/drt

# Compiled python binaries
*.pyc

# From the Mac OS X Finder
.DS_Store

# Pub generated "packages" directories and files
packages
pubspec.lock

# Vim temporary swap files.
*.swp

# Generated files.
tools/out
