ืคื™ื™ืกื‘ื•ืง ื—ื•ืฉืคืช ืžืขืจื›ืช ื‘ืงืจืช ืžืงื•ืจ ื—ื“ืฉื” Sapling

ืคื™ื™ืกื‘ื•ืง (ืืกื•ืจื” ื‘ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช) ืคืจืกืžื” ืืช ืžืขืจื›ืช ื‘ืงืจืช ื”ืžืงื•ืจื•ืช Sapling, ื”ืžืฉืžืฉืช ืœืคื™ืชื•ื— ืคืจื•ื™ืงื˜ื™ื ืคื ื™ืžื™ื™ื ืฉืœ ื”ื—ื‘ืจื”. ื”ืžืขืจื›ืช ืฉื•ืืคืช ืœืกืคืง ืžืžืฉืง ื‘ืงืจืช ื’ืจืกืื•ืช ืžื•ื›ืจ ืฉื™ื›ื•ืœ ืœื”ืชืื™ื ืขื‘ื•ืจ ืžืื’ืจื™ื ื’ื“ื•ืœื™ื ืžืื•ื“ ื”ืžืฉืชืจืขื™ื ืขืœ ืคื ื™ ืขืฉืจื•ืช ืžื™ืœื™ื•ื ื™ ืงื‘ืฆื™ื, ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ื•ืขื ืคื™ื. ืงื•ื“ ื”ืœืงื•ื— ื›ืชื•ื‘ ื‘-Python ื•-Rust, ื•ื”ื•ื ืคืชื•ื— ืชื—ืช ืจื™ืฉื™ื•ืŸ GPLv2.

ืคื•ืชื— ื—ืœืง ืฉืจืช ื‘ื ืคืจื“ ืœืขื‘ื•ื“ื” ืžืจื—ื•ืง ื™ืขื™ืœื” ืขื ืžืื’ืจื™ื ื•ืžืขืจื›ืช ืงื‘ืฆื™ื ื•ื™ืจื˜ื•ืืœื™ืช ืœืขื‘ื•ื“ื” ืขื ืคืจื•ืกื” ืžืงื•ืžื™ืช ืฉืœ ื—ืœืง ืžื”ืžืื’ืจ ื›ืžืื’ืจ ืฉืœื (ื”ืžืคืชื— ืจื•ืื” ืืช ื›ืœ ื”ืžืื’ืจ, ืืš ืจืง ืืช ื”ื ืชื•ื ื™ื ื”ื ื“ืจืฉื™ื ืืœื™ื”ื ื ื™ื’ืฉื™ื ืžื•ืขืชืง ืœืžืขืจื›ืช ื”ืžืงื•ืžื™ืช). ื”ืงื•ื“ ืœืจื›ื™ื‘ื™ื ืืœื• ื”ืžืฉืžืฉื™ื ื‘ืชืฉืชื™ืช ืฉืœ ืคื™ื™ืกื‘ื•ืง ืขื“ื™ื™ืŸ ืœื ืคืชื•ื—, ืืš ื”ื—ื‘ืจื” ื”ื‘ื˜ื™ื—ื” ืœืคืจืกื ืื•ืชื• ื‘ืขืชื™ื“. ืขื ื–ืืช, ื›ืจื’ืข ื‘ืžืื’ืจ Sapling ื›ื‘ืจ ื ื™ืชืŸ ืœืžืฆื•ื ืื‘ื•ืช ื˜ื™ืคื•ืก ืฉืœ ืฉืจืช Mononoke (ื‘-Rust) ื•-VFS EdenFS (ื‘-C++). ืจื›ื™ื‘ื™ื ืืœื• ื”ื ืื•ืคืฆื™ื•ื ืœื™ื™ื ื•ืžืกืคื™ืง ืœืงื•ื— Sapling ื›ื“ื™ ืœืขื‘ื•ื“, ื”ืชื•ืžืš ื‘ืฉื™ื‘ื•ื˜ ืžืื’ืจื™ Git, ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืฉืจืชื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ Git LFS ื•ืขื‘ื•ื“ื” ืขื ืืชืจื™ ืื—ืกื•ืŸ git ื›ื’ื•ืŸ GitHub.

