ಫೈಲ್‌ಗಳನ್ನು ಡೂಪ್ಲಿಕೇಟ್ ಮಾಡದೆಯೇ ದಕ್ಷ ವರ್ಷನ್ ಕಂಟ್ರೋಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು

ಪ್ರತಿ ವರ್ಷನ್ ಅಥವಾ ಫೋರ್ಕ್ (fork) ಗಾಗಿ ಫೈಲ್‌ಗಳ ಪೂರ್ಣ ಪ್ರತಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದು ಸ್ಥಳವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತದೆ. ಹತ್ತು ಫೈಲ್‌ಗಳಿರುವ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ ನೀವು ಕೇವಲ ಒಂದು ಸಾಲನ್ನು ಬದಲಾಯಿಸಿದರೆ, ನೀವು ಮತ್ತೆ ಹತ್ತು ಫೈಲ್‌ಗಳನ್ನೇ ಉಳಿಸಬೇಕಾಗಿಲ್ಲ.

ನನ್ನ LaTeX Writer ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ ನಾನು ಈ ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಿದೆ. ಹೆಚ್ಚಿನ ಸ್ಟೋರೇಜ್ ವೆಚ್ಚವಿಲ್ಲದೆ ವರ್ಷನ್ ಕಂಟ್ರೋಲ್ ಮತ್ತು ಪ್ರಾಜೆಕ್ಟ್ ಫೋರ್ಕಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ನನಗೆ ಒಂದು ಮಾರ್ಗ ಬೇಕಾಗಿತ್ತು.

GitHub ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ನಾನು ಗಮನಿಸಿದೆ. ನೀವು ಪ್ರತಿ ಬಾರಿ ಬದಲಾವಣೆ ಮಾಡಿದಾಗಲೂ GitHub ಪೂರ್ಣ ರೆಪೊಸಿಟರಿಯನ್ನು (repository) ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ. ಇದು ಕಂಟೆಂಟ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ಫೈಲ್‌ಗಳು ಹಾಗೂ ಕಮಿಟ್‌ಗಳನ್ನು (commits) ಜೋಡಿಸಲು ರೆಫರೆನ್ಸ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ.

ನಾನು ಮೂರು ಮುಖ್ಯ ಘಟಕಗಳನ್ನು ಬಳಸಿ ನನ್ನ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸಿದೆ:

ಈ ವ್ಯವಸ್ಥೆಯು ಕಂಟೆಂಟ್ ಹ್ಯಾಶಿಂಗ್ (content hashing) ಮೂಲಕ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ನೀವು ಫೈಲ್ ಅನ್ನು ಉಳಿಸಿದಾಗ, ವ್ಯವಸ್ಥೆಯು ಕಂಟೆಂಟ್ ಆಧಾರದ ಮೇಲೆ ವಿಶಿಷ್ಟವಾದ ಐಡಿಯನ್ನು (unique ID) ಸೃಷ್ಟಿಸುತ್ತದೆ. ಒಂದು ವೇಳೆ ಆ ಕಂಟೆಂಟ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ವ್ಯವಸ್ಥೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬ್ಲೋಬ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತದೆ. ಇದು ಹೊಸದನ್ನು ಸೃಷ್ಟಿಸುವುದಿಲ್ಲ.

ಈ ವಿಧಾನವು ಫೋರ್ಕಿಂಗ್ ಅನ್ನು ಸುಲಭ ಮತ್ತು ಅಗ್ಗವಾಗಿಸುತ್ತದೆ. ನೀವು ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಫೋರ್ಕ್ ಮಾಡಿದಾಗ:

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

ನೀವು ಫೋರ್ಕ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಿದಾಗಲೂ, ಪ್ರಕ್ರಿಯೆಯು ದಕ್ಷವಾಗಿರುತ್ತದೆ:

ಈ ವಿಧಾನವು ಹಲವಾರು ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತದೆ:

ಹೆಚ್ಚಿನ ಸ್ಟೋರೇಜ್ ಹೊರೆಯಿಲ್ಲದೆ ನೀವು GitHub ನಂತಹ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಪಡೆಯಬಹುದು.

ಮೂಲ: https://dev.to/prashant_patil_49/building-github-inspired-version-control-and-forking-without-duplicating-project-files-5aap