ವರ್ಡ್ಪ್ರೆಸ್

ಮೊನೊರೆಪೊ ವರ್ಸಸ್ ಮಲ್ಟಿ-ರೆಪೊ: ಕೋಡ್ ರೆಪೊಸಿಟರಿ ಸ್ಟ್ರಾಟಜೀಸ್‌ನ ಒಳಿತು ಮತ್ತು ಕೆಡುಕುಗಳು

Git ಮೂಲಕ ಕೋಡ್ ಅನ್ನು ಹೋಸ್ಟಿಂಗ್ ಮಾಡಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಎರಡು ಮುಖ್ಯ ತಂತ್ರಗಳಿವೆ: monorepo vs ಮಲ್ಟಿ-ರೆಪೋ. ಎರಡೂ ವಿಧಾನಗಳು ತಮ್ಮ ಬಾಧಕಗಳನ್ನು ಹೊಂದಿವೆ.

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

ಪ್ರತಿ ವಿಧಾನದ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳು ಯಾವುವು? ನಾವು ಒಂದು ಅಥವಾ ಇನ್ನೊಂದನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು? ಕಂಡುಹಿಡಿಯೋಣ!

ರೆಪೋಗಳು ಯಾವುವು?

ರೆಪೊ (ರೆಪೊಸಿಟರಿಗೆ ಚಿಕ್ಕದು) ಎನ್ನುವುದು ಯೋಜನೆಯಿಂದ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಫೈಲ್‌ಗಳ ಸಂಗ್ರಹವಾಗಿದೆ, ಡೆವಲಪರ್‌ಗಳು ಅದರ ಅಭಿವೃದ್ಧಿ ಹಂತದ ಉದ್ದಕ್ಕೂ ಯೋಜನೆಯ ಸ್ವತ್ತುಗಳನ್ನು "ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ" ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನಾವು ಸಾಮಾನ್ಯವಾಗಿ Git ರೆಪೊಸಿಟರಿಗಳನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತೇವೆ (GitHub, GitLab, ಅಥವಾ Bitbucket ಒದಗಿಸಿದಂತೆ), ಆದರೆ ಪರಿಕಲ್ಪನೆಯು ಇತರ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಗಳಿಗೆ (ಮರ್ಕ್ಯುರಿಯಲ್ ನಂತಹ) ಅನ್ವಯಿಸುತ್ತದೆ.

Git ಮೂಲಕ ನಮ್ಮ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಎರಡು ಮುಖ್ಯ ತಂತ್ರಗಳಿವೆ: ಮೊನೊರೆಪೊ ವಿಧಾನ ಮತ್ತು ಮಲ್ಟಿ ರೆಪೊ ವಿಧಾನ. 🚀 ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ಪ್ರತಿಯೊಂದನ್ನು ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮಾಡಿ ⬇️ಟ್ವೀಟ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ

ಮೊನೊರೆಪೊ ಎಂದರೇನು?

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

ಮೊನೊರೆಪೊದ ಪ್ರಯೋಜನಗಳು

ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಸಂಪೂರ್ಣ ಕೋಡ್‌ಬೇಸ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವುದು ಕೆಳಗಿನ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಪ್ರವೇಶದ ಅಡೆತಡೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ

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

ಮೊನೊರೆಪೊ ವಿಷಯಗಳನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಎಲ್ಲಾ ಕೋಡ್ ಮತ್ತು ದಸ್ತಾವೇಜನ್ನು ಹೊಂದಿರುವ ಒಂದೇ ಸ್ಥಳ ಇರುವುದರಿಂದ, ನೀವು ಆರಂಭಿಕ ಸೆಟಪ್ ಅನ್ನು ಸುಗಮಗೊಳಿಸಬಹುದು.

ಕೇಂದ್ರೀಯವಾಗಿ ನೆಲೆಗೊಂಡಿರುವ ಕೋಡ್ ನಿರ್ವಹಣೆ

ಒಂದೇ ರೆಪೊಸಿಟರಿಯನ್ನು ಹೊಂದಿರುವುದು ಎಲ್ಲಾ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಎಲ್ಲಾ ಕೋಡ್‌ಗಳ ಗೋಚರತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್‌ನ ಜೀವನ ಚಕ್ರದಾದ್ಯಂತ ಎಲ್ಲಾ ಸಮಸ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಲು ನಾವು ಒಂದೇ ಸಮಸ್ಯೆ ಟ್ರ್ಯಾಕರ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ ಇದು ಕೋಡ್ ನಿರ್ವಹಣೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.

ಉದಾಹರಣೆಗೆ, ಅವಲಂಬಿತ ಲೈಬ್ರರಿಯಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ದೋಷದೊಂದಿಗೆ ಸಮಸ್ಯೆಯು ಎರಡು (ಅಥವಾ ಹೆಚ್ಚಿನ) ಮಕ್ಕಳ ಗ್ರಂಥಾಲಯಗಳನ್ನು ವ್ಯಾಪಿಸಿದಾಗ ಈ ಗುಣಲಕ್ಷಣಗಳು ಮೌಲ್ಯಯುತವಾಗಿವೆ. ಬಹು ರೆಪೊಸಿಟರಿಗಳೊಂದಿಗೆ, ಸಮಸ್ಯೆ ಸಂಭವಿಸುವ ಕೋಡ್‌ನ ತುಣುಕನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಸವಾಲಾಗಿರಬಹುದು.

ಇದರ ಮೇಲೆ, ಸಮಸ್ಯೆಯನ್ನು ರಚಿಸಲು ಯಾವ ರೆಪೊಸಿಟರಿಯನ್ನು ಬಳಸಬೇಕೆಂದು ನಾವು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಸಹಾಯ ಮಾಡಲು ಇತರ ತಂಡಗಳ ಸದಸ್ಯರನ್ನು ಆಹ್ವಾನಿಸಿ ಮತ್ತು ಕ್ರಾಸ್-ಟ್ಯಾಗ್ ಮಾಡಿ.

ಮೊನೊರೆಪೊದೊಂದಿಗೆ, ಕೋಡ್ ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆ ಮಾಡುವುದು ಮತ್ತು ದೋಷನಿವಾರಣೆಗೆ ಸಹಕರಿಸುವುದು ಎರಡೂ ಸಾಧಿಸಲು ಸರಳವಾಗಿದೆ.

