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

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

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

  • ಬದಲಾವಣೆಗಳ ಇತಿಹಾಸದಿಂದ ಅಂಕಿಅಂಶಗಳೊಂದಿಗೆ ಸಾರಾಂಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ “git shortlog” ಆಜ್ಞೆಯು ಲೇಖಕ ಅಥವಾ ಕಮಿಟರ್‌ಗೆ ಸೀಮಿತವಾಗಿರದ ಕ್ಷೇತ್ರಗಳ ಮೂಲಕ ಕಮಿಟ್‌ಗಳ ಅನಿಯಂತ್ರಿತ ಗುಂಪಿಗೆ “-ಗುಂಪು” ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಿದೆ. ಉದಾಹರಣೆಗೆ, "Co-authored-by" ಕ್ಷೇತ್ರದಲ್ಲಿ ಉಲ್ಲೇಖಿಸಲಾದ ಸಹಾಯಕರನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು, ಬದಲಾವಣೆಗಳ ಸಂಖ್ಯೆಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯೊಂದಿಗೆ ಡೆವಲಪರ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು: git shortlog -ns --group=author - -ಗುಂಪು=ಟ್ರೇಲರ್:ಸಹ ಲೇಖಕರು

    ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸ್ಪೆಸಿಫೈಯರ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಶಾರ್ಟ್‌ಲಾಗ್ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಒಟ್ಟುಗೂಡಿಸಬಹುದು ಮತ್ತು “--ಗುಂಪು” ಆಯ್ಕೆಯು ಸಂಕೀರ್ಣ ವರದಿಗಳ ರಚನೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸರಳಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚುವರಿ ವಿಂಗಡಣೆ ಆಜ್ಞೆಗಳ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿ ತಿಂಗಳು ನೀಡಿದ ಬಿಡುಗಡೆಗೆ ಎಷ್ಟು ಕಮಿಟ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಮಾಹಿತಿಯೊಂದಿಗೆ ವರದಿಯನ್ನು ರಚಿಸಲು, ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು: git shortlog v2.38.0.. —date='format:%Y-%m' —group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 ಈ ಹಿಂದೆ, ಇದೇ ರೀತಿಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮಾಡಲು ವಿಂಗಡಣೆ ಮತ್ತು ವಿಶಿಷ್ಟ ಉಪಯುಕ್ತತೆಗಳನ್ನು ಬಳಸುವುದು ಅಗತ್ಯವಾಗಿತ್ತು: git.2.38.0 vXNUMX .. —date='format:%Y -%m' —format='%cd' | ವಿಂಗಡಿಸು | uniq -c

  • ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಉಲ್ಲೇಖಿಸದ (ಶಾಖೆಗಳು ಅಥವಾ ಟ್ಯಾಗ್‌ಗಳಿಂದ ಉಲ್ಲೇಖಿಸಲಾಗಿಲ್ಲ) ತಲುಪಲಾಗದ ವಸ್ತುಗಳನ್ನು ಪ್ಯಾಕಿಂಗ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ “ಕ್ರಾಫ್ಟ್ ಪ್ಯಾಕ್‌ಗಳು” ಕಾರ್ಯವಿಧಾನದ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ. ತಲುಪಲಾಗದ ವಸ್ತುಗಳನ್ನು ಕಸ ಸಂಗ್ರಾಹಕರಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಓಟದ ಪರಿಸ್ಥಿತಿಗಳನ್ನು ತಪ್ಪಿಸಲು ಅವುಗಳನ್ನು ಅಳಿಸುವ ಮೊದಲು ನಿರ್ದಿಷ್ಟ ಸಮಯದವರೆಗೆ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಉಳಿಯುತ್ತದೆ. "ಕ್ರಫ್ಟ್ ಪ್ಯಾಕ್‌ಗಳು" ಯಾಂತ್ರಿಕತೆಯು ನಿಮಗೆ ತಲುಪಲಾಗದ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಒಂದು ಪ್ಯಾಕ್ ಫೈಲ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಮತ್ತು ".mtimes" ವಿಸ್ತರಣೆಯೊಂದಿಗೆ ಪ್ರತ್ಯೇಕ ಫೈಲ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಪ್ರತ್ಯೇಕ ಕೋಷ್ಟಕದಲ್ಲಿ ಪ್ರತಿ ವಸ್ತುವಿನ ಮಾರ್ಪಾಡು ಸಮಯದ ಡೇಟಾವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಒಟ್ಟು ಮಾರ್ಪಾಡು ಸಮಯದೊಂದಿಗೆ ಅತಿಕ್ರಮಿಸುವುದಿಲ್ಲ.

    ತಲುಪಲಾಗದ ವಸ್ತುಗಳು ನಿಜವಾಗಿಯೂ ಅಳಿಸುವ ಮೊದಲು ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಉಳಿಯುವ ಸಮಯದ ಉದ್ದವನ್ನು “--prune=” ಆಯ್ಕೆಯಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಅಳಿಸುವ ಮೊದಲು ವಿಳಂಬ ಮಾಡುವುದು ರೇಸ್ ಪರಿಸ್ಥಿತಿಗಳು ಭಂಡಾರವನ್ನು ಭ್ರಷ್ಟಗೊಳಿಸುವುದನ್ನು ತಡೆಯಲು ಸಾಕಷ್ಟು ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗವಾಗಿದೆ, ಇದು 100% ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲ. ಹಾನಿಗೊಳಗಾದ ರೆಪೊಸಿಟರಿಯನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಸುಲಭವಾಗುವಂತೆ, ಹೊಸ ಬಿಡುಗಡೆಯು "--ಎಕ್ಸ್‌ಪೈರ್-ಟು" ಆಯ್ಕೆಯನ್ನು "git repack" ಆಜ್ಞೆಗೆ ಸೇರಿಸುವ ಮೂಲಕ ಕಾಣೆಯಾದ ವಸ್ತುಗಳನ್ನು ಉಳಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ಬಾಹ್ಯವನ್ನು ರಚಿಸಲು ಫೈಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅಳಿಸಲಾದ ಎಲ್ಲಾ ವಸ್ತುಗಳ ನಕಲು. ಉದಾಹರಣೆಗೆ, backup.git ಫೈಲ್‌ನಲ್ಲಿ ಕಳೆದ 5 ನಿಮಿಷಗಳಲ್ಲಿ ಬದಲಾಗದ ತಲುಪಲಾಗದ ವಸ್ತುಗಳನ್ನು ಉಳಿಸಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ಬಳಸಬಹುದು: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • ಭಾಗಶಃ ಅಬೀಜ ಸಂತಾನೋತ್ಪತ್ತಿ (ವಿರಳ-ಚೆಕ್ಔಟ್) ಮತ್ತು ಭಾಗಶಃ ಸೂಚ್ಯಂಕಗಳು (ವಿರಳವಾದ ಸೂಚ್ಯಂಕ) ಇರುವ ಪ್ರದೇಶಗಳಲ್ಲಿ ಹುಡುಕುವಾಗ "git grep -cached" ಕಾರ್ಯಾಚರಣೆಯ ವೇಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸಲಾಗಿದೆ (70% ವರೆಗೆ). ಹಿಂದೆ, “-ಕ್ಯಾಶ್ಡ್” ಆಯ್ಕೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಾಗ, ಹುಡುಕಾಟವನ್ನು ಮೊದಲು ನಿಯಮಿತ ಸೂಚ್ಯಂಕದಲ್ಲಿ ಮತ್ತು ನಂತರ ಭಾಗಶಃ ಬಿಡಿಗಳಲ್ಲಿ ನಡೆಸಲಾಯಿತು, ಇದು ದೊಡ್ಡ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಹುಡುಕುವಾಗ ಗಮನಾರ್ಹ ವಿಳಂಬಕ್ಕೆ ಕಾರಣವಾಯಿತು.
  • "ಗಿಟ್ ಪುಶ್" ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇರಿಸುವ ಮೊದಲು ಹೊಸ ವಸ್ತುಗಳ ಸುಸಂಬದ್ಧತೆಯ ಸರ್ವರ್‌ನ ಪರಿಶೀಲನೆಯನ್ನು ವೇಗಗೊಳಿಸಲಾಗಿದೆ. 7 ಮಿಲಿಯನ್ ಲಿಂಕ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಪರೀಕ್ಷಾ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಪರಿಶೀಲಿಸುವಾಗ ಕೇವಲ ಘೋಷಿತ ಲಿಂಕ್‌ಗಳಿಗೆ ಲೆಕ್ಕಪರಿಶೋಧನೆಗೆ ಬದಲಾಯಿಸುವ ಮೂಲಕ, ಅದರಲ್ಲಿ 3% ಮಾತ್ರ ಪುಶ್ ಕಾರ್ಯಾಚರಣೆಯಿಂದ ಆವರಿಸಲ್ಪಟ್ಟಿದೆ, ಮಾಡಿದ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ತಪಾಸಣೆ ಸಮಯವನ್ನು 4.5 ಪಟ್ಟು ಕಡಿಮೆ ಮಾಡಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟವು.
  • ಕೋಡ್‌ನಲ್ಲಿ ಸಂಭಾವ್ಯ ಪೂರ್ಣಾಂಕದ ಓವರ್‌ಫ್ಲೋಗಳ ವಿರುದ್ಧ ರಕ್ಷಿಸಲು, "git apply" ಆಜ್ಞೆಯು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದಾದ ಪ್ಯಾಚ್‌ಗಳ ಗರಿಷ್ಠ ಗಾತ್ರವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ಪ್ಯಾಚ್ ಗಾತ್ರವು 1 GB ಯನ್ನು ಮೀರಿದರೆ, ದೋಷವನ್ನು ಈಗ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.
  • ಸಂಭಾವ್ಯ ದುರ್ಬಲತೆಗಳಿಂದ ರಕ್ಷಿಸಲು, H2h3 ಮಾಡ್ಯೂಲ್ ಅನ್ನು GIT_TRACE_CURL=1 ಅಥವಾ GIT_CURL_VERBOSE=1 ಆಯ್ಕೆಯೊಂದಿಗೆ HTTP/2 ಜೊತೆಗೆ ಬಳಸುವಾಗ ಹೊಂದಿಸಲಾದ ಹೆಡರ್‌ಗಳಿಂದ ಅನಗತ್ಯ ಮಾಹಿತಿಯನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲು ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ.
  • ಮತ್ತೊಂದು ಶಾಖೆಗೆ ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಆಗಿರುವ ಶಾಖೆಯಲ್ಲಿ ಚೆಕ್ ಔಟ್ ಮಾಡುವಾಗ, "git ಸಾಂಕೇತಿಕ-ref HEAD" ಆಜ್ಞೆಯು ಈಗ ಸಿಮ್‌ಲಿಂಕ್‌ನ ಹೆಸರಿನ ಬದಲಿಗೆ ಗುರಿ ಶಾಖೆಯ ಹೆಸರನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ.
  • ಹಿಂದಿನ ಶಾಖೆಯ ವಿವರಣೆಯನ್ನು ಸಂಪಾದಿಸಲು @{-1} ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗೆ “--edit-description” ಆಯ್ಕೆಗೆ (“git branch —edit-description @{-1}”) ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಪ್ರಮಾಣಿತ ಇನ್‌ಪುಟ್ ಮೂಲಕ ಆಯ್ಕೆಗಳ ಪಟ್ಟಿಯನ್ನು ರವಾನಿಸಲು "git merge-tree --stdin" ಆಜ್ಞೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ನೆಟ್ವರ್ಕ್ ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ, ಫೈಲ್ ಸಿಸ್ಟಮ್ನಲ್ಲಿನ ಬದಲಾವಣೆಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ fsmonitor ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

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