ื”ืจืขื™ื•ืŸ ื”ืžืจื›ื–ื™ ืฉืœ ื”ืžืขืจื›ืช ื”ื•ื ืฉื‘ืขืช ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื—ืœืง ืฉืจืช ืžื™ื•ื—ื“ ื”ืžืกืคืง ืื—ืกื•ืŸ ืฉืœ ื”ืžืื’ืจ, ื›ืœ ื”ืคืขื•ืœื•ืช ืžื•ืชืืžื•ืช ื‘ื”ืชืื ืœืžืกืคืจ ื”ืงื‘ืฆื™ื ื”ืžืฉืžืฉื™ื ื‘ืคื•ืขืœ ื‘ืงื•ื“ ืขืœื™ื• ืขื•ื‘ื“ ื”ืžืคืชื—, ื•ืื™ื ืŸ ืชืœื•ื™ื•ืช ื‘ื•. ื”ื’ื•ื“ืœ ื”ื›ื•ืœืœ ืฉืœ ื”ืžืื’ืจ ื›ื•ืœื•. ืœื“ื•ื’ืžื”, ืžืคืชื— ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ืจืง ื‘ื—ืœืง ืงื˜ืŸ ืฉืœ ืงื•ื“ ืžืžืื’ืจ ื’ื“ื•ืœ ืžืื•ื“ ื•ืจืง ื—ืœืง ืงื˜ืŸ ื–ื” ื™ื•ืขื‘ืจ ืœืžืขืจื›ืช ืฉืœื•, ืœื ืœืžืื’ืจ ื›ื•ืœื•. ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื” ืžืชืžืœืืช ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืขื ื”ื’ื™ืฉื” ืœืงื‘ืฆื™ื ืžื”ืžืื’ืจ, ืžื” ืฉืžืฆื“ ืื—ื“ ืžืืคืฉืจ ืœืš ืœื”ืื™ืฅ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืขื‘ื•ื“ื” ืขื ื”ื—ืœืง ืฉืœืš ื‘ืงื•ื“, ืืš ืžืฆื“ ืฉื ื™ ืžื•ื‘ื™ืœ ืœื”ืื˜ื” ื‘ื’ื™ืฉื” ืœืงื‘ืฆื™ื ื—ื“ืฉื™ื ืขื‘ื•ืจ ื‘ืคืขื ื”ืจืืฉื•ื ื” ื•ื“ื•ืจืฉ ื’ื™ืฉื” ืžืชืžื“ืช ืœืจืฉืช (ื ื™ืชืŸ ื‘ื ืคืจื“ ื‘ืžืฆื‘ ืœื ืžืงื•ื•ืŸ ืœื”ื›ื ืช ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช).

ื‘ื ื•ืกืฃ ืœื˜ืขื™ื ืช ื ืชื•ื ื™ื ืื“ืคื˜ื™ื‘ื™ืช, Sapling ืžื™ื™ืฉืžืช ื’ื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืžื˜ืจืชืŸ ืœืฆืžืฆื ืืช ื˜ืขื™ื ืช ื”ืžื™ื“ืข ืขื ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ืฉื™ื ื•ื™ื™ื (ืœื“ื•ื’ืžื”, 3/4 ืžื”ื ืชื•ื ื™ื ื‘ืžืื’ืจ ืขื ืœื™ื‘ืช ืœื™ื ื•ืงืก ื”ื ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ืฉื™ื ื•ื™ื™ื). ื›ื“ื™ ืœืขื‘ื•ื“ ื‘ื™ืขื™ืœื•ืช ืขื ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ืฉื™ื ื•ื™ื™ื, ื”ื ืชื•ื ื™ื ื”ืงืฉื•ืจื™ื ืืœื™ื• ืžืื•ื—ืกื ื™ื ื‘ื™ื™ืฆื•ื’ ืžืคื•ืœื— ื”ืžืืคืฉืจ ืœื”ื•ืจื™ื“ ื—ืœืงื™ื ื‘ื•ื“ื“ื™ื ืฉืœ ื’ืจืฃ ื”-commit ืžื”ืฉืจืช. ื”ืœืงื•ื— ื™ื›ื•ืœ ืœื‘ืงืฉ ืžื™ื“ืข ืžื”ืฉืจืช ืขืœ ื”ืงืฉืจ ื‘ื™ืŸ ืžืกืคืจ commits ื•ืœื”ื•ืจื™ื“ ืจืง ืืช ื”ื—ืœืง ื”ื“ืจื•ืฉ ืžื”ื’ืจืฃ.

