Git 2.36 ಮೂಲ ನಿಯಂತ್ರಣ ಬಿಡುಗಡೆ

ಮೂರು ತಿಂಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ವಿತರಿಸಿದ ಮೂಲ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆ Git 2.36 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ. Git ಅತ್ಯಂತ ಜನಪ್ರಿಯ, ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಇದು ಶಾಖೆಯ ಮತ್ತು ವಿಲೀನದ ಆಧಾರದ ಮೇಲೆ ಹೊಂದಿಕೊಳ್ಳುವ ರೇಖಾತ್ಮಕವಲ್ಲದ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇತಿಹಾಸದ ಸಮಗ್ರತೆ ಮತ್ತು ಹಿಂದಿನ ಬದಲಾವಣೆಗಳಿಗೆ ಪ್ರತಿರೋಧವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಪ್ರತಿ ಕಮಿಟ್‌ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಹಿಂದಿನ ಇತಿಹಾಸದ ಸೂಚ್ಯ ಹ್ಯಾಶಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ; ಡೆವಲಪರ್‌ಗಳ ಡಿಜಿಟಲ್ ಸಹಿಗಳೊಂದಿಗೆ ವೈಯಕ್ತಿಕ ಟ್ಯಾಗ್‌ಗಳು ಮತ್ತು ಕಮಿಟ್‌ಗಳನ್ನು ಪ್ರಮಾಣೀಕರಿಸಲು ಸಹ ಸಾಧ್ಯವಿದೆ.