ನೋವುರಹಿತ ಅಪ್ಲಿಕೇಶನ್-ವೈಡ್ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ಸ್

ಕೋಡ್‌ನ ಅಪ್ಲಿಕೇಶನ್-ವೈಡ್ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಅನ್ನು ರಚಿಸುವಾಗ, ಬಹು ಲೈಬ್ರರಿಗಳು ಪರಿಣಾಮ ಬೀರುತ್ತವೆ. ನೀವು ಅವುಗಳನ್ನು ಬಹು ರೆಪೊಸಿಟರಿಗಳ ಮೂಲಕ ಹೋಸ್ಟ್ ಮಾಡುತ್ತಿದ್ದರೆ, ಅವುಗಳನ್ನು ಪರಸ್ಪರ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ಎಲ್ಲಾ ವಿಭಿನ್ನ ಪುಲ್ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು ಒಂದು ಸವಾಲಾಗಿ ಪರಿಣಮಿಸಬಹುದು.

ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳಿಗೆ ಎಲ್ಲಾ ಕೋಡ್‌ಗಳಿಗೆ ಎಲ್ಲಾ ಮಾರ್ಪಾಡುಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಅದನ್ನು ಒಂದೇ ಪುಲ್ ವಿನಂತಿಯ ಅಡಿಯಲ್ಲಿ ಸಲ್ಲಿಸಲು ಮೊನೊರೆಪೊ ಸುಲಭಗೊಳಿಸುತ್ತದೆ.

ಪಕ್ಕದ ಕಾರ್ಯವನ್ನು ಮುರಿಯಲು ಹೆಚ್ಚು ಕಷ್ಟ

ಮೊನೊರೆಪೊದೊಂದಿಗೆ, ಯಾವುದೇ ಒಂದು ಲೈಬ್ರರಿಯನ್ನು ಮಾರ್ಪಡಿಸಿದಾಗ ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳಿಗಾಗಿ ನಾವು ಎಲ್ಲಾ ಪರೀಕ್ಷೆಗಳನ್ನು ಹೊಂದಿಸಬಹುದು. ಪರಿಣಾಮವಾಗಿ, ಕೆಲವು ಗ್ರಂಥಾಲಯಗಳಲ್ಲಿ ಬದಲಾವಣೆ ಮಾಡುವ ಸಾಧ್ಯತೆಯು ಇತರ ಗ್ರಂಥಾಲಯಗಳ ಮೇಲೆ ಪ್ರತಿಕೂಲ ಪರಿಣಾಮಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿದೆ.

ತಂಡಗಳು ಅಭಿವೃದ್ಧಿ ಸಂಸ್ಕೃತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ

ಅಸಾಧ್ಯವಲ್ಲದಿದ್ದರೂ, ಮೊನೊರೆಪೊ ವಿಧಾನದೊಂದಿಗೆ, ವಿಭಿನ್ನ ತಂಡಗಳ ನಡುವೆ ಅನನ್ಯ ಉಪಸಂಸ್ಕೃತಿಗಳನ್ನು ಪ್ರೇರೇಪಿಸುವುದು ಸವಾಲಿನ ಸಂಗತಿಯಾಗಿದೆ. ಅವರು ಒಂದೇ ರೆಪೊಸಿಟರಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದರಿಂದ, ಅವರು ಅದೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮತ್ತು ನಿರ್ವಹಣಾ ವಿಧಾನಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಾರೆ ಮತ್ತು ಅದೇ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ಬಳಸುತ್ತಾರೆ.

ಮೊನೊರೆಪೊ ಅಪ್ರೋಚ್‌ನೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳು

ನಮ್ಮ ಎಲ್ಲಾ ಕೋಡ್‌ಗಳಿಗೆ ಒಂದೇ ರೆಪೊಸಿಟರಿಯನ್ನು ಬಳಸುವುದು ಹಲವಾರು ನ್ಯೂನತೆಗಳನ್ನು ಹೊಂದಿದೆ.

ನಿಧಾನಗತಿಯ ಅಭಿವೃದ್ಧಿ ಚಕ್ರಗಳು

ಲೈಬ್ರರಿಯ ಕೋಡ್ ಬ್ರೇಕಿಂಗ್ ಬದಲಾವಣೆಗಳನ್ನು ಹೊಂದಿರುವಾಗ, ಅವಲಂಬಿತ ಗ್ರಂಥಾಲಯಗಳ ಪರೀಕ್ಷೆಗಳು ವಿಫಲಗೊಳ್ಳುವಂತೆ ಮಾಡುತ್ತದೆ, ಬದಲಾವಣೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವ ಮೊದಲು ಕೋಡ್ ಅನ್ನು ಸಹ ಸರಿಪಡಿಸಬೇಕು.

ಈ ಲೈಬ್ರರಿಗಳು ಇತರ ತಂಡಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ, ಅವರು ಬೇರೆ ಕೆಲವು ಕಾರ್ಯಗಳಲ್ಲಿ ನಿರತರಾಗಿದ್ದಾರೆ ಮತ್ತು ಬ್ರೇಕಿಂಗ್ ಬದಲಾವಣೆಗಳನ್ನು ತಪ್ಪಿಸಲು ಮತ್ತು ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಉತ್ತೀರ್ಣರಾಗಲು ತಮ್ಮ ಕೋಡ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ (ಅಥವಾ ಸಿದ್ಧರಿದ್ದಾರೆ), ಹೊಸ ವೈಶಿಷ್ಟ್ಯದ ಅಭಿವೃದ್ಧಿಯು ಸ್ಥಗಿತಗೊಳ್ಳಬಹುದು.

ಇದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ, ಕಂಪನಿಯ ನಿಧಾನಗತಿಯ ತಂಡದ ವೇಗದಲ್ಲಿ ಮಾತ್ರ ಯೋಜನೆಯು ಮುಂದುವರಿಯಲು ಪ್ರಾರಂಭಿಸಬಹುದು. ಈ ಫಲಿತಾಂಶವು ವೇಗದ ತಂಡಗಳ ಸದಸ್ಯರನ್ನು ನಿರಾಶೆಗೊಳಿಸಬಹುದು, ಅವರು ಕಂಪನಿಯನ್ನು ತೊರೆಯಲು ಬಯಸುವ ಪರಿಸ್ಥಿತಿಗಳನ್ನು ರಚಿಸಬಹುದು.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಲೈಬ್ರರಿಯು ಎಲ್ಲಾ ಇತರ ಗ್ರಂಥಾಲಯಗಳಿಗೆ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಬೇಕಾಗುತ್ತದೆ. ಹೆಚ್ಚು ಪರೀಕ್ಷೆಗಳನ್ನು ಚಲಾಯಿಸಲು, ಅವುಗಳನ್ನು ಚಲಾಯಿಸಲು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ನಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ನಾವು ಎಷ್ಟು ವೇಗವಾಗಿ ಪುನರಾವರ್ತಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ.

ಸಂಪೂರ್ಣ ಕೋಡ್‌ಬೇಸ್‌ನ ಡೌನ್‌ಲೋಡ್ ಅಗತ್ಯವಿದೆ

ಮೊನೊರೆಪೊ ಕಂಪನಿಯ ಎಲ್ಲಾ ಕೋಡ್‌ಗಳನ್ನು ಹೊಂದಿರುವಾಗ, ಅದು ದೊಡ್ಡದಾಗಿರಬಹುದು, ಗಿಗಾಬೈಟ್‌ಗಳ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಹೋಸ್ಟ್ ಮಾಡಲಾದ ಯಾವುದೇ ಲೈಬ್ರರಿಗೆ ಕೊಡುಗೆ ನೀಡಲು, ಯಾರಾದರೂ ಸಂಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ವಿಶಾಲವಾದ ಕೋಡ್‌ಬೇಸ್‌ನೊಂದಿಗೆ ವ್ಯವಹರಿಸುವುದು ನಮ್ಮ ಹಾರ್ಡ್ ಡ್ರೈವ್‌ಗಳಲ್ಲಿ ಜಾಗದ ಕಳಪೆ ಬಳಕೆ ಮತ್ತು ಅದರೊಂದಿಗೆ ನಿಧಾನವಾದ ಸಂವಹನಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕಾರ್ಯಗತಗೊಳಿಸುವಂತಹ ದೈನಂದಿನ ಕ್ರಿಯೆಗಳು git status ಅಥವಾ ರೆಜೆಕ್ಸ್‌ನೊಂದಿಗೆ ಕೋಡ್‌ಬೇಸ್‌ನಲ್ಲಿ ಹುಡುಕಲು ಹಲವು ಸೆಕೆಂಡ್‌ಗಳು ಅಥವಾ ನಿಮಿಷಗಳು ಬಹು ರೆಪೊಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು.

ಮಾರ್ಪಡಿಸದ ಗ್ರಂಥಾಲಯಗಳು ಹೊಸದಾಗಿ ಆವೃತ್ತಿಯಾಗಿರಬಹುದು

ನಾವು ಮೊನೊರೆಪೊವನ್ನು ಟ್ಯಾಗ್ ಮಾಡಿದಾಗ, ಒಳಗಿನ ಎಲ್ಲಾ ಕೋಡ್‌ಗೆ ಹೊಸ ಟ್ಯಾಗ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ. ಈ ಕ್ರಿಯೆಯು ಹೊಸ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಚೋದಿಸಿದರೆ, ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡಲಾದ ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳನ್ನು ಟ್ಯಾಗ್‌ನಿಂದ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಹೊಸದಾಗಿ ಬಿಡುಗಡೆ ಮಾಡಲಾಗುತ್ತದೆ, ಆ ಲೈಬ್ರರಿಗಳಲ್ಲಿ ಹೆಚ್ಚಿನವು ಯಾವುದೇ ಬದಲಾವಣೆಯನ್ನು ಹೊಂದಿರದಿದ್ದರೂ ಸಹ.

ಫೋರ್ಕಿಂಗ್ ಹೆಚ್ಚು ಕಷ್ಟ

ಓಪನ್ ಸೋರ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಕೊಡುಗೆದಾರರು ತೊಡಗಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾದಷ್ಟು ಸುಲಭಗೊಳಿಸಬೇಕು. ಬಹು ರೆಪೊಸಿಟರಿಗಳೊಂದಿಗೆ, ಕೊಡುಗೆದಾರರು ಅವರು ಕೊಡುಗೆ ನೀಡಲು ಬಯಸುವ ಯೋಜನೆಗಾಗಿ ನಿರ್ದಿಷ್ಟ ರೆಪೊಸಿಟರಿಗೆ ನೇರವಾಗಿ ಹೋಗಬಹುದು. ಮೊನೊರೆಪೋ ವಿವಿಧ ಯೋಜನೆಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವುದರೊಂದಿಗೆ, ಕೊಡುಗೆದಾರರು ಮೊದಲು ಸರಿಯಾದ ಯೋಜನೆಗೆ ತಮ್ಮ ಮಾರ್ಗವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬೇಕು ಮತ್ತು ಅವರ ಕೊಡುಗೆಯು ಎಲ್ಲಾ ಇತರ ಯೋಜನೆಗಳ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರಬಹುದು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು.

ಮಲ್ಟಿ-ರೆಪೋ ಎಂದರೇನು?

ಬಹು-ರೆಪೋ ವಿಧಾನವು ಕಂಪನಿಯು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಯೋಜನೆಯ ಬಹು ಗ್ರಂಥಾಲಯಗಳು ಅಥವಾ ಸೇವೆಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಹಲವಾರು ರೆಪೊಸಿಟರಿಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಅತ್ಯಂತ ತೀವ್ರವಾಗಿ, ಇದು ಪ್ರತಿ ಕನಿಷ್ಠ ಮರುಬಳಕೆಯ ಕೋಡ್ ಅಥವಾ ಸ್ವತಂತ್ರ ಕಾರ್ಯವನ್ನು (ಮೈಕ್ರೊ ಸರ್ವಿಸ್‌ನಂತಹ) ಅದರ ರೆಪೊಸಿಟರಿ ಅಡಿಯಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡುತ್ತದೆ.

ಮಲ್ಟಿ-ರೆಪೋದ ಪ್ರಯೋಜನಗಳು

ಎಲ್ಲಾ ಇತರರಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಪ್ರತಿ ಗ್ರಂಥಾಲಯವನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವುದು ಪ್ರಯೋಜನಗಳ ಸಮೃದ್ಧಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಸ್ವತಂತ್ರ ಲೈಬ್ರರಿ ಆವೃತ್ತಿ