ื”ืคืจื•ื™ืงื˜ ื”ืชืคืชื— ื‘ืžื”ืœืš 10 ื”ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช ื•ื ื•ืฆืจ ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ื‘ืขืช ืืจื’ื•ืŸ ื’ื™ืฉื” ืœืžืื’ืจื™ื ืžื•ื ื•ืœื™ื˜ื™ื™ื ื’ื“ื•ืœื™ื ืžืื•ื“ ืขื ืกื ื™ืฃ ืžืืกื˜ืจ ืื—ื“, ืฉื”ืฉืชืžืฉ ื‘ืคืขื•ืœืช "rebase" ื‘ืžืงื•ื "ืžื™ื–ื•ื’". ื‘ืื•ืชื” ืชืงื•ืคื” ืœื ื”ื™ื• ืคืชืจื•ื ื•ืช ืคืชื•ื—ื™ื ืœืขื‘ื•ื“ื” ืขื ืžืื’ืจื™ื ื›ืืœื”, ื•ืžื”ื ื“ืกื™ ืคื™ื™ืกื‘ื•ืง ื”ื—ืœื™ื˜ื• ืœื™ืฆื•ืจ ืžืขืจื›ืช ื‘ืงืจืช ื’ืจืกืื•ืช ื—ื“ืฉื” ืฉืชืขื ื” ืขืœ ืฆืจื›ื™ ื”ื—ื‘ืจื”, ื‘ืžืงื•ื ืœืคืฆืœ ืคืจื•ื™ืงื˜ื™ื ืœืžืื’ืจื™ื ืงื˜ื ื™ื, ืžื” ืฉื™ื•ื‘ื™ืœ ืœืžื•ืจื›ื‘ื•ืช ืฉืœ ื ื™ื”ื•ืœ ืชืœื•ืช (ื‘ื‘ืช ืื—ืช, ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื“ื•ืžื”, ืžื™ืงืจื•ืกื•ืคื˜ ื™ืฆืจื” ืฉื›ื‘ืช GVFS). ื‘ืชื—ื™ืœื”, ืคื™ื™ืกื‘ื•ืง ื”ืฉืชืžืฉื” ื‘ืžืขืจื›ืช Mercurial ื•ื‘ืคืจื•ื™ืงื˜ Sapling ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ ืฉืคื•ืชื— ื›ืชื•ืกืคืช ืœ-Mercurial. ืขื ื”ื–ืžืŸ, ื”ืžืขืจื›ืช ื”ืคื›ื” ืœืคืจื•ื™ืงื˜ ืขืฆืžืื™ ืขื ืคืจื•ื˜ื•ืงื•ืœ, ืคื•ืจืžื˜ ืื—ืกื•ืŸ ื•ืืœื’ื•ืจื™ืชืžื™ื ืžืฉืœื”, ืืฉืจ ื”ื•ืจื—ื‘ ื’ื ืขื ื™ื›ื•ืœืช ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืžืื’ืจื™ Git.

