รสชาติของ Ddrace ของเราเองซึ่งเป็น Mod Teeworlds ดูเว็บไซต์สำหรับข้อมูลเพิ่มเติม
การอภิปรายการพัฒนาเกิดขึ้นบน #DDNET บน Quakenet (WebChat) หรือบน Discord ในช่องนักพัฒนา
คุณสามารถรับการเผยแพร่แบบไบนารีบนเว็บไซต์ DDNET ค้นหาบน Steam หรือติดตั้งจากที่เก็บ
หากคุณต้องการเรียนรู้เกี่ยวกับซอร์สโค้ดคุณสามารถตรวจสอบบทความการพัฒนาบนวิกิ
เพื่อโคลนที่เก็บนี้ด้วยประวัติเต็มและห้องสมุดภายนอก (~ 350 MB):
git clone --recursive https://github.com/ddnet/ddnet
เพื่อโคลนที่เก็บนี้ด้วยประวัติเต็มเมื่อคุณมีห้องสมุดที่จำเป็นในระบบของคุณแล้ว (~ 220 MB):
git clone https://github.com/ddnet/ddnet
เพื่อโคลนที่เก็บนี้ด้วยประวัติตั้งแต่เราย้ายห้องสมุดไปที่ https://github.com/ddnet/ddnet-libs (~ 40 MB):
git clone --shallow-exclude=included-libs https://github.com/ddnet/ddnet
ในการโคลนไลบรารีหากคุณเคยโคลน ddnet ก่อนหน้านี้โดยไม่มีพวกเขาหรือถ้าคุณต้องการประวัติ ddnet-libs แทนที่จะเป็นโคลนตื้น:
git submodule update --init --recursive
คุณสามารถติดตั้งไลบรารีที่จำเป็นในระบบของคุณ touch CMakeLists.txt และ cmake จะใช้ไลบรารีทั่วทั้งระบบตามค่าเริ่มต้น คุณสามารถติดตั้งการพึ่งพาและ cmake ที่จำเป็นทั้งหมดใน debian หรือ ubuntu เช่นนี้:
sudo apt install build-essential cargo cmake git glslang-tools google-mock libavcodec-extra libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libcurl4-openssl-dev libfreetype6-dev libglew-dev libnotify-dev libogg-dev libopus-dev libopusfile-dev libpng-dev libsdl2-dev libsqlite3-dev libssl-dev libvulkan-dev libwavpack-dev libx264-dev python3 rustc spirv-tools
ในการแจกแจงรุ่นเก่าเช่น Ubuntu 18.04 อย่าติดตั้ง google-mock แต่แทนที่จะตั้งค่า -DDOWNLOAD_GTEST=ON เมื่อสร้างเพื่อรับรุ่น GTEST/GMOCK ล่าสุด
ในการแจกแจงรุ่นเก่าอาจเก่าเกินไปที่จะได้รับคอมไพเลอร์ rustc ที่ทันสมัยคุณสามารถใช้ Rustup กับช่องเสียบแทนหรือลองแพ็คเกจ rustc-mozilla
หรือใน Centos, Redhat และ Almalinux เช่นนี้:
sudo yum install cargo cmake ffmpeg-devel freetype-devel gcc gcc-c++ git glew-devel glslang gmock-devel gtest-devel libcurl-devel libnotify-devel libogg-devel libpng-devel libx264-devel make openssl-devel opus-devel opusfile-devel python2 rust SDL2-devel spirv-tools sqlite-devel vulkan-devel wavpack-devel
หรือใน fedora เช่นนี้:
sudo dnf install cargo cmake ffmpeg-devel freetype-devel gcc gcc-c++ git glew-devel glslang gmock-devel gtest-devel libcurl-devel libnotify-devel libogg-devel libpng-devel make openssl-devel opus-devel opusfile-devel python2 SDL2-devel spirv-tools sqlite-devel vulkan-devel wavpack-devel x264-devel
หรือบน arch linux เช่นนี้:
sudo pacman -S --needed base-devel cmake curl ffmpeg freetype2 git glew glslang gmock libnotify libpng opusfile python rust sdl2 spirv-tools sqlite vulkan-headers vulkan-icd-loader wavpack x264
หรือใน Gentoo เช่นนี้:
emerge --ask dev-db/sqlite dev-lang/rust-bin dev-libs/glib dev-libs/openssl dev-util/glslang dev-util/spirv-headers dev-util/spirv-tools media-libs/freetype media-libs/glew media-libs/libglvnd media-libs/libogg media-libs/libpng media-libs/libsdl2 media-libs/libsdl2[vulkan] media-libs/opus media-libs/opusfile media-libs/pnglite media-libs/vulkan-loader[layers] media-sound/wavpack media-video/ffmpeg net-misc/curl x11-libs/gdk-pixbuf x11-libs/libnotify
บน MacOS คุณสามารถใช้ Homebrew เพื่อติดตั้ง Build Dependencies เช่นนี้:
brew install cmake ffmpeg freetype glew glslang googletest libpng molten-vk opusfile rust SDL2 spirv-tools vulkan-headers wavpack x264
หากคุณไม่ต้องการใช้ไลบรารีระบบคุณสามารถผ่าน -DPREFER_BUNDLED_LIBS=ON พารามิเตอร์ไปยัง cmake
ในการรวบรวม DDNET ด้วยตัวคุณเองให้ดำเนินการคำสั่งต่อไปนี้ในรูทต้นฉบับ:
mkdir build
cd build
cmake ..
make -j$(nproc)
ผ่านจำนวนเธรดสำหรับการรวบรวมเพื่อ make -j $(nproc) ในกรณีนี้ส่งคืนจำนวนหน่วยประมวลผล
DDNET ต้องการห้องสมุดเพิ่มเติมซึ่งบางส่วนได้รับการรวมเข้ากับแพลตฟอร์มที่พบบ่อยที่สุด (Windows, Mac, Linux, X86 และ X86_64 ทั้งหมด) เพื่อความสะดวกและการสร้างอย่างเป็นทางการ ห้องสมุดที่มาพร้อมกันสำหรับงานสร้างอย่างเป็นทางการอยู่ใน Submodule DDNET-LIBS โปรดทราบว่าเมื่อคุณสร้างและพัฒนาในเครื่องคุณควรใช้ตัวจัดการแพ็คเกจระบบของคุณเพื่อติดตั้งการพึ่งพาแทนที่จะพึ่งพา submodule ddnet-libs ซึ่งไม่ได้มีการพึ่งพาทั้งหมดอยู่ดี (เช่น openssl, vulkan) ดูส่วนก่อนหน้าสำหรับวิธีการพึ่งพา อีกทางเลือกหนึ่งดูอาร์กิวเมนต์การสร้างต่อไปนี้สำหรับวิธีการปิดการใช้งานคุณสมบัติบางอย่างและการพึ่งพาของพวกเขา ( -DVULKAN=OFF ไม่จำเป็นต้องใช้ Vulkan)
ต่อไปนี้เป็นรายการอาร์กิวเมนต์บิลด์ที่ไม่ครบถ้วนสมบูรณ์ซึ่งสามารถส่งผ่านไปยังเครื่องมือบรรทัดคำสั่ง cmake เพื่อเปิดใช้งานหรือปิดการใช้งานตัวเลือกในเวลาสร้าง:
-dcmake_build_type = [รีลีส | ดีบั๊ก | relwithdebinfo | minsizerel]
ตัวแปร CMake เสริมสำหรับการตั้งค่าประเภทการสร้าง หากไม่ได้ตั้งค่าค่าเริ่มต้นเป็น "รีลีส" ถ้า -DDEV=ON ไม่ได้ ใช้และ "debug" ถ้า -DDEV=ON ใช้ ดู CMAKE_BUILD_TYPE ในเอกสาร CMAKE สำหรับข้อมูลเพิ่มเติม
-dprefer_bundled_libs = [เปิด | ปิด]
ไม่ว่าจะชอบไลบรารีที่รวมอยู่ในห้องสมุดระบบ การตั้งค่าเป็น ON จะทำให้ DDNET ใช้ไลบรารีบุคคลที่สามที่มีอยู่ในโฟลเดอร์ ddnet-libs ซึ่งเป็นเป้าหมาย Git-SubModule ของที่เก็บ DDNET-LIBS ที่กล่าวถึงข้างต้น-มีประโยชน์หากคุณไม่ได้ติดตั้งไลบรารีเหล่านั้นและต้องการหลีกเลี่ยงการสร้าง หากตั้งค่าเป็น OFF จะใช้ห้องสมุดที่รวมอยู่เมื่อไม่พบไลบรารีระบบ ค่าเริ่มต้นปิด
-DwebSockets = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งานการสนับสนุน WebSocket สำหรับเซิร์ฟเวอร์หรือไม่ การตั้งค่าให้กับ ON ต้องติดตั้งไลบรารี libwebsockets-dev ค่าเริ่มต้นปิด
-dMySql = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งานการสนับสนุน MySQL/Mariadb สำหรับเซิร์ฟเวอร์หรือไม่ ต้องใช้อย่างน้อย MySQL 8.0 หรือ MariADB 10.2 การตั้งค่าให้กับ ON ต้องใช้ไลบรารี libmariadbclient-dev ซึ่งติดตั้งซึ่งมีให้เป็นไลบรารีแบบรวมสำหรับแพลตฟอร์มทั่วไป ค่าเริ่มต้นปิด
โปรดทราบว่าไลบรารี MySQL ที่รวมอยู่อาจทำงานไม่ถูกต้องในระบบของคุณ หากคุณพบปัญหาการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ตัวอย่างเช่นว่ามันเชื่อมต่อเป็นรูทในขณะที่คุณเลือกผู้ใช้รายอื่นตรวจสอบให้แน่ใจว่าได้ติดตั้งไลบรารีระบบของคุณสำหรับไคลเอนต์ MySQL ตรวจสอบให้แน่ใจว่าบทสรุปการกำหนดค่า CMake บอกว่าพบว่า MySQL libs ที่ไม่ได้รวม (ไม่มี "ใช้ libs ที่รวม")
-DTest_MySql = [เปิด | ปิด]
ไม่ว่าจะทดสอบการสนับสนุน MySQL/Mariadb ในการทดสอบ GTEST หรือไม่ ค่าเริ่มต้นปิด
โปรดทราบว่าสิ่งนี้ต้องใช้ฐานข้อมูล MySQL/Mariadb ที่ใช้งานอยู่บน LocalHost ด้วยการตั้งค่านี้:
CREATE DATABASE ddnet;
CREATE USER 'ddnet'@'localhost' IDENTIFIED BY 'thebestpassword';
GRANT ALL PRIVILEGES ON ddnet.* TO 'ddnet'@'localhost';
FLUSH PRIVILEGES;
-dautoupdate = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งาน autoupdater Packager อาจต้องการปิดการใช้งานสำหรับแพ็คเกจของพวกเขา ค่าเริ่มต้นเปิดใช้งานสำหรับ Windows และ Linux
-DClient = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งานการรวบรวมไคลเอนต์ หากตั้งค่าเป็นปิด DDNET จะไม่ขึ้นอยู่กับ Curl, Freetype, Ogg, Opus, OpusFile และ SDL2 ค่าเริ่มต้นเปิดอยู่
-DVIDEORECORDER = [ON | OFF]
ไม่ว่าจะเพิ่มการสนับสนุนการบันทึกวิดีโอโดยใช้ FFMPEG ไปยังไคลเอนต์หรือไม่ ค่าเริ่มต้นเปิดอยู่
-ddownload_gtest = [เปิด | ปิด]
ไม่ว่าจะเป็นการดาวน์โหลดและรวบรวม gtest มีประโยชน์หากไม่ได้ติดตั้ง GTEST และสำหรับผู้ใช้ Linux ไม่มีแพ็คเกจที่เหมาะสม ค่าเริ่มต้นปิด
-ddev = [เปิด | ปิด]
ไม่ว่าจะเป็นการปรับให้เหมาะสมสำหรับการพัฒนาเร่งกระบวนการรวบรวมเล็กน้อย หากเปิดใช้งานอย่าสร้างสิ่งที่จำเป็นสำหรับบรรจุภัณฑ์ การตั้งค่าเป็น ON จะตั้งค่า cmake_build_type เป็น debug โดยค่าเริ่มต้น ค่าเริ่มต้นปิด
-dupnp = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งานการสนับสนุน UPNP สำหรับเซิร์ฟเวอร์หรือไม่ คุณต้องติดตั้ง libminiupnpc-dev บน debian, miniupnpc บน arch linux ค่าเริ่มต้นปิด
-dvulkan = [เปิด | ปิด]
ไม่ว่าจะเปิดใช้งานแบ็กเอนด์ Vulkan บน Windows คุณต้องติดตั้ง Vulkan SDK และตั้งค่าสถานะสภาพแวดล้อม VULKAN_SDK ตามลำดับ ค่าเริ่มต้นเปิดใช้งานสำหรับ Windows x86_64 และ Linux และปิดสำหรับ Windows X86 และ MacOS
-gninja
ใช้ระบบสร้างนินจาแทนการทำ สิ่งนี้ขนานกับการสร้างโดยอัตโนมัติและโดยทั่วไปจะเร็วขึ้น รวบรวมด้วย ninja แทน make ติดตั้งนินจาด้วย sudo apt install ninja-build บน Debian, sudo pacman -S --needed ninja บน Arch Linux
-dcmake_cxx_link_flags = [แฟล็ก]
ธงกำหนดเองที่จะตั้งค่าสำหรับคอมไพเลอร์เมื่อเชื่อมโยง
-Dexception_handling = [เปิด | ปิด]
เปิดใช้งานการจัดการข้อยกเว้น (ใช้งานได้กับ Windows ณ ตอนนี้ใช้ DRMINGW ที่นั่น) ค่าเริ่มต้นปิด
-dipo = [เปิด | ปิด]
เปิดใช้งานการปรับให้เหมาะสมระหว่างการกำหนดขั้นตอนหรือที่เรียกว่าการเพิ่มประสิทธิภาพเวลาลิงค์ (LTO) ค่าเริ่มต้นปิด
-dfuse_ld = [ปิด | linker]
linker ที่จะใช้ ค่าเริ่มต้นปิดเพื่อลองแม่พิมพ์, lld, ทอง
-dsecurity_compiler_flags = [เปิด | ปิด]
ไม่ว่าจะตั้งค่าสถานะคอมไพเลอร์ที่เกี่ยวข้องกับความปลอดภัยเช่น -D_FORTIFY_SOURCE=2 และ -fstack-protector-all ค่าเริ่มต้นเปิดอยู่
ในการเรียกใช้การทดสอบคุณต้องติดตั้งไลบรารี libgtest-dev ต่อไปนี้
ห้องสมุดนี้ไม่ได้รวบรวมดังนั้นคุณต้องทำ:
sudo apt install libgtest-dev
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make -j $( nproc )
# copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
sudo cp lib/ * .a /usr/lib ในการเรียกใช้การทดสอบคุณต้องกำหนดเป้าหมาย run_tests ด้วย make: make run_tests
เราใช้ Clang-Format 10 เพื่อจัดรูปแบบรหัส C ++ ของโครงการนี้ ดำเนินการ scripts/fix_style.py หลังจากเปลี่ยนรหัสเพื่อให้แน่ใจว่ารหัสได้รับการจัดรูปแบบอย่างถูกต้องตัวตรวจสอบสไตล์ GitHub Central จะทำเช่นเดียวกันและป้องกันไม่ให้การเปลี่ยนแปลงของคุณถูกส่ง
บน Arch Linux คุณสามารถติดตั้ง Clang-Format 10 โดยใช้แพ็คเกจ AUR แบบ clang-format-static-bin บน macOS คุณสามารถติดตั้ง clang-format 10 โดยใช้ Homebrew Tap:
brew install r-lib/taps/clang-format@10
sudo ln -s /opt/homebrew/Cellar/clang-format@10/10.0.1/bin/clang-format /opt/homebrew/bin/clang-format-10Asan+Ubsan และ Memcheck มีประโยชน์ในการค้นหาปัญหาโค้ดได้ง่ายขึ้น โปรดใช้พวกเขาเพื่อทดสอบการเปลี่ยนแปลงของคุณหากทำได้
สำหรับ Asan+Ubsan Compile ด้วย:
CC=clang CXX=clang++ CXXFLAGS= " -fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer " CFLAGS= " -fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer " cmake -DCMAKE_BUILD_TYPE=Debug .
makeและวิ่งด้วย:
UBSAN_OPTIONS=suppressions=./ubsan.supp:log_path=./SAN:print_stacktrace=1:halt_on_errors=0 ASAN_OPTIONS=log_path=./SAN:print_stacktrace=1:check_initialization_order=1:detect_leaks=1:halt_on_errors=0 LSAN_OPTIONS=suppressions=./lsan.supp ./DDNetตรวจสอบไฟล์ San.* หลังจากนั้น สิ่งนี้พบปัญหามากกว่า Memcheck ทำงานได้เร็วขึ้น แต่ต้องใช้คอมไพเลอร์ GCC/Clang ที่ทันสมัย
สำหรับ Memcheck ของ Valgrind รวบรวมการดีบักการดีบักปกติและเรียกใช้ด้วย: valgrind --tool=memcheck ./DDNet คาดว่าจะช้าลงมาก
ดาวน์โหลดและติดตั้ง Microsoft Visual Studio (ในขณะที่เขียน MSVS Community 2022) ด้วย การสนับสนุน C ++
คุณจะต้องติดตั้งทั้ง Python 3 และ Rust เช่นกัน
ตรวจสอบให้แน่ใจว่าเครื่องมือสร้าง MSVC, เครื่องมือ C ++ CMake และเวอร์ชัน Windows SDK ล่าสุดที่เหมาะสมกับเวอร์ชัน Windows ของคุณถูกเลือกในตัวติดตั้ง
ตอนนี้เปิดโฟลเดอร์โครงการของคุณ Visual Studio ควรตรวจจับและกำหนดค่าโครงการของคุณโดยอัตโนมัติโดยใช้ CMake
บนเครื่องมือของคุณ hotbar ถัดจากปุ่ม "เรียกใช้" รูปสามเหลี่ยมตอนนี้คุณสามารถเลือกสิ่งที่คุณต้องการเริ่ม (เช่นลูกค้าเกมหรือเซิร์ฟเวอร์เกม) และสร้างมันขึ้นมา
ก่อนอื่นคุณจะต้องติดตั้งเครื่องมือสร้าง MSVC, Python 3 และ Rust
ในการรวบรวมและสร้าง DDNET บน Windows ให้ใช้ IDE ที่คุณเลือกด้วยการรวม CMAKE (เช่น Visual Studio Code) หรือโดย ซึ่งเลิกใช้แล้ว ใช้ CMake GUI
กำหนดค่า CMAKE เพื่อใช้เครื่องมือสร้าง MSVC ที่เหมาะสมกับระบบของคุณตามคำแนะนำของ IDE
หากคุณใช้รหัส Visual Studio คุณสามารถใช้ส่วนขยายเครื่องมือ CMake เพื่อกำหนดค่าและสร้างโครงการ
จากนั้นคุณสามารถเปิดโฟลเดอร์โครงการใน VSC และกด Ctrl+Shift+P เพื่อเปิดจานคำสั่งจากนั้นค้นหา CMake: Configure
สิ่งนี้จะเปิดพรอมต์ให้คุณเลือกชุดเลือกเวอร์ชัน Visual Studio ของคุณและบันทึก ตอนนี้คุณสามารถใช้ GUI (ซ้ายล่าง) เพื่อรวบรวมและสร้างโครงการของคุณ
ติดตั้ง MINGW Cross-Compilers ของแบบฟอร์ม i686-w64-mingw32-gcc (32 บิต) หรือ x86_64-w64-mingw32-gcc (64 บิต) นี่อาจเป็นส่วนที่ยาก -
จากนั้นเพิ่ม -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/mingw64.toolchain ไปยังบรรทัดคำสั่ง cmake เริ่มต้น
ติดตั้ง Emscripten cross-compilers (เช่น sudo apt install emscripten ) บน linux distro ที่ทันสมัย
หากคุณต้องการรวบรวม ddnet-libs สำหรับ webassembly เพียงโทร
# <directory to build in> should be a directory outside of the project's source directory
scripts/compile_libs/gen_libs.sh < directory to build in > webasm จากไดเรกทอรีต้นฉบับของโครงการ มันจะสร้างไดเรกทอรีที่เรียกว่า ddnet-libs โดยอัตโนมัติ จากนั้นคุณสามารถรวมไดเรกทอรีนี้เข้าด้วยตนเองกับไดเรกทอรี DDNET Source Directory
จากนั้นเรียกใช้ emcmake cmake .. -DVIDEORECORDER=OFF -DVULKAN=OFF -DSERVER=OFF -DTOOLS=OFF -DPREFER_BUNDLED_LIBS=ON ในไดเรกทอรีบิลด์ของคุณ
ในการทดสอบรหัสที่รวบรวมไว้ในเครื่องเพียงใช้ emrun --browser firefox DDNet.html
ในการโฮสต์ไฟล์. html ที่รวบรวมคัดลอกทั้งหมด .data , .html , .js , .wasm ไฟล์ไปยังเว็บเซิร์ฟเวอร์ (ดู/อื่น ๆ
จากนั้นเปิดใช้งานนโยบายต้นกำเนิดข้าม ตัวอย่างสำหรับ Apache2 บน distros ที่ใช้ Debian:
sudo a2enmod header
# edit the apache2 config to allow .htaccess files
sudo nano /etc/apache2/apache2.conf
# set AllowOverride to All for your directory
# then create a .htaccess file on the web server (where the .html is)
# and add these lines
Header add Cross-Origin-Embedder-Policy " require-corp "
Header add Cross-Origin-Opener-Policy " same-origin "
# now restart apache2
sudo service apache2 restart ติดตั้ง osxcross จากนั้นเพิ่ม -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/darwin.toolchain และ -DCMAKE_OSX_SYSROOT=/path/to/osxcross/target/SDK/MacOSX10.11.sdk/ ไปยังบรรทัดคำสั่ง CMake เริ่มต้น
ติดตั้ง dmg และ hfsplus จาก libdmg-hfsplus และ newfs_hfs จาก diskdev_cmds เพื่อปลดล็อกเป้าหมาย package_dmg ที่ส่งออกภาพดิสก์ MacOS
$ wget https://ddnet.org/stats/ddnet-sql.zip
$ unzip ddnet-sql.zip
$ yaourt -S mariadb mysql-connector-c++
$ mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ systemctl start mariadb
$ mysqladmin -u root password ' PW '
$ mysql -u root -p ' PW '
MariaDB [(none)] > create database teeworlds ; create user ' teeworlds ' @ ' localhost ' identified by ' PW2 ' ; grant all privileges on teeworlds. * to ' teeworlds ' @ ' localhost ' ; flush privileges ;
# this takes a while, you can remove the KEYs in record_race.sql to trade performance in queries
$ mysql -u teeworlds -p ' PW2 ' teeworlds < ddnet-sql/record_ * .sql
$ cat mine.cfg
sv_use_sql 1
add_sqlserver r teeworlds record teeworlds " PW2 " " localhost " " 3306 "
add_sqlserver w teeworlds record teeworlds " PW2 " " localhost " " 3306 "
$ mkdir build
$ cd build
$ cmake -DMYSQL=ON ..
$ make -j $( nproc )
$ ./DDNet-Server -f mine.cfgDebian/Ubuntu
$ apt-get install ddnet
แม็กอส
$ brew install --cask ddnetฟีดอร่า
$ dnf install ddnetซุ้มประตู
$ yay -S ddnetFreeBSD
$ pkg install DDNetWindows (Scoop)
scoop bucket add games
scoop install games/ddnet
DDNET มีอยู่ในชุดทดสอบ Phoronix หากคุณติดตั้ง PTS คุณสามารถเปรียบเทียบ DDNET ได้อย่างง่ายดายในระบบของคุณเองเช่นนี้:
$ phoronix-test-suite benchmark ddnet ก่อนอื่นให้ใช้เครื่องมือที่ดีกว่า git blame ตัวเองเช่น tig อาจมี UI ที่ดีสำหรับ Windows ด้วย หรือใช้ GitHub UI คลิก "ตำหนิ" ในมุมมองไฟล์ใด ๆ
สำหรับ tig ให้ใช้ tig blame path/to/file.cpp เพื่อเปิดมุมมองการตำหนิคุณสามารถนำทางด้วยปุ่มลูกศรหรือ KJ กดเครื่องหมายจุลภาคเพื่อไปที่การแก้ไขก่อนหน้าของบรรทัดปัจจุบัน q เพื่อเลิก
จากนั้นคุณสามารถตั้งค่า GIT เพื่อละเว้นการแก้ไขการจัดรูปแบบเฉพาะ:
git config blame.ignoreRevsFile formatting-revs.txtคัดลอกไฟล์การตรวจจับไฟล์และไวยากรณ์ไปยังโฟลเดอร์ VIM Config ของคุณ:
# vim
cp -R other/vim/ * ~ /.vim/
# neovim
cp -R other/vim/ * ~ /.config/nvim/