ರೆಪೊಸಿಟರಿಯನ್ನು ಟ್ಯಾಗ್ ಮಾಡುವಾಗ, ಅದರ ಸಂಪೂರ್ಣ ಕೋಡ್ಬೇಸ್ಗೆ "ಹೊಸ" ಟ್ಯಾಗ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ. ಒಂದು ನಿರ್ದಿಷ್ಟ ಗ್ರಂಥಾಲಯದ ಕೋಡ್ ಮಾತ್ರ ರೆಪೊಸಿಟರಿಯಲ್ಲಿರುವುದರಿಂದ, ಲೈಬ್ರರಿಯನ್ನು ಬೇರೆಡೆ ಹೋಸ್ಟ್ ಮಾಡಲಾದ ಎಲ್ಲಾ ಇತರ ಲೈಬ್ರರಿಗಳಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಟ್ಯಾಗ್ ಮಾಡಬಹುದು ಮತ್ತು ಆವೃತ್ತಿ ಮಾಡಬಹುದು.

ಪ್ರತಿ ಲೈಬ್ರರಿಗೆ ಸ್ವತಂತ್ರ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುವುದು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅವಲಂಬಿತ ವೃಕ್ಷವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಪ್ರತಿ ಲೈಬ್ರರಿಯ ಯಾವ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಬೇಕೆಂದು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಸ್ವತಂತ್ರ ಸೇವಾ ಬಿಡುಗಡೆಗಳು

ರೆಪೊಸಿಟರಿಯು ಕೆಲವು ಸೇವೆಯ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿರುವುದರಿಂದ ಮತ್ತು ಬೇರೇನೂ ಇಲ್ಲ, ಅದು ಪ್ರವೇಶಿಸುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಮಾಡಿದ ಯಾವುದೇ ಪ್ರಗತಿಯನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ತನ್ನದೇ ಆದ ನಿಯೋಜನೆ ಚಕ್ರವನ್ನು ಹೊಂದಬಹುದು.

ಸೇವೆಯು ನಿರಂತರ ವಿತರಣೆಯಂತಹ ವೇಗದ ಬಿಡುಗಡೆಯ ಚಕ್ರವನ್ನು ಬಳಸಬಹುದು (ಎಲ್ಲಾ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಉತ್ತೀರ್ಣರಾದ ನಂತರ ಹೊಸ ಕೋಡ್ ಅನ್ನು ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ). ಸೇವೆಯನ್ನು ಪ್ರವೇಶಿಸುವ ಕೆಲವು ಲೈಬ್ರರಿಗಳು ನಿಧಾನವಾದ ಬಿಡುಗಡೆಯ ಚಕ್ರವನ್ನು ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ ವಾರಕ್ಕೊಮ್ಮೆ ಮಾತ್ರ ಹೊಸ ಬಿಡುಗಡೆಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.

ಸಂಸ್ಥೆಯಾದ್ಯಂತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ವಿವರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ

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

ತಂಡಗಳು ಸ್ವಾಯತ್ತವಾಗಿ ಕೆಲಸ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ

ತಂಡದ ಸದಸ್ಯರು ಗ್ರಂಥಾಲಯದ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಬಹುದು ಮತ್ತು ಎಲ್ಲಾ ಇತರ ತಂಡಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಅದರ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಕೆಲವು ಬಾಹ್ಯ ತಂಡ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗದೆ ಸಾಮಾನ್ಯ ಸಂದರ್ಭದಲ್ಲಿ ಲೈಬ್ರರಿ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಅವರು ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.

ಮಲ್ಟಿ-ರೆಪೋ ಅಪ್ರೋಚ್‌ನೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳು

ಬಹು ರೆಪೊಸಿಟರಿಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಹಲವಾರು ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.

ಲೈಬ್ರರಿಗಳನ್ನು ನಿರಂತರವಾಗಿ ಮರುಸಿಂಕ್ ಮಾಡಬೇಕು

ಬ್ರೇಕಿಂಗ್ ಬದಲಾವಣೆಗಳನ್ನು ಹೊಂದಿರುವ ಲೈಬ್ರರಿಯ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದಾಗ, ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಲು ಈ ಲೈಬ್ರರಿಯನ್ನು ಅವಲಂಬಿಸಿ ಲೈಬ್ರರಿಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ. ಲೈಬ್ರರಿಯ ಬಿಡುಗಡೆಯ ಚಕ್ರವು ಅದರ ಅವಲಂಬಿತ ಗ್ರಂಥಾಲಯಗಳಿಗಿಂತ ವೇಗವಾಗಿದ್ದರೆ, ಅವು ತ್ವರಿತವಾಗಿ ಪರಸ್ಪರ ಸಿಂಕ್ ಆಗಬಹುದು.

ಇತರ ತಂಡಗಳಿಂದ ಇತ್ತೀಚಿನ ಬಿಡುಗಡೆಗಳನ್ನು ಬಳಸಲು ತಂಡಗಳು ನಿರಂತರವಾಗಿ ಕ್ಯಾಚ್ ಅಪ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ವಿಭಿನ್ನ ತಂಡಗಳು ವಿಭಿನ್ನ ಆದ್ಯತೆಗಳನ್ನು ಹೊಂದಿರುವುದರಿಂದ, ಇದು ಕೆಲವೊಮ್ಮೆ ಸಾಧಿಸಲು ಪ್ರಯಾಸಕರವಾಗಿರುತ್ತದೆ.

ಪರಿಣಾಮವಾಗಿ, ಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗದ ತಂಡವು ಅವಲಂಬಿತ-ಆಧಾರಿತ ಲೈಬ್ರರಿಯ ಹಳೆಯ ಆವೃತ್ತಿಗೆ ಅಂಟಿಕೊಳ್ಳಬಹುದು. ಈ ಫಲಿತಾಂಶವು ಅಪ್ಲಿಕೇಶನ್‌ನ ಮೇಲೆ ಪರಿಣಾಮಗಳನ್ನು ಬೀರುತ್ತದೆ (ಸುರಕ್ಷತೆ, ವೇಗ ಮತ್ತು ಇತರ ಪರಿಗಣನೆಗಳ ವಿಷಯದಲ್ಲಿ), ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳಾದ್ಯಂತ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿನ ಅಂತರವು ಹೆಚ್ಚು ಹೆಚ್ಚಾಗಬಹುದು.

