GitHub ನಲ್ಲಿನ ಆರ್ಕೈವ್ ಚೆಕ್‌ಸಮ್‌ಗಳಲ್ಲಿನ ಬದಲಾವಣೆಗಳಿಂದಾಗಿ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿನ ವೈಫಲ್ಯಗಳು

GitHub ಬಿಡುಗಡೆಯ ಪುಟಗಳಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾದ ".tar.gz" ಮತ್ತು ".tgz" ಆರ್ಕೈವ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಾಯಿಸಿದೆ, ಇದು ಅವರ ಚೆಕ್‌ಸಮ್‌ಗಳಲ್ಲಿ ಬದಲಾವಣೆಗಳಿಗೆ ಮತ್ತು ಸಮಗ್ರತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಹಿಂದಿನವುಗಳ ವಿರುದ್ಧ GitHub ನಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಆರ್ಕೈವ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಸ್ವಯಂಚಾಲಿತ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಭಾರಿ ವೈಫಲ್ಯಗಳಿಗೆ ಕಾರಣವಾಯಿತು. ಸಂಗ್ರಹಿತ ಚೆಕ್‌ಸಮ್‌ಗಳು, ಉದಾಹರಣೆಗೆ, ಪ್ಯಾಕೇಜ್ ಮೆಟಾಡೇಟಾದಲ್ಲಿ ಅಥವಾ ಬಿಲ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ.

ಬಿಡುಗಡೆ 2.38 ರಿಂದ ಪ್ರಾರಂಭಿಸಿ, Git ಟೂಲ್‌ಕಿಟ್ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಜಿಜಿಪ್‌ನ ಅಂತರ್ನಿರ್ಮಿತ ಅನುಷ್ಠಾನವನ್ನು ಒಳಗೊಂಡಿತ್ತು, ಇದು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಾದ್ಯಂತ ಈ ಸಂಕುಚಿತ ವಿಧಾನಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಏಕೀಕರಿಸಲು ಮತ್ತು ಆರ್ಕೈವ್ ರಚನೆಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. GitHub ತನ್ನ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ git ಆವೃತ್ತಿಯನ್ನು ನವೀಕರಿಸಿದ ನಂತರ ಬದಲಾವಣೆಯನ್ನು ತೆಗೆದುಕೊಂಡಿತು. ಅಂತರ್ನಿರ್ಮಿತ zlib-ಆಧಾರಿತ gzip ಅನುಷ್ಠಾನದಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ಸಂಕುಚಿತ ಆರ್ಕೈವ್‌ಗಳು gzip ಯುಟಿಲಿಟಿಯಿಂದ ರಚಿಸಲಾದ ಆರ್ಕೈವ್‌ಗಳಿಗಿಂತ ಬೈನರಿ ವಿಭಿನ್ನವಾಗಿವೆ ಎಂಬ ಅಂಶದಿಂದ ಸಮಸ್ಯೆ ಉಂಟಾಗಿದೆ, ಇದು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ವಿಭಿನ್ನ ಆವೃತ್ತಿಗಳ git ನಿಂದ ರಚಿಸಲಾದ ಆರ್ಕೈವ್‌ಗಳಿಗೆ ವಿಭಿನ್ನ ಚೆಕ್‌ಸಮ್‌ಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. "git ಆರ್ಕೈವ್" ಆಜ್ಞೆ.

ಅಂತೆಯೇ, GitHub ನಲ್ಲಿ git ಅನ್ನು ನವೀಕರಿಸಿದ ನಂತರ, ಬಿಡುಗಡೆಯ ಪುಟಗಳಲ್ಲಿ ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾದ ಆರ್ಕೈವ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಪ್ರಾರಂಭಿಸಿತು, ಅದು ಹಳೆಯ ಚೆಕ್‌ಸಮ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿಶೀಲನೆಯನ್ನು ರವಾನಿಸಲಿಲ್ಲ. ಸಮಸ್ಯೆಯು ವಿವಿಧ ನಿರ್ಮಾಣ ವ್ಯವಸ್ಥೆಗಳು, ನಿರಂತರ ಏಕೀಕರಣ ವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಮೂಲ ಕೋಡ್‌ನಿಂದ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಸಾಧನಗಳಲ್ಲಿ ಸ್ವತಃ ಸ್ಪಷ್ಟವಾಗಿ ಗೋಚರಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸುಮಾರು 5800 FreeBSD ಪೋರ್ಟ್‌ಗಳ ಜೋಡಣೆ, GitHub ನಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾದ ಮೂಲ ಕೋಡ್‌ಗಳು ಮುರಿದುಹೋಗಿವೆ.