ืœืขื‘ื•ื“ื”, ืžื•ืฆืขืช ืฉื™ืจื•ืช ืฉื•ืจืช ืคืงื•ื“ื” "sl", ื”ืžื™ื™ืฉืžืช ืžื•ืฉื’ื™ื ื˜ื™ืคื•ืกื™ื™ื, ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ื•ืžืžืฉืง ื”ืžื•ื›ืจ ืœืžืคืชื—ื™ื ื”ืžื›ื™ืจื™ื ืืช Git ื•-Mercurial. ื”ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ื•ื”ืคืงื•ื“ื•ืช ื‘-Sapling ืฉื•ื ื™ื ืžืขื˜ ืž-Git ื•ืงืจื•ื‘ื™ื ื™ื•ืชืจ ืœ-Mercurial. ืœื“ื•ื’ืžื”, ื‘ืžืงื•ื ืกื ื™ืคื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘"ืกื™ืžื ื™ื•ืช" (ืขื ืคื™ื ื‘ืขืœื™ ืฉื ืื™ื ื ื ืชืžื›ื™ื), ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื‘ืขืช ื‘ื™ืฆื•ืข ืฉื™ื‘ื•ื˜/ืžืฉื™ื›ื”, ืœื ื›ืœ ื”ืžืื’ืจ ื ื˜ืขืŸ, ืืœื ืจืง ื”ืกื ื™ืฃ ื”ืจืืฉื™, ืื™ืŸ ืกื™ืžื•ืŸ ืžืงื“ื™ื ืฉืœ commits ( ืื–ื•ืจ ื”ื‘ืžื”), ื‘ืžืงื•ื "git fetch" ื”ืคืงื•ื“ื” "sl" ืžืฉืžืฉืช pull", ื‘ืžืงื•ื "git pull" - "sl pull -rebase", ื‘ืžืงื•ื "git checkout COMMIT" - "sl goto COMMIT", ื‘ืžืงื•ื "git reflog" - "sl journal", ืœื‘ื™ื˜ื•ืœ ืฉื™ื ื•ื™ ื‘ืžืงื•ื "git checkout - FILE" ืžืฆื•ื™ืŸ "sl revert FILE", ื•-"." ืžืฉืžืฉ ืœื–ื™ื”ื•ื™ ืขื ืฃ "HEAD". ืื‘ืœ ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืžื•ืฉื’ื™ื ื”ื›ืœืœื™ื™ื ืฉืœ ืขื ืคื™ื ื•ืคืขื•ืœื•ืช ืฉื™ื‘ื•ื˜/ืžืฉื™ื›ื”/ื“ื—ื™ืคื”/ื”ืชื—ื™ื™ื‘ื•ืช/ื‘ืกื™ืก ืžื—ื“ืฉ ื ืฉืžืจื™ื.

ื‘ื™ืŸ ื”ืชื›ื•ื ื•ืช ื”ื ื•ืกืคื•ืช ืฉืœ ืขืจื›ืช ื”ื›ืœื™ื Sapling, ื‘ื•ืœื˜ืช ืชืžื™ื›ื” ื‘-"smartlog", ื”ืžืืคืฉืจืช ืœืš ืœื”ืขืจื™ืš ื—ื–ื•ืชื™ืช ืืช ืžืฆื‘ ื”ืžืื’ืจ ืฉืœืš, ืœื”ื“ื’ื™ืฉ ืืช ื”ืžื™ื“ืข ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ ื•ืœืกื ืŸ ืคืจื˜ื™ื ืœื ื—ืฉื•ื‘ื™ื. ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืืชื” ืžืคืขื™ืœ ืืช ื›ืœื™ ื”ืฉื™ืจื•ืช sl ืœืœื ืืจื’ื•ืžื ื˜ื™ื, ืจืง ื”ืฉื™ื ื•ื™ื™ื ื”ืžืงื•ืžื™ื™ื ืฉืœืš ืžื•ืฆื’ื™ื ืขืœ ื”ืžืกืš (ืื—ืจื™ื ืžืžื•ื–ืขืจื™ื), ื”ืžืฆื‘ ืฉืœ ืกื ื™ืคื™ื ื—ื™ืฆื•ื ื™ื™ื, ืงื‘ืฆื™ื ืฉื”ืฉืชื ื• ื•ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืฉืœ commits ืžื•ืฆื’ื™ื. ื‘ื ื•ืกืฃ, ืžื•ืฆืข ืžืžืฉืง ืื™ื ื˜ืจื ื˜ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™, ื”ืžืืคืฉืจ ืœื ื•ื•ื˜ ืžื”ื™ืจ ื‘ื™ื•ืžืŸ ื”ื—ื›ื, ืœืฉื ื•ืช ืขืฅ ื•-commits.