ಮೇ ತುಣುಕು ತಂಡಗಳು

ವಿಭಿನ್ನ ತಂಡಗಳು ಸಂವಹನ ನಡೆಸುವ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದಾಗ, ಅವರು ತಮ್ಮದೇ ಆದ ಸಿಲೋಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಬಹುದು. ದೀರ್ಘಾವಧಿಯಲ್ಲಿ, ಇದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅಥವಾ ನಿರ್ವಹಣೆಯ ವಿಭಿನ್ನ ವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಅಥವಾ ವಿವಿಧ ಅಭಿವೃದ್ಧಿ ಸಾಧನಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವಂತಹ ತಂಡಗಳು ತಮ್ಮ ಉಪಸಂಸ್ಕೃತಿಗಳನ್ನು ಕಂಪನಿಯೊಳಗೆ ಉತ್ಪಾದಿಸಲು ಕಾರಣವಾಗಬಹುದು.

ಕೆಲವು ತಂಡದ ಸದಸ್ಯರು ಅಂತಿಮವಾಗಿ ಬೇರೆ ತಂಡದಲ್ಲಿ ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ, ಅವರು ಸ್ವಲ್ಪ ಸಂಸ್ಕೃತಿಯ ಆಘಾತವನ್ನು ಅನುಭವಿಸಬಹುದು ಮತ್ತು ತಮ್ಮ ಕೆಲಸವನ್ನು ಮಾಡುವ ಹೊಸ ವಿಧಾನವನ್ನು ಕಲಿಯಬಹುದು.

ಮೊನೊರೆಪೊ vs ಮಲ್ಟಿ-ರೆಪೊ: ಪ್ರಾಥಮಿಕ ವ್ಯತ್ಯಾಸಗಳು

ಎರಡೂ ವಿಧಾನಗಳು ಅಂತಿಮವಾಗಿ ಒಂದೇ ಉದ್ದೇಶದೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತವೆ: ಕೋಡ್ಬೇಸ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು. ಆದ್ದರಿಂದ, ಬಿಡುಗಡೆ ನಿರ್ವಹಣೆ, ತಂಡದ ಸದಸ್ಯರ ನಡುವೆ ಸಹಯೋಗವನ್ನು ಬೆಳೆಸುವುದು, ಸಮಸ್ಯೆಗಳನ್ನು ನಿಭಾಯಿಸುವುದು, ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸುವುದು ಮತ್ತು ಇತರವುಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಇಬ್ಬರೂ ಒಂದೇ ರೀತಿಯ ಸವಾಲುಗಳನ್ನು ಪರಿಹರಿಸಬೇಕು.

ಅವರ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸವು ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ತಂಡದ ಸದಸ್ಯರ ಮೇಲೆ ಅವರ ಸಮಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ: ಮೊನೊರೆಪೊಗೆ ಮುಂಚೂಣಿಯಲ್ಲಿ ಅಥವಾ ಮಲ್ಟಿ-ರೆಪೊಗೆ ಕೆಳಗೆ.

ಈ ಕಲ್ಪನೆಯನ್ನು ಹೆಚ್ಚು ವಿವರವಾಗಿ ವಿಶ್ಲೇಷಿಸೋಣ.

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

ಈ ವಿಧಾನವು ಎಲ್ಲಾ ಇತರ ಲೈಬ್ರರಿಗಳನ್ನು ಪ್ರತಿ ಜವಾಬ್ದಾರಿಯುತ ತಂಡಕ್ಕೆ ಯಾವಾಗ ಅಳವಡಿಸಿಕೊಳ್ಳಬೇಕು ಎಂಬ ನಿರ್ಧಾರವನ್ನು ಬಿಡುತ್ತದೆ, ಯಾರು ಅದನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮಾಡಬಹುದು. ಅವರು ಅದನ್ನು ತಡವಾಗಿ ಮಾಡಿದರೆ ಮತ್ತು ಹೊಸ ಲೈಬ್ರರಿ ಆವೃತ್ತಿಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದರೆ, ಲೈಬ್ರರಿಗಳಲ್ಲಿನ ಅಂತರವನ್ನು ಮುಚ್ಚುವುದು ಹೆಚ್ಚು ಕಷ್ಟಕರವಾಗುತ್ತದೆ.

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

ಮತ್ತೊಂದೆಡೆ, ಮೊನೊರೆಪೋ ಪರಿಸರದಲ್ಲಿ, ನಾವು ಒಂದು ಲೈಬ್ರರಿಯ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಅದು ಕೆಲವು ಇತರ ಲೈಬ್ರರಿಗಳನ್ನು ಒಡೆಯುತ್ತದೆ ಏಕೆಂದರೆ ಅವರ ಪರೀಕ್ಷೆಗಳು ವಿಫಲಗೊಳ್ಳುತ್ತವೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಬದಲಾವಣೆಗಳನ್ನು ಅಳವಡಿಸಲು ಮೊದಲ ತಂಡವು ಎರಡನೇ ತಂಡದೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬೇಕು.

ಉತ್ತರಗಳಿಲ್ಲದೆ ಸಬ್‌ಪಾರ್ ಹಂತ 1 ವರ್ಡ್ಪ್ರೆಸ್ ಹೋಸ್ಟಿಂಗ್ ಬೆಂಬಲದಿಂದ ಬೇಸತ್ತಿದ್ದೀರಾ? ನಮ್ಮ ವಿಶ್ವ ದರ್ಜೆಯ ಬೆಂಬಲ ತಂಡವನ್ನು ಪ್ರಯತ್ನಿಸಿ! ನಮ್ಮ ಯೋಜನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ

ಒಂದೇ ಲೈಬ್ರರಿಗೆ ಬದಲಾವಣೆಯು ಸಂಭವಿಸಿದಾಗಲೆಲ್ಲಾ ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವಂತೆ ಈ ವಿಧಾನವು ತಂಡಗಳನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ. ಎಲ್ಲಾ ತಂಡಗಳು ಪರಸ್ಪರ ಮಾತನಾಡಲು ಮತ್ತು ಒಟ್ಟಿಗೆ ಪರಿಹಾರವನ್ನು ತಲುಪಲು ಒತ್ತಾಯಿಸಲಾಗುತ್ತದೆ.