ಹಿಂದಿನ ಬಿಡುಗಡೆಗೆ ಹೋಲಿಸಿದರೆ, ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ 717 ಬದಲಾವಣೆಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲಾಗಿದೆ, 96 ಡೆವಲಪರ್‌ಗಳ ಭಾಗವಹಿಸುವಿಕೆಯೊಂದಿಗೆ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಅದರಲ್ಲಿ 26 ಮೊದಲ ಬಾರಿಗೆ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಭಾಗವಹಿಸಿದವು. ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • “git log” ಮತ್ತು “git show” ಆಜ್ಞೆಗಳು ಈಗ “—remerge-diff” ಆಯ್ಕೆಯನ್ನು ಹೊಂದಿದ್ದು ಅದು ವಿಲೀನದ ಒಟ್ಟಾರೆ ಫಲಿತಾಂಶ ಮತ್ತು “ವಿಲೀನ” ಆಜ್ಞೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದ ನಂತರ ಕಮಿಟ್‌ನಲ್ಲಿ ಪ್ರತಿಫಲಿಸುವ ನೈಜ ಡೇಟಾದ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ತೋರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. , ವಿಲೀನ ಸಂಘರ್ಷಗಳನ್ನು ಪರಿಹರಿಸುವ ಪರಿಣಾಮವಾಗಿ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ "git ಶೋ" ಆಜ್ಞೆಯು ವಿಭಿನ್ನ ಸಂಘರ್ಷ ಪರಿಹಾರಗಳನ್ನು ಇಂಡೆಂಟ್ ಮಾಡುತ್ತದೆ, ಬದಲಾವಣೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕಷ್ಟವಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, "+/-" ಸಾಲಿನ ಕೆಳಗಿನ ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ನಲ್ಲಿ ಇಂಡೆಂಟೇಶನ್ ಇಲ್ಲದೆ ಮೊದಲ ಶಾಖೆಯಲ್ಲಿನ ಕಾಮೆಂಟ್‌ನಲ್ಲಿ sha1 ಅನ್ನು oid ಎಂದು ಮರುಹೆಸರಿಸಲು ಸಂಬಂಧಿಸಿದ ಸಂಘರ್ಷದ ಕೊನೆಯ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಇಂಡೆಂಟೇಶನ್‌ನೊಂದಿಗೆ "+/-" ಆರಂಭಿಕವನ್ನು ತೋರಿಸುತ್ತದೆ dwim_ref() ಫಂಕ್ಷನ್‌ನಲ್ಲಿ ಎರಡನೇ ಶಾಖೆಯಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಆರ್ಗ್ಯುಮೆಂಟ್ ಕಾಣಿಸಿಕೊಳ್ಳುವುದರಿಂದ ಉಂಟಾಗುವ ಸಂಘರ್ಷದ ಪರಿಹಾರ.
    Git 2.36 ಮೂಲ ನಿಯಂತ್ರಣ ಬಿಡುಗಡೆ

    "--remerge-diff" ಆಯ್ಕೆಯನ್ನು ಬಳಸುವಾಗ, ಸಂಘರ್ಷ ನಿರ್ಣಯಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಪ್ರತಿ ಮೂಲ ಶಾಖೆಗೆ ಪ್ರತ್ಯೇಕಿಸಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ವಿಲೀನ ಸಂಘರ್ಷಗಳನ್ನು ಹೊಂದಿರುವ ಫೈಲ್ ಮತ್ತು ಸಂಘರ್ಷಗಳನ್ನು ಪರಿಹರಿಸಿದ ಫೈಲ್ ನಡುವಿನ ಒಟ್ಟಾರೆ ವ್ಯತ್ಯಾಸಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ.

    Git 2.36 ಮೂಲ ನಿಯಂತ್ರಣ ಬಿಡುಗಡೆ

  • fsync() ಫಂಕ್ಷನ್‌ಗೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ ಡಿಸ್ಕ್ ಕ್ಯಾಶ್‌ಗಳನ್ನು ಫ್ಲಶಿಂಗ್ ಮಾಡಲು ವರ್ತನೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಲ್ಲಿ ಹೆಚ್ಚಿದ ನಮ್ಯತೆ. ಹಿಂದೆ ಲಭ್ಯವಿರುವ core.fsyncObjectFiles ನಿಯತಾಂಕವನ್ನು core.fsync ಮತ್ತು core.fsyncMethod ಎಂಬ ಎರಡು ಕಾನ್ಫಿಗರೇಶನ್ ವೇರಿಯೇಬಲ್‌ಗಳಾಗಿ ವಿಭಜಿಸಲಾಗಿದೆ, fsync ಅನ್ನು ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್‌ಗಳಿಗೆ (.git/objects) ಮಾತ್ರವಲ್ಲದೆ ಲಿಂಕ್‌ಗಳಂತಹ ಇತರ git ರಚನೆಗಳಿಗೂ ಅನ್ವಯಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. .git /refs), ರೆಫ್ಲಾಗ್ ಮತ್ತು ಫೈಲ್‌ಗಳನ್ನು ಪ್ಯಾಕ್ ಮಾಡಿ.

    core.fsync ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು, ನೀವು ಆಂತರಿಕ Git ರಚನೆಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ಇದಕ್ಕಾಗಿ fsync ಅನ್ನು ಹೆಚ್ಚುವರಿಯಾಗಿ ಬರೆಯುವ ಕಾರ್ಯಾಚರಣೆಯ ನಂತರ ಕರೆಯಲಾಗುತ್ತದೆ. core.fsyncMethod ವೇರಿಯೇಬಲ್ ಸಂಗ್ರಹವನ್ನು ಫ್ಲಶ್ ಮಾಡುವ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಅದೇ ಹೆಸರಿನ ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಬಳಸಲು ನೀವು fsync ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು ಅಥವಾ pagecache ರೈಟ್‌ಬ್ಯಾಕ್ ಅನ್ನು ಬಳಸಲು ರೈಟ್‌ಔಟ್ ಅನ್ನು ಮಾತ್ರ ಸೂಚಿಸಬಹುದು.

  • ಇತರ ಬಳಕೆದಾರರ .git ಡೈರೆಕ್ಟರಿಗಳ ಪರ್ಯಾಯವನ್ನು ಹಂಚಿಕೊಂಡ ವಿಭಾಗಗಳಾಗಿ ಕುಶಲತೆಯಿಂದ ರಕ್ಷಿಸಲು, ರೆಪೊಸಿಟರಿ ಮಾಲೀಕರ ಪರಿಶೀಲನೆಯನ್ನು ಬಲಪಡಿಸಲಾಗಿದೆ. ಯಾವುದೇ git ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದನ್ನು ಈಗ ಅವರ ಸ್ವಂತ ".git" ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಮಾತ್ರ ಅನುಮತಿಸಲಾಗಿದೆ. ರೆಪೊಸಿಟರಿಯೊಂದಿಗಿನ ಡೈರೆಕ್ಟರಿಯು ಮತ್ತೊಂದು ಬಳಕೆದಾರರಿಗೆ ಸೇರಿದ್ದರೆ, ನಂತರ ದೋಷವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಸುರಕ್ಷಿತ.ಡೈರೆಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಈ ನಡವಳಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.
  • Git ಆಬ್ಜೆಕ್ಟ್‌ಗಳ ಮೂಲ ವಿಷಯಗಳನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಲು ಉದ್ದೇಶಿಸಲಾದ “git cat-file” ಆಜ್ಞೆಯನ್ನು “--batch-command” ಆಯ್ಕೆಯೊಂದಿಗೆ ಪೂರಕಗೊಳಿಸಲಾಗಿದೆ, ಇದು ಹಿಂದೆ ಲಭ್ಯವಿರುವ “--batch” ಮತ್ತು “--batch-check ಗೆ ಪೂರಕವಾಗಿದೆ. "ವಿಷಯವನ್ನು ಪ್ರದರ್ಶಿಸಲು " ವಿಷಯಗಳು <object>" ಅಥವಾ ವಸ್ತುವಿನ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು "ಮಾಹಿತಿ <object>" ಬಳಸಿಕೊಂಡು ಔಟ್‌ಪುಟ್ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರುವ ಆಜ್ಞೆಗಳು. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಔಟ್ಪುಟ್ ಬಫರ್ ಅನ್ನು ಫ್ಲಶ್ ಮಾಡಲು "ಫ್ಲಶ್" ಆಜ್ಞೆಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.
  • ಆಬ್ಜೆಕ್ಟ್ ಟ್ರೀಯ ವಿಷಯಗಳ ಪಟ್ಟಿಯನ್ನು ರಚಿಸಲು ಉದ್ದೇಶಿಸಲಾದ "git ls-tree" ಆಜ್ಞೆಗೆ, "-ಆಯ್ಡ್-ಮಾತ್ರ" ("-ಆಬ್ಜೆಕ್ಟ್-ಮಾತ್ರ") ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ, "-ಹೆಸರು-ಮಾತ್ರ ”, ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಂದ ಕರೆಯನ್ನು ಸರಳಗೊಳಿಸಲು ಕೇವಲ ಆಬ್ಜೆಕ್ಟ್ ಐಡೆಂಟಿಫೈಯರ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. "--ಫಾರ್ಮ್ಯಾಟ್" ಆಯ್ಕೆಯನ್ನು ಸಹ ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು ಮೋಡ್, ಪ್ರಕಾರ, ಹೆಸರು ಮತ್ತು ಗಾತ್ರದ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಸ್ವಂತ ಔಟ್‌ಪುಟ್ ಸ್ವರೂಪವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • “git bisect run” ಆಜ್ಞೆಯು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಹೊಂದಿಸದೆ ಇರುವ ಪತ್ತೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಈ ಸಂದರ್ಭದಲ್ಲಿ 126 ಅಥವಾ 127 ಕೋಡ್‌ಗಳೊಂದಿಗೆ ದೋಷಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ (ಹಿಂದೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಎಲ್ಲಾ ಪರಿಷ್ಕರಣೆಗಳು ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿವೆ ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ) .
  • ಈಗಾಗಲೇ ಸ್ಥಳೀಯ ಸಿಸ್ಟಂನಲ್ಲಿರುವ ವಿಷಯಗಳ ಬಗ್ಗೆ ಇತರ ಪಕ್ಷಕ್ಕೆ ತಿಳಿಸದೆಯೇ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ತರಲು "git fetch" ಆಜ್ಞೆಗೆ --refech ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಸ್ಥಳೀಯ ಡೇಟಾದ ಸಮಗ್ರತೆಯು ಅನಿಶ್ಚಿತವಾಗಿರುವಾಗ ವೈಫಲ್ಯಗಳಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಈ ನಡವಳಿಕೆಯು ಉಪಯುಕ್ತವಾಗಿದೆ.
  • "git update-index", "git checkout-index", "git read-tree" ಮತ್ತು "git clean" ಕಮಾಂಡ್‌ಗಳು ಈಗ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮತ್ತು ಭಾಗಶಃ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಜಾಗವನ್ನು ಉಳಿಸಲು ಭಾಗಶಃ ಸೂಚ್ಯಂಕಗಳನ್ನು (ವಿರಳ ಸೂಚ್ಯಂಕ) ಬೆಂಬಲಿಸುತ್ತವೆ. ಕ್ಲೋನಿಂಗ್ (ವಿರಳ-ಚೆಕ್ಔಟ್).
  • “git clone —filter=... —recurse-submodules” ಆಜ್ಞೆಯ ವರ್ತನೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ, ಇದು ಈಗ ಉಪ ಮಾಡ್ಯೂಲ್‌ಗಳ ಭಾಗಶಃ ಕ್ಲೋನಿಂಗ್‌ಗೆ ಕಾರಣವಾಗುತ್ತದೆ (ಹಿಂದೆ, ಅಂತಹ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ, ಫಿಲ್ಟರ್ ಅನ್ನು ಮುಖ್ಯ ವಿಷಯಕ್ಕೆ ಮಾತ್ರ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಬ್ ಮಾಡ್ಯೂಲ್‌ಗಳು ಫಿಲ್ಟರ್ ಅನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳದೆ ಸಂಪೂರ್ಣವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಲಾಗಿದೆ).
  • "git bundle" ಆಜ್ಞೆಯು ಆಂಶಿಕ ಕ್ಲೋನಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳಂತೆಯೇ ಆಯ್ದ ವಿಷಯವನ್ನು ಇರಿಸಲು ಫಿಲ್ಟರ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಿದೆ.
  • ಸಬ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ಚಲಿಸಲು "git ಶಾಖೆ" ಆಜ್ಞೆಗೆ "--recurse-submodules" ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಯೂಸರ್ಡಿಫ್ ಕೋಟ್ಲಿನ್ ಭಾಷೆಗೆ ಹೊಸ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ನೀಡುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