# ignore file with wildcard anywhere
*.swp
*.pyc
*.class
*.iml
*.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/
**/log/

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

# docs
docs/contents/
docs/.temp

# output, thirdparty, extension
output/
rpc_data/
metastore_db/
thirdparty/src*
thirdparty/installed*
thirdparty/doris-thirdparty*.tar.xz

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
regression-test/framework/bin/*
regression-test/certificate.p12

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/
fe/fe-common/src/main/java/org/apache/doris/thrift
fe/fe-common/src/main/java/org/apache/parquet
fe/fe-core/src/main/java/org/apache/parquet

# 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/
be/src/apache-orc/

## 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/
tools/single-node-cluster/fe*
tools/tpcds-tools/TPC-DS_Tools_*.zip
tools/tpcds-tools/bin/DSGen-software*
tools/tpcds-tools/bin/tpcds-data/

# be-ut
data_test
lru_cache_test

/conf/log4j2-spring.xml
/fe/fe-core/src/test/resources/real-help-resource.zip
/ui/dist
