# 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.
/api_docs.target.mk
/benchmarks
/compiler.target.mk
/create_sdk.target.mk
/dart.Makefile
/dart.xcodeproj
/dart2js.target.mk
/Makefile
/out
/runtime.target.mk
/upload_sdk.target.mk
/xcodebuild
/upload_sdk.vcxproj
/dart2js.vcxproj.user
/api_docs.vcproj
/upload_sdk.vcxproj.filters
/api_docs.vcxproj.user
/dart.suo
/dart2js.vcxproj
/compiler.vcxproj
/dart.sdf
/cached_results.txt
/chromedriver.log
/api_docs.vcxproj
/compiler.vcproj
/timing_info.txt
/compiler.vcxproj.user
/dart.sln
/runtime.vcproj
/upload_sdk.vcproj
/runtime.vcxproj.user
/upload_sdk.vcxproj.user
/create_sdk.vcxproj
/create_sdk.vcxproj.filters
/create_sdk.vcproj
/samples.vcproj
/dart2js.vcproj
/create_sdk.vcxproj.user
/runtime.vcxproj
/build
/*.xcodeproj
/.children
/.project
/*.pyc

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

# Generated XCode projects on Mac
*.xcodeproj

# Dart Editor config files
.children
.project

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

# Compiled python binaries
*.pyc
third_party/gsutil/*/gsutilc
