VPN ಹಂಚಿಕೆಯಲ್ಲಿ Visual Studio ನಿಧಾನ: ಉಳಿಸುವಿಕೆ ಏಕೆ ರೌಂಡ್ ಟ್ರಿಪ್ ಆಗುತ್ತದೆ
ಹಂಚಿಕೆಯ ಮೂಲಕ ಸಂಪಾದನೆ ಉಳಿಸುವಿಕೆ, ಮೆನುಗಳು ಮತ್ತು ಬದಲಾವಣೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಅನ್ನು ರೌಂಡ್ ಟ್ರಿಪ್ ಆಗಿ ಮಾಡುತ್ತದೆ. ಕೆಲಸದ ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯಕ್ಕೆ ಸರಿಸಿ, ಮತ್ತು ಇತಿಹಾಸವನ್ನು ನಡೆದಾಡುವ ಬದಲು ಒಂದೇ ವಸ್ತುವಾಗಿ ಕಳುಹಿಸಿ.
ಸ್ಥಳೀಯ ಡಿಸ್ಕಿನಿಂದ ಒಂದು ಸೆಕೆಂಡಿನಲ್ಲಿ ತೆರೆಯುವ ಪರಿಹಾರವು ಟನೆಲ್ ಮೂಲಕ ತಲುಪುವ ಹಂಚಿಕೆಯಿಂದ ತೆರೆಯಲು ಮೂವತ್ತು ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಟನೆಲ್ ಸ್ವತಃ ಅಪರೂಪವಾಗಿ ಕಾರಣವಾಗಿರುತ್ತದೆ. ಬದಲಾಗುವುದು ಏನೆಂದರೆ ಸ್ಥಳೀಯ ಕರೆಗಳಾಗಿದ್ದ ಕಾರ್ಯಾಚರಣೆಗಳು ಸಮಕಾಲೀನ ರೌಂಡ್ ಟ್ರಿಪ್ ಆಗುತ್ತವೆ, ಮತ್ತು ವಿಂಡೋ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಮೊದಲು ಸಂಪಾದಕವು ಅವುಗಳಲ್ಲಿ ಹಲವನ್ನು ಮಾಡುತ್ತದೆ. ಕೆಳಗಿನ ವಿಧಾನವು ಪ್ರತಿಯೊಂದೂ ಏಕೆ ದುಬಾರಿ ಮತ್ತು ಯಾವುದನ್ನು ತೆಗೆದುಹಾಕಬಹುದು ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ.
ಫೈಲ್ ತೆರೆದಿರುವಾಗ ಸಂಪಾದಕ ಏನು ಮಾಡುತ್ತದೆ
ಬದಲಾವಣೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಇರುವ ಸಂಪಾದಕವು ತೆರೆದಿರುವ ಪ್ರತಿ ಫೈಲ್ನಲ್ಲಿ ಚಂದಾದಾರಿಕೆಯನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ. ಸ್ಥಳೀಯ ಸಂಪುಟವು ಆ ಚಂದಾದಾರಿಕೆಯನ್ನು ಜಾಲರಹಿತವಾಗಿ ಫೈಲ್ ವ್ಯವಸ್ಥೆಯಿಂದ ಪೂರೈಸುತ್ತದೆ. ಹಂಚಿಕೆಯಾದ್ಯಂತ ಅದೇ ವೈಶಿಷ್ಟ್ಯವು ಪುನರಾವರ್ತಿತ ಮೆಟಾಡೇಟಾ ಓದುವಿಕೆಗೆ ಇಳಿಯಬಹುದು, ಏಕೆಂದರೆ ಅಧಿಸೂಚನಾ ಮಾದರಿಯು SMB ಮೇಲೆ ಒಂದೇ ರೀತಿ ವರ್ತಿಸುವುದಿಲ್ಲ. ಬದಲಾವಣೆ ಟ್ರ್ಯಾಕಿಂಗ್ ಆಫ್ ಮಾಡುವುದು ನ್ಯಾಯಯುತ ಮೊದಲ ಪ್ರಯೋಗ, ಏಕೆಂದರೆ ಅದು ಟನೆಲ್ ಮುಟ್ಟದೆ ಇಡೀ ವರ್ಗದ ವಿನಂತಿಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.
ಪ್ರಾಜೆಕ್ಟ್ ವ್ಯವಸ್ಥೆಯು ತನ್ನದೇ ಸಂಚಾರವನ್ನು ಸೇರಿಸುತ್ತದೆ. ಪರಿಹಾರವನ್ನು ಲೋಡ್ ಮಾಡುವುದು ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಎಣಿಸುತ್ತದೆ, ಪ್ರಾಜೆಕ್ಟ್ ಫೈಲ್ಗಳನ್ನು ಓದುತ್ತದೆ ಮತ್ತು SDK ಅಥವಾ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು, ಮತ್ತು ಮಾರ್ಗ ದೂರವಿದ್ದಾಗ ಪ್ರತಿ ಪರಿಶೀಲನೆಯೂ ರೌಂಡ್ ಟ್ರಿಪ್. ಹಲವು ಪ್ರಾಜೆಕ್ಟ್ಗಳ ಪರಿಹಾರವು ಆ ಸಂಖ್ಯೆಯನ್ನು ಗುಣಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ತೆರೆಯುವ ಸಮಯ ಫೈಲ್ ಗಾತ್ರಗಳು ಸೂಚಿಸುವುದಕ್ಕಿಂತ ವೇಗವಾಗಿ ಬೆಳೆಯುತ್ತದೆ.
ಮೆನು ಕಾಣಿಸಿಕೊಳ್ಳುವ ಮೊದಲೇ ಮುಗಿಯುವ ಶೆಲ್ ಹುಡುಕಾಟಗಳು
Windows IDE ಯೊಂದಿಗೆ ಯಾವುದೇ ಸಂಬಂಧವಿಲ್ಲದ ಎರಡನೇ ನಿಲುಗಡೆ ಮೂಲವನ್ನು ಸೇರಿಸುತ್ತದೆ. Explorer ಮತ್ತು ಅದರ ಶೆಲ್ ವಿಸ್ತರಣೆಗಳು ಪ್ರತಿ ಬಾರಿ ಸಂದರ್ಭ ಮೆನು ತೆರೆದಾಗ ಹಿಂದೆ ಬಳಸಿದ ಪ್ರಿಂಟರ್ಗಳು, ಮ್ಯಾಪ್ ಮಾಡಿದ ಡ್ರೈವ್ಗಳು ಮತ್ತು ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಮತ್ತೆ ಪರಿಹರಿಸುತ್ತವೆ. ಆ ಗುರಿಗಳು ಟನೆಲ್ ತಲುಪಲಾಗದ ಜಾಲದಲ್ಲಿದ್ದರೆ, ಪ್ರತಿ ಪರಿಹಾರವೂ ಕಾಲಮಿತಿ ಮುಗಿಯುವವರೆಗೆ ನಿರ್ಬಂಧಿಸುತ್ತದೆ, ಆಮೇಲೆ ಮಾತ್ರ ಮೆನು ಬಿಡಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ ಫೈಲ್ ಸ್ವತಃ ಸಾಮಾನ್ಯವಾಗಿ ತೆರೆದರೂ ಬಲ ಕ್ಲಿಕ್ ಸೆಕೆಂಡುಗಳ ಕಾಲ ನೇತಾಡಬಹುದು.
ಸತ್ತ ಮ್ಯಾಪಿಂಗ್ಗಳು ಮತ್ತು ಪ್ರಿಂಟರ್ ಸರತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಿ, ಅಥವಾ ನೀವು ನಿಜವಾಗಿ ಇರುವ ಜಾಲದಲ್ಲಿರುವವುಗಳನ್ನು ಮಾತ್ರ ಇಟ್ಟುಕೊಳ್ಳಿ. ಅದೇ ತರ್ಕವು ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಮಾರ್ಗವನ್ನು ಪರಿಹರಿಸುವ ಎಲ್ಲದಕ್ಕೂ ಅನ್ವಯಿಸುತ್ತದೆ, ಇತ್ತೀಚಿನ ಫೈಲ್ ಪಟ್ಟಿಗಳು ಮತ್ತು ಪಿನ್ ಮಾಡಿದ ಫೋಲ್ಡರ್ಗಳೂ ಸೇರಿದಂತೆ.
net use
Get-Printer | Select-Object Name, PortName
Measure-Command { Get-ChildItem \files\proj | Out-Null }
ಸ್ಥಳೀಯ ಕೆಲಸದ ಪ್ರತಿ ಏಕೆ ಗೆಲ್ಲುತ್ತದೆ
ಹಂಚಿಕೆಯ ಮೇಲೆ ನೇರವಾಗಿ ಕೆಲಸ ಮಾಡುವುದು ಸಂಪಾದನೆ-ಬಿಲ್ಡ್-ಪರೀಕ್ಷೆ ಚಕ್ರಕ್ಕೆ ಅತ್ಯಂತ ಕೆಟ್ಟ ವ್ಯವಸ್ಥೆ, ಏಕೆಂದರೆ ಸಂಪಾದಕ, ಕಂಪೈಲರ್ ಮತ್ತು ಆವೃತ್ತಿ ನಿಯಂತ್ರಣ ಕ್ಲೈಂಟ್ ಪ್ರತಿಯೊಂದೂ ಆ ದೂರದ ಫೈಲ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಓದುತ್ತದೆ. ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ ತನ್ನದೇ ರೌಂಡ್ ಟ್ರಿಪ್ ಪಾವತಿಸುತ್ತದೆ, ಮತ್ತು ಬಿಲ್ಡ್ ಪ್ರತಿ ಫೈಲ್ಗೆ ಒಮ್ಮೆ ಪಾವತಿಸುತ್ತದೆ. ರೆಪೊಸಿಟರಿ ಮೂಲಕ ಪುಷ್ನೊಂದಿಗೆ ಸ್ಥಳೀಯ ಪ್ರತಿಯು ಸಣ್ಣ ದಾಟುವಿಕೆಗಳ ಪ್ರವಾಹವನ್ನು ಒಂದೇ ಉದ್ದೇಶಿತ ದಾಟುವಿಕೆಯಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ. ಸಂಪರ್ಕ ಸುಧಾರಿಸಿಲ್ಲ; ದಾಟುವಿಕೆಗಳ ಸಂಖ್ಯೆ ಕುಸಿದಿದೆ.
ಇದು ಟ್ಯೂನಿಂಗ್ ಅಭ್ಯಾಸವಲ್ಲ, ರಚನಾತ್ಮಕ ಬದಲಾವಣೆ, ಮತ್ತು ಟನೆಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳು ಕೆಲಸ ಮಾಡದಿದ್ದಾಗ ಅದು ಕೆಲಸ ಮಾಡುವುದು ಇದೇ ಕಾರಣಕ್ಕೆ. ಇದು ವೈಫಲ್ಯದ ವಿಧಾನವನ್ನೂ ಸ್ಪಷ್ಟಪಡಿಸುತ್ತದೆ: ಸ್ಥಳೀಯ ಪ್ರತಿಯೊಂದಿಗೆ ಬಿಲ್ಡ್ ಇನ್ನೂ ನಿಧಾನವಾಗಿದ್ದರೆ, ಹಂಚಿಕೆ ಎಂದೂ ಸಮಸ್ಯೆಯಾಗಿರಲಿಲ್ಲ.
ಇತಿಹಾಸವನ್ನು ಒಂದೇ ವಸ್ತುವಾಗಿ ಸರಿಸಿ
ರೆಪೊಸಿಟರಿಯೇ ಟನೆಲ್ ದಾಟಬೇಕಾದರೆ, ಇತಿಹಾಸವನ್ನು ನಡೆದಾಡುವ ಬದಲು ಒಂದೇ ವಸ್ತುವಿನಲ್ಲಿ ಕಳುಹಿಸಿ. ಬಂಡಲ್ ಒಂದೇ ಫೈಲ್ ಮತ್ತು ಆದ್ದರಿಂದ ಒಂದೇ ವರ್ಗಾವಣೆ, ಆದರೆ ಸಾವಿರಾರು ಸಡಿಲ ವಸ್ತುಗಳನ್ನು ನಡೆದಾಡುವ checkout ಸಾವಿರಾರು ದಾಟುವಿಕೆಗಳನ್ನು ವೆಚ್ಚ ಮಾಡುತ್ತದೆ. Mercurial ಮತ್ತು Git ಎರಡೂ ಆ ರೂಪವನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ.
hg bundle --base 9f2c1a7e outgoing.hg
hg unbundle outgoing.hg
git bundle create repo.bundle main
git clone repo.bundle repo
ಮೂಲ ಪರಿಷ್ಕರಣೆ ಸರಿಯಾಗಿ ಹೊಂದಿಸಬೇಕಾದ ಭಾಗ, ಏಕೆಂದರೆ ಎಷ್ಟು ಇತಿಹಾಸ ಪ್ರಯಾಣಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಅದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಎಲ್ಲವನ್ನೂ ಬಂಡಲ್ ಮಾಡುವುದು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸಂಪರ್ಕವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತದೆ, ಆದರೆ ಕೊನೆಯ ಸಾಮಾನ್ಯ ಬದಲಾವಣೆಯಿಂದ ಬಂಡಲ್ ಮಾಡುವುದು ಇನ್ನೊಂದು ಬದಿಯಲ್ಲಿ ಇಲ್ಲದಿರುವುದನ್ನು ಮಾತ್ರ ಸರಿಸುತ್ತದೆ.
ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಅನ್ನು ದೂಷಿಸುವ ಮೊದಲು ಮೂರು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅಳೆಯಿರಿ
ಮೂರು ವಿಷಯಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಅಳೆಯಿರಿ: ಒಂದು ಸಣ್ಣ ಫೈಲ್ ತೆರೆಯಿತು, ಒಂದು ಡೈರೆಕ್ಟರಿ ಪಟ್ಟಿ ಮಾಡಲಾಯಿತು, ಒಂದು ಉಳಿಸುವಿಕೆ ಪೂರ್ಣಗೊಂಡಿತು. ಮೂರೂ ಫೈಲ್ ಸಂಖ್ಯೆಗೆ ಅನುಪಾತದಲ್ಲಿ ನಿಧಾನವಾಗಿದ್ದರೆ, ವೆಚ್ಚ ರೌಂಡ್ ಟ್ರಿಪ್ಗಳು. ಒಂದು ನಿಂತು ಉಳಿದವು ಸರಿಯಾಗಿದ್ದರೆ, ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಅಲ್ಲ, ತಲುಪಲಾಗದ ಸಂಪನ್ಮೂಲದ ವಿರುದ್ಧ ಕಾಲಮಿತಿಯನ್ನು ಸಂಶಯಿಸಿ. ಪ್ರತಿ ರನ್ನಲ್ಲಿ ಯಂತ್ರ ಯಾವ ಜಾಲದಲ್ಲಿತ್ತು ಎಂದು ದಾಖಲಿಸಿ, ಏಕೆಂದರೆ ಬೇರೆ ಪ್ರೊಫೈಲ್ಗೆ ಮತ್ತೆ ಸಂಪರ್ಕಗೊಳ್ಳುವ ಲ್ಯಾಪ್ಟಾಪ್ ಪ್ರಯತ್ನಗಳ ನಡುವೆ ಉತ್ತರವನ್ನು ಬದಲಾಯಿಸಬಹುದು.
ನಂತರ ಅದೇ ಮೂರನ್ನು ಪ್ರಾಜೆಕ್ಟ್ನ ಸ್ಥಳೀಯ ಪ್ರತಿಯ ವಿರುದ್ಧ ಪುನರಾವರ್ತಿಸಿ. ವ್ಯತ್ಯಾಸ ಹಂಚಿಕೆಯ ಬೆಲೆ, ಮತ್ತು ಯಾರಾದರೂ ವೇಗದ ಸಂಪರ್ಕವನ್ನು ಪರಿಹಾರವೆಂದು ಸೂಚಿಸಿದಾಗ ಉಲ್ಲೇಖಿಸಬೇಕಾದ ಸಂಖ್ಯೆ ಅದೇ.