ಪರಿಣಾಮವಾಗಿ, ಮೊದಲ ತಂಡವು ಅವರು ಬಯಸಿದಷ್ಟು ವೇಗವಾಗಿ ಪುನರಾವರ್ತನೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಆದರೆ ವಿವಿಧ ಲೈಬ್ರರಿಗಳಾದ್ಯಂತ ಕೋಡ್ ಯಾವುದೇ ಹಂತದಲ್ಲಿ ಬೇರೆಯಾಗಲು ಪ್ರಾರಂಭಿಸುವುದಿಲ್ಲ.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಮಲ್ಟಿ-ರೆಪೋ ವಿಧಾನವು ತಂಡಗಳ ನಡುವೆ "ವೇಗವಾಗಿ ಚಲಿಸುವ ಮತ್ತು ವಸ್ತುಗಳನ್ನು ಮುರಿಯುವ" ಸಂಸ್ಕೃತಿಯನ್ನು ರಚಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಅಲ್ಲಿ ವೇಗವುಳ್ಳ ಸ್ವತಂತ್ರ ತಂಡಗಳು ತಮ್ಮ ವೇಗದಲ್ಲಿ ತಮ್ಮ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸಬಹುದು. ಬದಲಾಗಿ, ಮೊನೊರೆಪೊ ವಿಧಾನವು ಅರಿವು ಮತ್ತು ಕಾಳಜಿಯ ಸಂಸ್ಕೃತಿಗೆ ಒಲವು ನೀಡುತ್ತದೆ, ಅಲ್ಲಿ ತಂಡಗಳು ಸಮಸ್ಯೆಯನ್ನು ತಾವಾಗಿಯೇ ನಿಭಾಯಿಸಲು ಹಿಂದೆ ಬಿಡಬಾರದು.

ಹೈಬ್ರಿಡ್ ಪಾಲಿ-ಆಸ್-ಮೊನೊ ಅಪ್ರೋಚ್

ಮಲ್ಟಿ-ರೆಪೊ ಅಥವಾ ಮೊನೊರೆಪೊ ವಿಧಾನಗಳನ್ನು ಬಳಸಬೇಕೆ ಎಂದು ನಾವು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಮಧ್ಯದ ವಿಧಾನವೂ ಇದೆ: ಬಹು ರೆಪೊಸಿಟರಿಗಳನ್ನು ಬಳಸುವುದು ಮತ್ತು ಅವುಗಳನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲು ಕೆಲವು ಸಾಧನಗಳನ್ನು ಬಳಸುವುದು, ಇದು ಮೊನೊರೆಪೊವನ್ನು ಹೋಲುತ್ತದೆ ಆದರೆ ಹೆಚ್ಚು ನಮ್ಯತೆಯೊಂದಿಗೆ.

ಮೆಟಾ ಅಂತಹ ಒಂದು ಸಾಧನವಾಗಿದೆ. ಇದು ಉಪ ಡೈರೆಕ್ಟರಿಗಳ ಅಡಿಯಲ್ಲಿ ಬಹು ರೆಪೊಸಿಟರಿಗಳನ್ನು ಆಯೋಜಿಸುತ್ತದೆ ಮತ್ತು ಒಂದೇ ಆಜ್ಞೆಯನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕಮಾಂಡ್-ಲೈನ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಮೆಟಾ-ರೆಪೊಸಿಟರಿಯು ಯಾವ ರೆಪೊಸಿಟರಿಗಳು ಯೋಜನೆಯನ್ನು ರೂಪಿಸುತ್ತವೆ ಎಂಬುದರ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ. ಮೆಟಾ ಮೂಲಕ ಈ ರೆಪೊಸಿಟರಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡುವುದರಿಂದ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ಕ್ಲೋನ್ ಮಾಡುತ್ತದೆ, ಹೊಸ ತಂಡದ ಸದಸ್ಯರು ತಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ತಕ್ಷಣ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ.

ಮೆಟಾ-ರೆಪೊಸಿಟರಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಲು ಮತ್ತು ಅದರ ಎಲ್ಲಾ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಬಹು ರೆಪೊಗಳನ್ನು ನಾವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು:

meta git clone [meta repo url]

ಮೆಟಾ ಎ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ git clone ಪ್ರತಿ ರೆಪೊಸಿಟರಿಗಾಗಿ ಮತ್ತು ಅದನ್ನು ಉಪ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಇರಿಸಿ:

ಮೆಟಾ ಪ್ರಾಜೆಕ್ಟ್ ಕ್ಲೋನಿಂಗ್
ಮೆಟಾ-ಪ್ರಾಜೆಕ್ಟ್ ಕ್ಲೋನಿಂಗ್. (ಚಿತ್ರ ಮೂಲ: github.com/mateodelnorte/meta)

ಅಂದಿನಿಂದ, ಕಾರ್ಯಗತಗೊಳಿಸುವುದು meta exec ಆಜ್ಞೆಯು ಪ್ರತಿ ಉಪ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕಾರ್ಯಗತಗೊಳಿಸುವುದು git checkout master ಪ್ರತಿ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಈ ರೀತಿ ಮಾಡಲಾಗುತ್ತದೆ:

meta exec "git checkout master"

ಹೈಬ್ರಿಡ್ ಮೊನೊ-ಆಸ್-ಪಾಲಿ ಅಪ್ರೋಚ್

ಮತ್ತೊಂದು ವಿಧಾನವೆಂದರೆ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಮೊನೊರೆಪೋ ಮೂಲಕ ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದು, ಆದರೆ ಪ್ರತಿ ಲೈಬ್ರರಿಯ ಕೋಡ್ ಅನ್ನು ನಿಯೋಜನೆಗಾಗಿ ಅದರ ಸ್ವತಂತ್ರ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ನಕಲಿಸುವುದು.

ಈ ತಂತ್ರವು PHP ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಪ್ರಚಲಿತವಾಗಿದೆ ಏಕೆಂದರೆ Packagist (ಮುಖ್ಯ ಸಂಯೋಜಕ ರೆಪೊಸಿಟರಿ) ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಪ್ರಕಟಿಸಲು ಸಾರ್ವಜನಿಕ ರೆಪೊಸಿಟರಿ URL ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಪ್ಯಾಕೇಜ್ ರೆಪೊಸಿಟರಿಯ ಉಪ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿದೆ ಎಂದು ಸೂಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