ืคื™ื™ืกื‘ื•ืง ื—ื•ืฉืคืช ืžืขืจื›ืช ื‘ืงืจืช ืžืงื•ืจ ื—ื“ืฉื” Sapling

ืฉื™ืคื•ืจ ื‘ื•ืœื˜ ื ื•ืกืฃ ื‘-Sapling ื”ื•ื ืฉื”ื•ื ืžืงืœ ืขืœ ืชื™ืงื•ืŸ ื•ืคืชืจื•ืŸ ืฉื’ื™ืื•ืช ื•ื”ื—ื–ืจื” ืœืžืฆื‘ ืงื•ื“ื. ืœื“ื•ื’ืžื”, ื”ืคืงื•ื“ื•ืช "sl undo", "sl redo", "sl uncommit" ื•-"sl unamend" ืžื•ืฆืขื•ืช ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืคืขื•ืœื•ืช ืจื‘ื•ืช ืœืื—ื•ืจ; ื”ืคืงื•ื“ื•ืช "sl hide" ื•-"sl unhide" ืžืฉืžืฉื•ืช ืœื”ืกืชืจืช commits ื‘ืื•ืคืŸ ื–ืžื ื™; ื•ืœื ื™ื•ื•ื˜ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื“ืจืš ืžืฆื‘ื™ื ื™ืฉื ื™ื ื•ื—ื–ืจื” ืœื ืงื•ื“ื” ืฉืฆื•ื™ื ื” ืขื ื”ืคืงื•ื“ื” "sl undo -i command". Sapling ืชื•ืžืš ื’ื ื‘ืงื•ื ืกืคื˜ ืฉืœ ืžื—ืกื ื™ืช commit, ื”ืžืืคืฉืจืช ืœืš ืœืืจื’ืŸ ื‘ื™ืงื•ืจื•ืช ืฉืœื‘ ืื—ืจ ืฉืœื‘ ืขืœ ื™ื“ื™ ืคื™ืฆื•ืœ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืžื•ืจื›ื‘ืช ืœืกื˜ ืฉืœ ืฉื™ื ื•ื™ื™ื ืžืฆื˜ื‘ืจื™ื ืงื˜ื ื™ื ื•ืžื•ื‘ื ื™ื ื™ื•ืชืจ (ืžืžืกื’ืจืช ื‘ืกื™ืกื™ืช ืœืคื•ื ืงืฆื™ื” ืžื•ื’ืžืจืช).

ื”ื•ื›ื ื• ืžืกืคืจ ืชื•ืกืคื•ืช ืขื‘ื•ืจ Sapling, ื›ื•ืœืœ ืžืžืฉืง ReviewStack ืœื‘ื“ื™ืงืช ืฉื™ื ื•ื™ื™ื (ืงื•ื“ ืชื—ืช GPLv2), ื”ืžืืคืฉืจ ืœืš ืœืขื‘ื“ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ื‘-GitHub ื•ืœื”ืฉืชืžืฉ ื‘ืชืฆื•ื’ืช ืžื—ืกื ื™ืช ืฉืœ ืฉื™ื ื•ื™ื™ื. ื‘ื ื•ืกืฃ, ืคื•ืจืกืžื• ืชื•ืกืคื•ืช ืœืื™ื ื˜ื’ืจืฆื™ื” ืขื ืขื•ืจื›ื™ VSCode ื•- TextMate, ื›ืžื• ื’ื ื”ื˜ืžืขืช ืžืžืฉืง ื•ืฉืจืช ISL (Interactive SmartLog).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”