அசூர் களஞ்சிய அளவு வரம்புகளை மீறுதல்
ஒரு Git களஞ்சியத்தை Azure க்கு மாற்றுவது சில நேரங்களில் சவால்களை எதிர்கொள்ளலாம், குறிப்பாக பெரிய களஞ்சிய அளவுகளைக் கையாளும் போது. ஒரு பொதுவான பிழை, "TF402462 அளவு 5120 MB ஐ விட அதிகமாக இருந்ததால் புஷ் நிராகரிக்கப்பட்டது," எதிர்பாராத விதமாக செயல்முறையை நிறுத்தலாம். பெரிதாக்கப்பட்ட கோப்புகள் அல்லது .git கோப்பகத்தில் உள்ள வரலாறு காரணமாக இந்தச் சிக்கல் அடிக்கடி எழுகிறது.
இந்தக் கட்டுரையில், பெரிய கோப்புகளை திறம்பட நிர்வகிப்பதற்கு Git LFS (பெரிய கோப்பு சேமிப்பு) பயன்பாடு உட்பட, இந்தப் பிரச்சனையைத் தீர்ப்பதற்கான படிகளை ஆராய்வோம். காரணங்களைப் புரிந்துகொண்டு சரியான தீர்வுகளைச் செயல்படுத்துவதன் மூலம், அளவு வரம்புகளை மீறாமல் உங்கள் களஞ்சியத்தை Azure க்கு வெற்றிகரமாக மாற்றலாம்.
கட்டளை | விளக்கம் |
---|---|
git lfs install | களஞ்சியத்தில் Git பெரிய கோப்பு சேமிப்பகத்தை (LFS) துவக்குகிறது. |
git lfs track | Git LFS உடன் குறிப்பிட்ட கோப்பு வகைகளைக் கண்காணிக்கிறது, அவை களஞ்சிய அளவின் மீதான தாக்கத்தைக் குறைக்கிறது. |
git lfs migrate import | Git LFS ஆல் நிர்வகிக்கப்படும் பெரிய கோப்புகளை இறக்குமதி செய்து நகர்த்துகிறது. |
git filter-repo | கமிட் வரலாற்றில் இருந்து பெரிய கோப்புகளை அகற்ற களஞ்சியத்தை வடிகட்டுகிறது. |
git gc --prune=now | களஞ்சிய அளவைக் குறைக்க குப்பைகள் தேவையற்ற கோப்புகளை சேகரித்து கத்தரிக்கின்றன. |
git push --mirror | அனைத்து குறிப்புகளையும் (கிளைகள், குறிச்சொற்கள்) ஒரு களஞ்சியத்திலிருந்து மற்றொன்றுக்கு தள்ளுகிறது. |
அசூர் இடம்பெயர்வுக்கான ஸ்கிரிப்ட்களைப் புரிந்துகொள்வது
முதல் ஸ்கிரிப்ட் உங்கள் களஞ்சியத்தில் உள்ள பெரிய கோப்புகளை கையாள Git LFS (பெரிய கோப்பு சேமிப்பு) பயன்படுத்துவதில் கவனம் செலுத்துகிறது. இது Git LFS ஐ துவக்குவதன் மூலம் தொடங்குகிறது git lfs install கட்டளை. இதைப் பயன்படுத்தி பெரிய கோப்புகளைக் கண்காணிக்கும் git lfs track, குறிப்பிட்ட கோப்பு வகைகள் Git LFS ஆல் நிர்வகிக்கப்படுவதை உறுதி செய்கிறது. கண்காணிப்பை அமைத்த பிறகு, ஸ்கிரிப்ட் பயன்படுத்துகிறது git lfs migrate import ஏற்கனவே உள்ள பெரிய கோப்புகளை LFS இல் இறக்குமதி செய்ய. இந்த செயல்முறை களஞ்சியத்தின் அளவைக் குறைக்க உதவுகிறது, இது Azure க்கு தள்ளுவதை எளிதாக்குகிறது. இறுதியாக, ஸ்கிரிப்ட் முழு களஞ்சியத்தையும் பயன்படுத்தி தள்ள முயற்சிக்கிறது git push --mirror கட்டளை.
இரண்டாவது ஸ்கிரிப்ட், களஞ்சியத்தை பகுப்பாய்வு செய்து சுத்தம் செய்வதற்கான பைதான் அடிப்படையிலான அணுகுமுறையாகும். இது களஞ்சியத்தை உள்ளூரில் குளோனிங் செய்வதன் மூலம் தொடங்குகிறது subprocess.run(['git', 'clone', repo_url]) பின்னர் களஞ்சிய கோப்பகத்திற்கு செல்லவும். ஸ்கிரிப்ட் பயன்படுத்துகிறது git filter-repo வரலாற்றில் இருந்து பெரிய கோப்புகளை நீக்க, தொடர்ந்து git gc --prune=now குப்பைகளை சேகரித்து தேவையற்ற கோப்புகளை கத்தரிக்க வேண்டும். இது களஞ்சியத்தின் அளவைக் கணிசமாகக் குறைக்கிறது. இறுதியாக, சுத்தம் செய்யப்பட்ட களஞ்சியத்தை பயன்படுத்தி அசூர் தள்ளப்படுகிறது subprocess.run(['git', 'push', '--mirror', 'azure-remote-url']). இந்த படிநிலைகள் Azure விதித்த அளவு வரம்புகளுக்குள் களஞ்சியம் இருப்பதை உறுதி செய்கிறது.
Azure இடம்பெயர்வுக்கான பெரிய கோப்புகளை நிர்வகிக்க Git LFS ஐப் பயன்படுத்துதல்
கோப்பு இடமாற்றத்திற்கான Git Bash ஸ்கிரிப்ட்
# Step 1: Initialize Git LFS
git lfs install
# Step 2: Track specific large file types
git lfs track "*.zip" "*.a" "*.tar" "*.dll" "*.lib" "*.xz" "*.bz2" "*.exe" "*.ttf" "*.ttc" "*.db" "*.mp4" "*.tgz" "*.pdf" "*.dcm" "*.so" "*.pdb" "*.msi" "*.jar" "*.bin" "*.sqlite"
# Step 3: Add .gitattributes file
git add .gitattributes
git commit -m "Track large files using Git LFS"
# Step 4: Migrate existing large files to Git LFS
git lfs migrate import --include="*.zip,*.a,*.tar,*.dll,*.lib,*.xz,*.bz2,*.exe,*.ttf,*.ttc,*.db,*.mp4,*.tgz,*.pdf,*.dcm,*.so,*.pdb,*.msi,*.jar,*.bin,*.sqlite"
# Step 5: Push the repository to Azure
git push --mirror
வெற்றிகரமான அஸூர் இடம்பெயர்வுக்கான களஞ்சிய அளவைக் குறைத்தல்
பைதான் ஸ்கிரிப்ட் பகுப்பாய்வு மற்றும் களஞ்சியத்தை சுத்தம் செய்ய
import os
import subprocess
# Step 1: Clone the repository locally
repo_url = 'your-repo-url'
subprocess.run(['git', 'clone', repo_url])
# Step 2: Change directory to the cloned repo
repo_name = 'your-repo-name'
os.chdir(repo_name)
# Step 3: Remove large files from history
subprocess.run(['git', 'filter-repo', '--path-glob', '*.zip', '--path-glob', '*.tar', '--path-glob', '*.dll', '--path-glob', '*.mp4', '--strip-blobs-bigger-than', '10M'])
# Step 4: Garbage collect to reduce repo size
subprocess.run(['git', 'gc', '--prune=now'])
# Step 5: Push the cleaned repository to Azure
subprocess.run(['git', 'push', '--mirror', 'azure-remote-url'])
Azure இல் களஞ்சிய அளவு சிக்கல்களை நிவர்த்தி செய்தல்
பெரிய Git களஞ்சியங்களை நிர்வகிப்பதற்கான மற்றொரு முக்கிய அம்சம் வரலாறு மற்றும் பயன்படுத்தப்படாத கோப்புகளை கருத்தில் கொள்வது. காலப்போக்கில், களஞ்சியங்கள் கணிசமான அளவு வரலாற்றுத் தரவைக் குவிக்கின்றன, இது அளவு சிக்கலுக்கு பங்களிக்கும். போன்ற கருவிகள் git filter-repo மற்றும் git gc இந்தத் தரவை சுத்தம் செய்ய உதவுங்கள். தி git filter-repo பெரிய கோப்புகள் அல்லது உணர்திறன் தரவை அகற்ற வரலாற்றை மீண்டும் எழுதுவதற்கு கட்டளை மிகவும் பயனுள்ளதாக இருக்கும், இது களஞ்சியத்தின் தடயத்தை திறம்பட குறைக்கிறது.
கூடுதலாக, தி git gc கட்டளை, குறிப்பாக உடன் பயன்படுத்தப்படும் போது --prune=now இந்த விருப்பம், குப்பைகளை சேகரிப்பதற்கும், தொங்கும் கமிட்கள் மற்றும் பிற அணுக முடியாத பொருட்களை அகற்றுவதற்கும் அவசியம். இது தேவையான தரவு மட்டுமே சேமிக்கப்படுவதை உறுதி செய்கிறது, மேலும் நிர்வகிக்கக்கூடிய களஞ்சிய அளவை பராமரிக்கிறது. இந்த கட்டளைகளைப் பயன்படுத்தி வழக்கமான பராமரிப்பு, களஞ்சியத்தை நிர்வகிக்கக்கூடிய வரம்புகளுக்கு அப்பால் வளர்வதைத் தடுக்கலாம், மென்மையான இடம்பெயர்வுகள் மற்றும் செயல்பாடுகளை எளிதாக்குகிறது.
Git to Azure இடம்பெயர்வுக்கான பொதுவான கேள்விகள் மற்றும் தீர்வுகள்
- "TF402462" பிழையின் அர்த்தம் என்ன?
- Azure விதித்த 5120 MB வரம்பை விட களஞ்சிய அளவு அதிகமாக இருப்பதால், புஷ் நிராகரிக்கப்பட்டது என்பதை பிழை குறிக்கிறது.
- எனது களஞ்சியத்தில் உள்ள பெரிய கோப்புகளை எவ்வாறு அடையாளம் காண்பது?
- நீங்கள் பயன்படுத்தலாம் git rev-list --objects --all | sort -k 2 > allfiles.txt களஞ்சியத்தில் உள்ள அனைத்து கோப்புகளையும் பட்டியலிடவும் மற்றும் மிகப்பெரியவற்றை அடையாளம் காணவும் கட்டளை.
- Git LFS என்றால் என்ன, அது எவ்வாறு உதவுகிறது?
- Git LFS (பெரிய கோப்பு சேமிப்பு) என்பது Gitக்கான நீட்டிப்பாகும், இது பெரிய கோப்புகளை களஞ்சியத்தின் முக்கிய வரலாற்றிலிருந்து தனித்தனியாக நிர்வகிக்க உங்களை அனுமதிக்கிறது, இது ஒட்டுமொத்த களஞ்சிய அளவைக் குறைக்கிறது.
- Git LFSஐப் பயன்படுத்தி பெரிய கோப்புகளைக் கண்காணிப்பது எப்படி?
- பயன்படுத்த git lfs track கட்டளையைத் தொடர்ந்து நீங்கள் நிர்வகிக்க விரும்பும் கோப்பு வகைகள், எடுத்துக்காட்டாக git lfs track "*.zip" "*.tar".
- Git LFS மூலம் கோப்புகளைக் கண்காணித்த பிறகு நான் என்ன நடவடிக்கைகளை எடுக்க வேண்டும்?
- கண்காணித்த பிறகு, நீங்கள் மாற்றங்களைச் செய்து இயக்க வேண்டும் git lfs migrate import இருக்கும் பெரிய கோப்புகளை LFSக்கு நகர்த்த.
- எனது களஞ்சியத்தின் வரலாற்றை நான் எவ்வாறு சுத்தம் செய்வது?
- பயன்படுத்த git filter-repo உங்கள் களஞ்சிய வரலாற்றிலிருந்து தேவையற்ற கோப்புகளை அகற்றி அதன் அளவைக் குறைக்க கட்டளையிடவும்.
- பங்கு என்ன git gc களஞ்சிய அளவை பராமரிப்பதில்?
- தி git gc கட்டளை தேவையற்ற கோப்புகளை சுத்தம் செய்கிறது மற்றும் களஞ்சியத்தை மேம்படுத்துகிறது, இது அளவை நிர்வகிக்க மிகவும் முக்கியமானது.
- எனது களஞ்சியத்தில் நான் எவ்வளவு அடிக்கடி பராமரிப்பு கட்டளைகளை இயக்க வேண்டும்?
- வழக்கமாக, குறிப்பாக குறிப்பிடத்தக்க மாற்றங்கள் அல்லது இடம்பெயர்வுகளுக்கு முன்னும் பின்னும், களஞ்சியம் அளவு வரம்பிற்குள் இருப்பதை உறுதிசெய்ய.
களஞ்சிய அளவு மேலாண்மை பற்றிய இறுதி எண்ணங்கள்
பெரிய Git களஞ்சியங்களை திறம்பட நிர்வகிப்பது Azure க்கு வெற்றிகரமான இடம்பெயர்வுக்கு முக்கியமானது, குறிப்பாக அளவு வரம்புகளைக் கையாளும் போது. பெரிய கோப்புகளைக் கண்காணிக்கவும் நிர்வகிக்கவும் Git LFS போன்ற கருவிகளைப் பயன்படுத்துவது களஞ்சிய அளவைக் கணிசமாகக் குறைக்கும். கூடுதலாக, git filter-repo போன்ற கட்டளைகள் மூலம் வரலாற்றை சுத்தம் செய்வது மற்றும் git gc ஐப் பயன்படுத்தி வழக்கமான பராமரிப்பு ஆகியவை உங்கள் களஞ்சியத்தை உகந்ததாகவும் அளவு வரம்புக்குள் வைத்திருக்கவும் முடியும். இந்த உத்திகள் மூலம், நீங்கள் TF402462 பிழையை சமாளித்து, ஒரு மென்மையான இடம்பெயர்வு செயல்முறையை உறுதிசெய்யலாம்.