Packagist ಮಿತಿಯನ್ನು ನೀಡಿದರೆ, PHP ಯೋಜನೆಗಳು ಇನ್ನೂ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಮೊನೊರೆಪೋವನ್ನು ಬಳಸಬಹುದು, ಆದರೆ ಅವು ನಿಯೋಜನೆಗಾಗಿ ಬಹು-ರೆಪೋ ವಿಧಾನವನ್ನು ಬಳಸಬೇಕು.

ಈ ಪರಿವರ್ತನೆಯನ್ನು ಸಾಧಿಸಲು, ನಾವು ಇದರೊಂದಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು git subtree split ಅಥವಾ ಅದೇ ತರ್ಕವನ್ನು ನಿರ್ವಹಿಸುವ ಲಭ್ಯವಿರುವ ಸಾಧನಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಿ:

  • ಗಿಟ್ ಸಬ್‌ಟ್ರೀ ಸ್ಪ್ಲಿಟರ್
  • Git ಉಪವಿಭಾಗ
  • ಮೊನೊರೆಪೊ ಸ್ಪ್ಲಿಟ್‌ಗಾಗಿ GitHub ಆಕ್ಷನ್

ಮೊನೊರೆಪೊ ವಿರುದ್ಧ ಮಲ್ಟಿ-ರೆಪೊವನ್ನು ಯಾರು ಬಳಸುತ್ತಿದ್ದಾರೆ

ಹಲವಾರು ದೊಡ್ಡ ಟೆಕ್ ಕಂಪನಿಗಳು ಮೊನೊರೆಪೋ ವಿಧಾನವನ್ನು ಒಲವು ತೋರಿದರೆ, ಇತರರು ಮಲ್ಟಿ-ರೆಪೋ ವಿಧಾನವನ್ನು ಬಳಸಲು ನಿರ್ಧರಿಸಿದ್ದಾರೆ.

ಗೂಗಲ್, ಫೇಸ್‌ಬುಕ್, ಟ್ವಿಟರ್ ಮತ್ತು ಉಬರ್‌ಗಳು ಮೊನೊರೆಪೊ ವಿಧಾನಕ್ಕೆ ಸಾರ್ವಜನಿಕವಾಗಿ ಭರವಸೆ ನೀಡಿವೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿಂಡೋಸ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಗ್ರಹದ ಮೇಲೆ ಅತಿ ದೊಡ್ಡ Git ಮೊನೊರೆಪೋವನ್ನು ನಡೆಸುತ್ತದೆ.

ಎದುರು ಭಾಗದಲ್ಲಿ, ನೆಟ್‌ಫ್ಲಿಕ್ಸ್, ಅಮೆಜಾನ್ ಮತ್ತು ಲಿಫ್ಟ್ ಬಹು-ರೆಪೋ ವಿಧಾನವನ್ನು ಬಳಸುವ ಪ್ರಸಿದ್ಧ ಕಂಪನಿಗಳಾಗಿವೆ.

ಹೈಬ್ರಿಡ್ ಪಾಲಿ-ಆಸ್-ಮೊನೊ ಭಾಗದಲ್ಲಿ, ಆಂಡ್ರಾಯ್ಡ್ ಬಹು ರೆಪೊಸಿಟರಿಗಳನ್ನು ನವೀಕರಿಸುತ್ತದೆ, ಇವುಗಳನ್ನು ಮೊನೊರೆಪೋ ರೀತಿಯಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ.

ಹೈಬ್ರಿಡ್ ಮೊನೊ-ಆಸ್-ಪಾಲಿ ಭಾಗದಲ್ಲಿ, ಸಿಮ್ಫೋನಿ ತನ್ನ ಎಲ್ಲಾ ಘಟಕಗಳಿಗೆ ಕೋಡ್ ಅನ್ನು ಮೊನೊರೆಪೊದಲ್ಲಿ ಇರಿಸುತ್ತದೆ. ನಿಯೋಜನೆಗಾಗಿ ಅವರು ಅದನ್ನು ಸ್ವತಂತ್ರ ರೆಪೊಸಿಟರಿಗಳಾಗಿ ವಿಭಜಿಸುತ್ತಾರೆ (ಉದಾಹರಣೆಗೆ symfony/dependency-injection ಮತ್ತು symfony/event-dispatcher.)

ಮೊನೊರೆಪೊ ಮತ್ತು ಮಲ್ಟಿ-ರೆಪೊ ಉದಾಹರಣೆಗಳು

GitHub ನಲ್ಲಿನ WordPress ಖಾತೆಯು ಮೊನೊರೆಪೊ ಮತ್ತು ಮಲ್ಟಿ-ರೆಪೋ ವಿಧಾನಗಳ ಉದಾಹರಣೆಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡುತ್ತದೆ.

ಗುಟೆನ್‌ಬರ್ಗ್, WordPress ಬ್ಲಾಕ್ ಎಡಿಟರ್, ಹಲವಾರು ಡಜನ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪ್ಯಾಕೇಜುಗಳಿಂದ ಕೂಡಿದೆ. ಈ ಎಲ್ಲಾ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ WordPress/gutenberg monorepo ಮತ್ತು ಅವುಗಳನ್ನು npm ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಪ್ರಕಟಿಸಲು ಸಹಾಯ ಮಾಡಲು Lerna ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ.

ಓಪನ್ವರ್ಸ್, ಬಹಿರಂಗವಾಗಿ ಪರವಾನಗಿ ಪಡೆದ ಮಾಧ್ಯಮದ ಹುಡುಕಾಟ ಎಂಜಿನ್, ಸ್ವತಂತ್ರ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಅದರ ಮುಖ್ಯ ಭಾಗಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡುತ್ತದೆ: ಫ್ರಂಟ್-ಎಂಡ್, ಕ್ಯಾಟಲಾಗ್ ಮತ್ತು API.

ಮೊನೊರೆಪೊ vs ಮಲ್ಟಿ-ರೆಪೊ: ಹೇಗೆ ಆಯ್ಕೆ ಮಾಡುವುದು?

