distributed source control system áá˛áˇ Git 2.55 ááźááˇáşááťááážáŻááᯠááźáąááŹáááŻááşááŤááźáŽá áĄáááááźáąáŹááşá¸áá˛áážáŻáá˝áąáááąáŹáˇ - Rust builds áá˝áąááᯠdefault áĄááąáá˛áˇ áááˇáşáá˝ááşá¸ááźááşá¸á áĄááąáŹááşáĄáááşááąáŹáşáážáŻ Linux fsmonitor ááŻááşáááşá¸á ááşá incremental MIDX áĄáá˝ážááşá¸ááááşá¸ááᯠááźááşáááşááŻááşáááŻá¸áááşáĄáá˝ááş ááťá°ááŹáĄáá áşá commit áá áşááŻááᯠááźááşáááşáááşáĄáá˝ááş "git history fixup" commandá object availability bitmap generation ááᯠáĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááşááźáŻááŻááşááźááşá¸á parallel hook execution áĄáá˝ááş ááśáˇáááŻá¸áážáŻáážááˇáş "git format-rev" commandá Git ááᯠGPLv2+ áááŻááşá ááşáĄáąáŹááşáá˝ááş áááŻááşá ááşááťááŹá¸áááşá
ááááşááŻááşááąáážáŻáážááˇáş áážááŻááşá¸áážááşááŤá ááŹá¸áážááşá¸áĄáá áşáá˝ááş developer ááá á áĄáá°áĄááŽááźááˇáş ááźááşáááşááŹá¸ááąáŹ ááźáąáŹááşá¸áá˛áážáŻ á áá áᯠááŤáááşááźáŽá¸ áááşá¸áááŻáˇáĄáááş áá áŚá¸áááş Git áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáá˝ááş áĄáá áşááźá áşáááşá áĄááá áĄááşášááŤáááşáĄáá áşááťáŹá¸ (áá áá á):
- Rust ááŹááŹá
ááŹá¸ áĄá
áááşáĄáááŻááşá¸ ááśáˇáááŻá¸áážáŻááᯠáá°áááşá¸áĄáŹá¸ááźááˇáş áá˝ááˇáşááŹá¸áááşá rustc compiler
Rust ááᯠbuild dependencies áá˝áąáážáŹ áááˇáşáá˝ááşá¸ááŹá¸ááŤáááşá Rust áááŤáᲠbuild ááŻááşáááŻáˇ make utility ááᯠrun áá˛áˇáĄá፠"NO_RUST=1" flag áááŻááŻáśá¸áááŻááşáááᯠ"meson configure" ááᯠrun áá˛áˇáĄá፠"-Drust=disabled" áááŻááŻáśá¸áááŻááşááŤáááşá Rust áá˛áˇ building ááᯠdisable ááŻááşáááŻááşáá˛áˇá á˝ááşá¸áááşááᯠGit 3.0 áĄáá support ááŻááşáážáŹááźá áşááźáŽá¸ Rust ááᯠrequired dependency áĄááąáá˛áˇ áááˇáşáá˝ááşá¸ááąá¸áážáŹááŤá Rust á SHA-1 áá˛áˇ SHA-256 hash configuration áá˝áąááźáŹá¸áážáŹ portability áĄáá˝ááş layer áá áşááŻáĄááźááş variable-length integers áá˝áąááᯠencoding áá˛áˇ decoding áááŻááťááŻá¸ internal function áá˝áąáááŻáááşá¸ implement ááŻááşááŤáááşá Git internals áá˝áąááᯠáĄááŹáááşáážáŹ Rust áážáŹ ááźááşáááşááąá¸ááŹá¸áááŻáˇ ááťážáąáŹáşáááˇáşáááŤáááşá - ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸á áážááşáááşá¸ááᯠááźááşáááşááąá¸ááŹá¸áááŻááşá á˝ááşá¸ááᯠááąá¸á á˝ááşá¸áááˇáş á ááşá¸áááşáᲠ"git history" command ááᯠcommit áá áşááŻááᯠááźááşáááşáááşáĄáá˝ááş "git history fixup" ááŻááşááąáŹááşááťááşááźááˇáş áĄááşááááşááŻááşááŹá¸áááşá "fixup" ááŻááşááąáŹááşááťááşáááş "git add" áážáá áşáááˇáş áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ááᯠááááş commit áááŻáˇ áá˝ážáąáˇáááşáážááˇáş ááąáŹááşáááşáá˝á˛ commit áĄáŹá¸ááŻáśá¸ááᯠáĄáááŻáĄááťáąáŹááş ááźááşáááşááąá¸ááŹá¸áááş áá˝ááˇáşááźáŻáááşá áááşá¸áááş "git commit --fixup=" command ááᯠááŻááşááąáŹááşááźááşá¸áážááˇáş áááşáá°áááşá " áážááˇáş "git rebase --autosquash" ááᯠááŻááşááąáŹááşááźááşá¸ ~Âťá
- ááááşááąáŹááşá¸áĄáá˝ááş Linux fsmonitor background process ááᯠáĄááąáŹááşáĄáááşááąáŹáşááźáŽá¸ááźá áşááźáŽá¸ inotify mechanism ááᯠáĄááŻáśá¸ááźáŻá file system áĄáá˝ááşá¸áážá ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ááᯠá áąáŹááˇáşááźááˇáşááąá¸ááźáŽá¸ "git status" áá˛áˇáááŻáˇááąáŹ command ááťáŹá¸ááᯠááŻááşááąáŹááşáááˇáşáĄá፠áĄááŻááşááŻááşááąááąáŹ directory áá áşááŻááŻáśá¸ááᯠááźááşáááşá¸ááźááşá¸ááž áážáąáŹááşáážáŹá¸áááŻááşá áąááŤáááşá áááşá¸ááᯠ"core.fsmonitor" setting áážáá áşáááˇáş áá˝ááˇáşáááŻááşááŤáááşá
- "git repack" command ááᯠ"--write-midx=incremental" option ááźááˇáş update ááŻááşááŹá¸ááŤáááşá ᤠoption áááş incremental MIDX index (multi-pack index) áá˝ááş metadata ááᯠupdate ááŻááşáááş strategy áĄáá
áşáá
áşááŻááᯠáĄááąáŹááşáĄáááşááąáŹáşááąá¸ááźáŽá¸ index áá
áşááŻááŻáśá¸ááᯠrepack ááŻááşáááş ááááŻáĄááşááąáŹáˇááŤá incremental multi-pack index áááş packfiles ááťáŹá¸áá
áşááťážáąáŹááş object ááťáŹá¸á distribution áážááˇáşáááşáááşááąáŹ áĄááťááşáĄáááşááťáŹá¸ááŤáááşáááˇáş index ááźáŽá¸áá
áşááŻáááşá¸áĄá
áŹá¸ layer ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŤáááşá layer áá
áşááŻá
áŽáááş packfiles áĄááąáĄáá˝ááşááᯠáááşáážááşááŹá¸ááąáŹ áĄááąáĄáá˝ááşááźááˇáş ááŻáśá¸áĄáŻááşááŹá¸ááźáŽá¸ ááŽá¸ááźáŹá¸ bitmap file áá
áşááŻáá˝ááş ááááşá¸áááşá¸ááŹá¸áááşá á¤áá˝á˛áˇá
ááşá¸ááŻáśáááş packfiles áĄáá
áşááťáŹá¸áážá object ááťáŹá¸áĄááźáąáŹááşá¸ data ááťáŹá¸ááᯠindex áá˝ááşáááˇáşáá˝ááşá¸áááŻááşá
áąááźáŽá¸á áážáááźáŽá¸ááŹá¸ layer ááťáŹá¸ááᯠááźááşáááşáááşááąáŹááşááźááşá¸ááážááᲠindex áážááˇáş layer áĄáá
áşááťáŹá¸ááᯠááťáááşáááşááąá¸ááŤáááşá
"git repack --write-midx=incremental" command áááş áááźáŹááąá¸ááŽá áááşááŽá¸ááŹá¸ááąáŹ packfiles ááťáŹá¸ááŤáááşáááˇáş incremental MIDX index áááŻáˇ layer áĄáá áşáá áşáᯠáááşáááˇáşááąá¸áááşá "--geometric" repository packing mode áážááˇáş ááąáŤááşá¸á ááşáááŻááşááąáŹáĄááŤá command áĄáá áşáááş packfiles ááťáŹá¸á á˝áŹááž object áĄáá áşááťáŹá¸ááᯠáááŻááźáŽá¸ááąáŹ packfile áá áşááŻáááşá¸áĄááźá áş ááąáŤááşá¸á ááşáááŻááşá áąááźáŽá¸ áááŻáĄááşááŤá incremental MIDX index á áĄááŽá¸ááŹá¸áážá layer ááťáŹá¸á á˝áŹááᯠpacking áážááˇáş merge ááŻááşáááŻááşáááşá á¤ááťá°ááŹáááş "git repack" áĄáŹá¸ áĄááąáŤáşááś layer ááťáŹá¸áááŻáᏠááźááşáááşááąá¸ááŹá¸áááŻááşá áąááźáŽá¸ áĄááąáŹááşá¸ááťáŹá¸á áááŻááźáŽá¸ááąáŹ layer ááťáŹá¸ááᯠáááťááşá áŽá¸á áąááŤá áááşá¸áááş object á áŻá áŻááąáŤááşá¸áĄááąáĄáá˝ááşá logarithm áážááˇáş áĄááťááŻá¸ááťááąáŹ layer á áŻá áŻááąáŤááşá¸áĄááąáĄáá˝ááşááᯠááááşá¸ááááşá¸ááŹá¸ááźááşá¸ááźááˇáş layer chain á ááááşá¸ááťáŻááşáážáŻáá˛áˇ ááźáŽá¸áá˝áŹá¸áážáŻáááŻáááşá¸ ááŹáá˝ááşááąá¸áááşá
- object availability bitmaps ááťáŹá¸ááŻááşááŻááşááźááşá¸ááᯠááááŻáĄááşááąáŹ recursioná object positions ááťáŹá¸ááᯠcaching ááŻááşááźááşá¸á XOR operation áážááˇáşááąáŤááşá¸á ááşááźááşá¸áááźáŻáᎠbitmaps ááťáŹá¸ááᯠsort ááŻááşááźááşá¸áážááˇáş pseudo-merge bitmaps ááťáŹá¸áááşááŽá¸áááş code áááŻááźááşáááşááźááşáááşááźááşá¸áááŻáˇááᯠáááşáážáŹá¸ááąá¸áááˇáş object tree traversal algorithm áĄáá áşáážáá áşáááˇáş ááááááŹáᏠoptimize ááŻááşááŹá¸ááŤáááşá test repository áá˝ááşá ᤠoptimization ááťáŹá¸áááş bitmap ááŻááşááŻááşááťáááşááᯠááá á áášáááˇáşááž ááá á áášáááˇáşáĄáá ááťážáąáŹáˇááťááąá¸áá˛áˇááŤáááşá
- áááŻáĄá፠configuration áááŻááşááťáŹá¸áá˝ááş ááŽá¸ááźáŹá¸ hook ááťáŹá¸á parallel execution ááᯠááááŻááşááŤááźáŽá commit notes ááťáŹá¸ááᯠááźáąáŹááşá¸áá˛ááźááşá¸ áááŻáˇáááŻááş index ááťáŹá¸áážááˇáş working tree ááᯠá á áşááąá¸ááźááşá¸áá˛áˇáááŻáˇááąáŹ shared state ááᯠáááşááąáŹááşáážáŻáážáááąáŹ áááŻáˇáááŻááş áááˇáşáá˝ááşá¸á ááşá¸á áŹá¸ááąáŹ hook ááťáŹá¸ááᯠparallel ááźááˇáş ááááşáááşáááŻááşááŤá áááŻáˇááąáŹáş linter checking áážááˇáş unit testing áĄáá˝ááş hook ááťáŹá¸ááᯠparallel ááźááˇáş ááááşáááşáááŻááşááŤá parallel execution ááᯠáá˝ááˇáşááźáŻááąáŹ hook ááťáŹá¸ááᯠ"hook.hook_name.parallel = true" parameter ááᯠáĄááŻáśá¸ááźáŻá configure ááŻááşááŹá¸áááşá áá áşááźááŻááşáááşáááşá¸ ááŻááşááąáŹááşáááŻááşááąáŹ jobs áĄááąáĄáá˝ááşááᯠhook.jobsá hook setting ááž ááŻáśá¸ááźááşáááşá .jobs áááŻáˇáááŻááş "-j" command line optioná
- "git pack-objects --path-walk" command áááş áááŻáĄá፠"blob:none", "blob:limit=" áá˛áˇáááŻáˇááąáŹ filter ááťáŹá¸ááᯠáááşáážááşáááŻááşá áąááŤáááşá ", "áá áşáááş:á", "áĄááŹááášááŻ:áĄááťááŻá¸áĄá áŹá¸=" Âť, ÂŤ áážáŹá¸ááŤá¸áááş- " áážááˇáş "ááąáŤááşá¸á ááş:". á ááşá¸áááşáážáŻáá˝ááş "--path-walk" ááᯠááŻááşááąáŹááşáááˇáşáĄá፠blobs ááťáŹá¸ááᯠá á˝ááˇáşáá áşááźááşá¸áááş ááŻááşááŻááşááŹá¸ááąáŹ pack áááŻááşá áĄáá˝ááşáĄá áŹá¸ááᯠ16% ááťážáąáŹáˇááťááąá¸áá˛áˇáááşá
- commit list ááťáŹá¸áá˝ááşááąáŹáşááźááŹá¸ááąáŹ áááŻáˇáááŻááş arbitrary text áá˝ááşáá˝áąáˇáážááááąáŹ revision ááťáŹá¸áážááˇáş object name ááťáŹá¸ááᯠformat ááŻááşáááşáĄáá˝ááş "git format-rev" command áááŻáááˇáşáá˝ááşá¸ááŹá¸áááş (áĽáááŹá commit notes ááťáŹá¸ááᯠprocessing ááŻááşáááşáĄáá˝ááş hooks ááťáŹá¸áá˝ááş áááşá¸áááŻáĄááŻáśá¸ááźáŻáááŻááşáááş)á
git last-modified | git format-rev --stdin-mode=text --format=%an
Junio âââC Hamano builtin/commit.c
- ááŻááşáá˝ážááˇáşááąáŹ ááááşá¸áĄááťááşáĄáááş áááşááąáˇááťáşááťáŹá¸áážááˇáş áĄáážáŹá¸á áŹááŹá¸ááťáŹá¸áá˝ááş terminal control sequence áĄááťáŹá¸á áŻá Escape ááᯠdefault áĄááąááźááˇáş áá˝ááˇáşááŹá¸áááşá ááŹááŹáááąáŹááşá¸ááąáŹáááşá¸áááşá¸ááźááˇáş áááşááąáŹááşáááˇáşáĄá፠ááŹáᏠáááŻáá˛áˇáááŻáˇááąáŹ escape sequences ááťáŹá¸ááᯠoutput ááᯠáážááşáááş áááŻáˇáááŻááş ááźáŻááźááşáááşáĄáá˝ááş áĄááŻáśá¸ááźáŻáááŻááşáááşá áĽáááŹáĄáŹá¸ááźááˇáş cursor áá˝áąáˇááťáŹá¸áážáŻáážááˇáş á áŹááŹá¸ááᯠáážááşá¸áááşá¸áááşáĄáá˝ááş escape sequences ááťáŹá¸áážáá áşáááˇáşááźá áşáááşá element ááťáŹá¸ááᯠááŽá¸ááąáŹááşá¸áááŻá¸ááźáááşáĄáá˝ááş escape sequences ááťáŹá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠáááşáááşááááşá¸ááááşá¸ááŹá¸áááşá
- git checkout -m command áááş áááŻáĄá፠áááááášáááźá áşááąááąáŹ ááąááá˝ááşá¸ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ááᯠstash area áááŻáˇ áĄáááŻáĄááťáąáŹááş ááááşá¸áááşá¸ááąá¸ááŤáááşá
- "git push" command áááş command áá
áşááŻáááşá¸ááźááˇáş branch áá
áşááŻááᯠexternal Git server ááťáŹá¸á
á˝áŹáááŻáˇ push ááŻááşáá˝ááˇáşááźáŻáááşá áĽáááŹáĄáŹá¸ááźááˇáşá main branch ááᯠmain server áááŻáˇááŹáá mirrors áááŻáˇ push ááŻááşáááşáĄáá˝ááşá áááşáááş "publish" group áá
áşááŻááᯠáááşááŽá¸áááŻááşáááş ááŹááŹááťáŹá¸ "github", "gitlab" áážááˇáş "mirror":
git config remotes.publish "github gitlab mirror" ááᯠááŻááşááąááŤá
git push publish main - "git log --graph" command áá˝ááş áááŻáĄá፠"--graph-lane-limit=" option ááŤáážááááşá Âť áĄáááŻááşá¸áĄáááşááťáŹá¸ááᯠááźááşááąáŹááşáááˇáşáĄá፠ááąáŤááşáááŻááşááŹá¸áĄááąáĄáá˝ááşááᯠáááˇáşáááşáááşá áááşá¸áááş áĄáááŻááşá¸áĄáááşááťáŹá¸á
á˝áŹááŤáážáááąáŹ repositories ááťáŹá¸áá˝ááş commit data áĄáá˝ááş ááťááşáážáŹááźááşááąáŤáşáá˝ááş ááąááŹááťááşááŹá¸áááŻááşá
áąááŤáááşá
...
* | | | | | 619931f561 'dl/posix-unused-warning-clang' ááąáŤááşá¸á ááşá¸áááş ááááˇáşááťáş
|\ \ \ \ \
| * | | | ~ cf48887610 compat/posix.h: GIT_GNUC_PREREQ() áážááŻááşá¸áážááşáážáŻááᯠáááŻá¸áážááşá¸áĄáąáŹááşááźáŻááŻááşááŤ
| * | | | ~ ffd45926dc compat/posix.h: GIT_GNUC_PREREQ() áážááˇáş áĄááŻáśá¸áááźáŻáááąá¸ááąáŹ áĄááŹááťáŹá¸ááᯠáážááşá¸áááşá¸ááŤ
|\ \ \ \ \ \~
| * | | | ~3f5203eeb4 ls-files: lstat ááááŻááşáᎠpathspec ááᯠá á áşááŻááşá፠- "git log" áážááˇáş "git rev-list" command ááťáŹá¸áá˝ááş áááŻáĄá፠"--max-count-oldest=" option áážáááŤááźáŽá á áááşá¸á áĄáá˝áŹáĄááąá¸áá áşááŻáážá áĄáááşáĄááźáŽá¸ááŻáśá¸ commits N ááŻááᯠáá˝áąá¸ááťááşáááŻááşá áąááŤáááşá
source: opennet.ru
