# 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
*.host.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

# IntelliJ project files
*.iml

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

# Compiled python binaries
*.pyc

# pydev project file.
.pydevproject

# From the Mac OS X Finder
.DS_Store

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

# Local pub storage
.pub

# Vim temporary swap files.
*.swp

# Kate temporary files.
*~
*.kate-swp

# Merge files.
*.orig
*.rej

# Generated files.
tools/out
tools/xcodebuild
editor/util/testing/mac/CodeLab.suite/Results
editor/util/testing/mac/DartEditor.suite/Results
editor/util/testing/mac/Samples.suite/Results
.test-outcome.log