ಗ್ಲಿಚ್‌ಗಳ ಬಗ್ಗೆ ಆರಂಭಿಕ ದೂರುಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ, ಆರ್ಕೈವ್‌ಗಳಿಗೆ ಶಾಶ್ವತ ಚೆಕ್‌ಸಮ್‌ಗಳು ಎಂದಿಗೂ ಖಾತರಿಯಿಲ್ಲ ಎಂಬ ಅಂಶವನ್ನು GitHub ಆರಂಭದಲ್ಲಿ ಉಲ್ಲೇಖಿಸಿದೆ. ಪೀಡಿತ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ಗಳ ಕಾರ್ಯವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ವಿವಿಧ ಪರಿಸರ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮೆಟಾಡೇಟಾವನ್ನು ನವೀಕರಿಸಲು ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಕೆಲಸ ಬೇಕಾಗುತ್ತದೆ ಎಂದು ತೋರಿಸಿದ ನಂತರ, GitHub ಪ್ರತಿನಿಧಿಗಳು ತಮ್ಮ ಮನಸ್ಸನ್ನು ಬದಲಾಯಿಸಿದರು, ಬದಲಾವಣೆಯನ್ನು ಹಿಂತಿರುಗಿಸಿದರು ಮತ್ತು ಆರ್ಕೈವ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಹಳೆಯ ವಿಧಾನವನ್ನು ಹಿಂದಿರುಗಿಸಿದರು.

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

ಬಾಹ್ಯ ಉಪಯುಕ್ತತೆಗೆ ಕರೆಗೆ ಹಿಂತಿರುಗುವುದು ಚೆಕ್‌ಸಮ್ ಅಸ್ಥಿರತೆಯ ಸಮಸ್ಯೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪರಿಹರಿಸುವುದಿಲ್ಲ ಎಂಬ ಅಂಶದಿಂದ ನಿರ್ಧಾರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಕಷ್ಟವನ್ನು ವಿವರಿಸಲಾಗಿದೆ, ಏಕೆಂದರೆ ಬಾಹ್ಯ ಜಿಜಿಪ್ ಪ್ರೋಗ್ರಾಂನಲ್ಲಿನ ಬದಲಾವಣೆಯು ಆರ್ಕೈವ್ ಸ್ವರೂಪದಲ್ಲಿ ಬದಲಾವಣೆಗೆ ಕಾರಣವಾಗಬಹುದು. ಪ್ರಸ್ತುತ, ಹಳೆಯ ನಡವಳಿಕೆಯನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಹಿಂತಿರುಗಿಸುವ ಪ್ಯಾಚ್‌ಗಳ ಗುಂಪನ್ನು ಪರಿಶೀಲಿಸಲು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ (ಬಾಹ್ಯ gzip ಯುಟಿಲಿಟಿ ಎಂದು ಕರೆಯುವುದು) ಮತ್ತು ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ gzip ಉಪಯುಕ್ತತೆಯ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ಅಂತರ್ನಿರ್ಮಿತ ಅನುಷ್ಠಾನವನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ಯಾಚ್‌ಗಳು "git ಆರ್ಕೈವ್" ಔಟ್‌ಪುಟ್‌ನ ಸ್ಥಿರತೆಯನ್ನು ಖಾತರಿಪಡಿಸುವುದಿಲ್ಲ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಸ್ವರೂಪವು ಬದಲಾಗಬಹುದು ಎಂಬ ಉಲ್ಲೇಖವನ್ನು ದಾಖಲಾತಿಗೆ ಸೇರಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

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