# ignore file with wildcard anywhere
*.swp
*.pyc
*.class
*.iml
*.swp
*.jar
*.log
*.so.tmp
*.flattened-pom.xml
core.*

# ignore file with specifiy name anywhere
.DS_Store
.classpath
nohup.out
custom_env.sh
custom_env_mac.sh
derby.log
dependency-reduced-pom.xml
yarn.lock
ut_dir
package-lock.json

# ignore all sub `/bin` and `/build` directory
**/build/
**/target/
**/node_modules/
**/dist/
**/log/

# ignore project file
.cproject
.project
.cache
.settings/
**/.idea/
**/.vscode/

# docs
docs/contents/
docs/.temp

# output, thirdparty, extension
output/
rpc_data/
thirdparty/src*
thirdparty/installed*

fe_plugins/output
fe_plugins/**/.factorypath

fs_brokers/apache_hdfs_broker/src/main/resources/
fs_brokers/apache_hdfs_broker/src/main/thrift/

# regression-test
regression-test/framework/dependency-reduced-pom.xml
regression-test/realdata/*
regression-test/cacheData/*
regression-test/conf/regression-conf-custom.groovy

samples/doris-demo/remote-udf-python-demo/*_pb2.py
samples/doris-demo/remote-udf-python-demo/*_pb2_grpc.py
samples/doris-demo/remote-udf-cpp-demo/*.o
samples/doris-demo/remote-udf-cpp-demo/*.pb.h
samples/doris-demo/remote-udf-cpp-demo/*.pb.cc
samples/doris-demo/remote-udf-cpp-demo/function_server_demo

# FE
fe/mocked/
fe/fe-core/gen/
fe/fe-core/src/main/resources/static/
fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.tokens
fe/fe-core/src/main/antlr4/org/apache/doris/nereids/gen/

# BE
be/build*/
be/cmake-build*/
be/ut_build*/
be/src/gen_cpp/*.[cc, cpp, h]
be/src/gen_cpp/opcode
be/tags
be/test/olap/test_data/tablet_meta_test.hdr
be/.devcontainer/

## tools
tools/ssb-tools/ssb-data/
tools/ssb-tools/ssb-dbgen/
tools/**/TPC-H_Tools_v*.zip
tools/**/TPC-H_Tools_v*/
tools/**/tpc-h_v*.docx
tools/**/tpc-h_v*.pdf
tools/**/tpch-data/

# be-ut
data_test