ಅನೇಕ ಅಭಿವೃದ್ಧಿ ಸಮಸ್ಯೆಗಳಂತೆ, ನೀವು ಯಾವ ವಿಧಾನವನ್ನು ಬಳಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ಯಾವುದೇ ಪೂರ್ವನಿರ್ಧರಿತ ಉತ್ತರವಿಲ್ಲ. ವಿಭಿನ್ನ ಕಂಪನಿಗಳು ಮತ್ತು ಯೋಜನೆಗಳು ತಮ್ಮ ವಿಶಿಷ್ಟ ಪರಿಸ್ಥಿತಿಗಳ ಆಧಾರದ ಮೇಲೆ ಒಂದು ತಂತ್ರ ಅಥವಾ ಇನ್ನೊಂದರಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತವೆ, ಅವುಗಳೆಂದರೆ:

  • ಕೋಡ್ಬೇಸ್ ಎಷ್ಟು ದೊಡ್ಡದಾಗಿದೆ? ಇದು ಗಿಗಾಬೈಟ್‌ಗಳಷ್ಟು ಡೇಟಾವನ್ನು ಹೊಂದಿದೆಯೇ?
  • ಕೋಡ್‌ಬೇಸ್‌ನಲ್ಲಿ ಎಷ್ಟು ಜನರು ಕೆಲಸ ಮಾಡುತ್ತಾರೆ? ಇದು ಸುಮಾರು 10, 100 ಅಥವಾ 1,000 ಆಗಿದೆಯೇ?
  • ಎಷ್ಟು ಪ್ಯಾಕೇಜ್‌ಗಳು ಇರುತ್ತವೆ? ಇದು ಸುಮಾರು 10, 100 ಅಥವಾ 1,000 ಆಗಿದೆಯೇ?
  • ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ತಂಡವು ಎಷ್ಟು ಪ್ಯಾಕೇಜ್‌ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಬೇಕಾಗುತ್ತದೆ?
  • ಪ್ಯಾಕೇಜ್‌ಗಳು ಎಷ್ಟು ಬಿಗಿಯಾಗಿ ಜೋಡಿಸಲ್ಪಟ್ಟಿವೆ?
  • ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಒಳಗೊಂಡಿವೆಯೇ? ಅವರಿಗೆ ನಿರ್ದಿಷ್ಟ ಸಾಫ್ಟ್‌ವೇರ್ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬೇಕೇ ಅಥವಾ ರನ್ ಮಾಡಲು ವಿಶೇಷ ಹಾರ್ಡ್‌ವೇರ್ ಅಗತ್ಯವಿದೆಯೇ?
  • ಎಷ್ಟು ನಿಯೋಜನೆ ಉಪಕರಣಗಳು ಅಗತ್ಯವಿದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಹೊಂದಿಸಲು ಎಷ್ಟು ಸಂಕೀರ್ಣವಾಗಿದೆ?
  • ಕಂಪನಿಯಲ್ಲಿನ ಸಂಸ್ಕೃತಿ ಏನು? ಸಹಯೋಗಿಸಲು ತಂಡಗಳನ್ನು ಪ್ರೋತ್ಸಾಹಿಸಲಾಗಿದೆಯೇ?
  • ಯಾವ ಪರಿಕರಗಳು ಮತ್ತು ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ತಂಡಗಳಿಗೆ ತಿಳಿದಿದೆ?

ನಿಮ್ಮ ಕೋಡ್‌ಬೇಸ್‌ಗಾಗಿ ನೀವು ಯಾವ ವಿಧಾನವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು? 🤔 ಇಲ್ಲಿ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ 👇ಟ್ವೀಟ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ

ಸಾರಾಂಶ

ಕೋಡ್ ಅನ್ನು ಹೋಸ್ಟಿಂಗ್ ಮಾಡಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಎರಡು ಮುಖ್ಯ ತಂತ್ರಗಳಿವೆ: ಮೊನೊರೆಪೊ vs ಮಲ್ಟಿ-ರೆಪೊ. ಮೊನೊರೆಪೊ ವಿಧಾನವು ವಿಭಿನ್ನ ಗ್ರಂಥಾಲಯಗಳು ಅಥವಾ ಯೋಜನೆಗಳಿಗೆ ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ - ಮತ್ತು ಕಂಪನಿಯ ಎಲ್ಲಾ ಕೋಡ್‌ಗಳನ್ನು ಸಹ - ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ. ಮತ್ತು ಮಲ್ಟಿ-ರೆಪೋ ವ್ಯವಸ್ಥೆಯು ಕೋಡ್ ಅನ್ನು ಗ್ರಂಥಾಲಯಗಳು ಅಥವಾ ಸೇವೆಗಳಂತಹ ಘಟಕಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಕೋಡ್ ಅನ್ನು ಸ್ವತಂತ್ರ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಹೋಸ್ಟ್ ಮಾಡುತ್ತದೆ.

ಯಾವ ವಿಧಾನವನ್ನು ಬಳಸುವುದು ಹಲವಾರು ಪರಿಸ್ಥಿತಿಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. ಎರಡೂ ತಂತ್ರಗಳು ಹಲವಾರು ಅನುಕೂಲಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳನ್ನು ಹೊಂದಿವೆ, ಮತ್ತು ಈ ಲೇಖನದಲ್ಲಿ ನಾವು ಎಲ್ಲವನ್ನೂ ವಿವರವಾಗಿ ವಿವರಿಸಿದ್ದೇವೆ.

ಮೊನೊರೆಪೋಸ್ ಅಥವಾ ಮಲ್ಟಿ-ರೆಪೋಸ್ ಕುರಿತು ನಿಮ್ಮಲ್ಲಿ ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳು ಉಳಿದಿವೆಯೇ? ಕಾಮೆಂಟ್ಗಳ ವಿಭಾಗದಲ್ಲಿ ನಮಗೆ ತಿಳಿಸಿ!

ಸಂಬಂಧಿತ ಲೇಖನಗಳು

0 ಪ್ರತಿಕ್ರಿಯೆಗಳು
ಇನ್ಲೈನ್ ​​ಪ್ರತಿಕ್ರಿಯೆಗಳು
ಎಲ್ಲಾ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ
ಮೇಲಿನ ಬಟನ್ಗೆ ಹಿಂತಿರುಗಿ