Azure সংগ্রহস্থলের আকারের সীমা অতিক্রম করা
Azure-এ গিট রিপোজিটরি স্থানান্তর করা কখনও কখনও চ্যালেঞ্জের সম্মুখীন হতে পারে, বিশেষ করে যখন বড় সংগ্রহস্থলের আকার নিয়ে কাজ করা হয়। একটি সাধারণ ত্রুটি, "TF402462 পুশ প্রত্যাখ্যান করা হয়েছিল কারণ আকার 5120 MB-এর বেশি ছিল," প্রক্রিয়াটিকে অপ্রত্যাশিতভাবে থামাতে পারে৷ এই সমস্যাটি প্রায়শই বড় আকারের ফাইল বা .git ডিরেক্টরির মধ্যে ইতিহাসের কারণে দেখা দেয়।
এই নিবন্ধে, আমরা বড় ফাইলগুলিকে কার্যকরভাবে পরিচালনা করতে গিট এলএফএস (লার্জ ফাইল স্টোরেজ) ব্যবহার সহ এই সমস্যাটি সমাধানের পদক্ষেপগুলি অন্বেষণ করব। কারণগুলি বুঝতে এবং সঠিক সমাধানগুলি প্রয়োগ করে, আপনি আকারের সীমা অতিক্রম না করে সফলভাবে আপনার সংগ্রহস্থল Azure-এ স্থানান্তর করতে পারেন।
আদেশ | বর্ণনা |
---|---|
git lfs install | রিপোজিটরিতে গিট লার্জ ফাইল স্টোরেজ (LFS) শুরু করে। |
git lfs track | Git LFS এর সাথে নির্দিষ্ট ফাইলের ধরন ট্র্যাক করে, সংগ্রহস্থলের আকারের উপর তাদের প্রভাব হ্রাস করে। |
git lfs migrate import | Git LFS দ্বারা পরিচালিত বড় ফাইলগুলি আমদানি এবং স্থানান্তর করে। |
git filter-repo | কমিট ইতিহাস থেকে বড় ফাইলগুলি সরাতে সংগ্রহস্থল ফিল্টার করে। |
git gc --prune=now | আবর্জনা সংগ্রহস্থলের আকার কমাতে অপ্রয়োজনীয় ফাইলগুলি সংগ্রহ করে এবং ছাঁটাই করে। |
git push --mirror | এক রিপোজিটরি থেকে অন্য রিপোজিটরিতে সমস্ত রেফ (শাখা, ট্যাগ) পুশ করে। |
Azure মাইগ্রেশনের জন্য স্ক্রিপ্ট বোঝা
প্রথম স্ক্রিপ্টটি আপনার সংগ্রহস্থলে বড় ফাইলগুলি পরিচালনা করতে গিট এলএফএস (বড় ফাইল স্টোরেজ) ব্যবহার করার উপর ফোকাস করে। এটির সাথে Git LFS আরম্ভ করে শুরু হয় git lfs install আদেশ এটি ব্যবহার করে বড় ফাইল ট্র্যাকিং দ্বারা অনুসরণ করা হয় git lfs track, যা নিশ্চিত করে যে নির্দিষ্ট ফাইলের ধরন Git LFS দ্বারা পরিচালিত হয়। ট্র্যাকিং সেট আপ করার পরে, স্ক্রিপ্ট ব্যবহার করে git lfs migrate import বিদ্যমান বড় ফাইলগুলিকে এলএফএস-এ আমদানি করতে। এই প্রক্রিয়াটি সংগ্রহস্থলের আকার কমাতে সাহায্য করে, এটিকে Azure-এ ধাক্কা দেওয়া সহজ করে তোলে। অবশেষে, স্ক্রিপ্টটি ব্যবহার করে পুরো সংগ্রহস্থলে ধাক্কা দেওয়ার চেষ্টা করে git push --mirror আদেশ
দ্বিতীয় স্ক্রিপ্টটি সংগ্রহস্থল বিশ্লেষণ এবং পরিষ্কার করার জন্য একটি পাইথন-ভিত্তিক পদ্ধতি। এটি স্থানীয়ভাবে সংগ্রহস্থল ক্লোন করে শুরু হয় subprocess.run(['git', 'clone', repo_url]) এবং তারপর সংগ্রহস্থল ডিরেক্টরিতে নেভিগেট করুন। স্ক্রিপ্ট ব্যবহার করে git filter-repo ইতিহাস থেকে বড় ফাইল মুছে ফেলার জন্য, তারপরে git gc --prune=now আবর্জনা সংগ্রহ করা এবং অপ্রয়োজনীয় ফাইল ছাঁটাই করা। এটি উল্লেখযোগ্যভাবে সংগ্রহস্থলের আকার হ্রাস করে। অবশেষে, পরিষ্কার করা সংগ্রহস্থল Azure ব্যবহার করে ঠেলে দেওয়া হয় subprocess.run(['git', 'push', '--mirror', 'azure-remote-url']). এই পদক্ষেপগুলি নিশ্চিত করে যে সংগ্রহস্থলটি Azure দ্বারা আরোপিত আকারের সীমার মধ্যে থাকে।
Azure মাইগ্রেশনের জন্য বড় ফাইলগুলি পরিচালনা করতে Git LFS ব্যবহার করে
ফাইল মাইগ্রেশনের জন্য গিট ব্যাশ স্ক্রিপ্ট
# 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
সফল Azure মাইগ্রেশনের জন্য সংগ্রহস্থলের আকার হ্রাস করা
সংগ্রহস্থল বিশ্লেষণ এবং পরিষ্কার করার জন্য পাইথন স্ক্রিপ্ট
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 filter-repo এবং git gc এই ডেটা পরিষ্কার করতে সাহায্য করুন। দ্য git filter-repo কমান্ডটি বিশেষ করে বড় ফাইল বা সংবেদনশীল ডেটা মুছে ফেলার জন্য ইতিহাস পুনর্লিখনের জন্য দরকারী, কার্যকরভাবে ভান্ডারের পদচিহ্ন হ্রাস করে।
উপরন্তু, দ git gc কমান্ড, বিশেষ করে যখন এর সাথে ব্যবহার করা হয় --prune=now বিকল্প, আবর্জনা সংগ্রহ এবং ঝুলন্ত কমিট এবং অন্যান্য অপ্রাপ্য বস্তু অপসারণের জন্য অপরিহার্য। এটি নিশ্চিত করে যে শুধুমাত্র প্রয়োজনীয় ডেটা রাখা হয়, আরও পরিচালনাযোগ্য সংগ্রহস্থলের আকার বজায় রাখা হয়। এই কমান্ডগুলি ব্যবহার করে নিয়মিত রক্ষণাবেক্ষণ ভান্ডারটিকে পরিচালনাযোগ্য সীমা ছাড়িয়ে যেতে বাধা দিতে পারে, মসৃণ স্থানান্তর এবং ক্রিয়াকলাপগুলিকে সহজতর করে।
Git থেকে Azure মাইগ্রেশনের জন্য সাধারণ প্রশ্ন এবং সমাধান
- ত্রুটি "TF402462" মানে কি?
- ত্রুটিটি নির্দেশ করে যে পুশটি প্রত্যাখ্যান করা হয়েছিল কারণ সংগ্রহস্থলের আকার Azure দ্বারা আরোপিত 5120 MB সীমা অতিক্রম করেছে৷
- আমি কিভাবে আমার সংগ্রহস্থলে বড় ফাইল সনাক্ত করতে পারি?
- আপনি ব্যবহার করতে পারেন git rev-list --objects --all | sort -k 2 > allfiles.txt রিপোজিটরির সমস্ত ফাইল তালিকাভুক্ত করতে এবং বৃহত্তমগুলি সনাক্ত করতে কমান্ড।
- Git LFS কি এবং এটি কিভাবে সাহায্য করে?
- Git LFS (বড় ফাইল স্টোরেজ) হল গিট-এর একটি এক্সটেনশন যা আপনাকে সংগ্রহস্থলের মূল ইতিহাস থেকে আলাদাভাবে বড় ফাইলগুলি পরিচালনা করতে দেয়, সামগ্রিক সংগ্রহস্থলের আকার হ্রাস করে।
- আমি কিভাবে Git LFS ব্যবহার করে বড় ফাইল ট্র্যাক করব?
- ব্যবহার git lfs track আপনি যে ফাইলগুলি পরিচালনা করতে চান তা অনুসরণ করে কমান্ড, যেমন git lfs track "*.zip" "*.tar".
- Git LFS এর সাথে ফাইল ট্র্যাক করার পরে আমার কি পদক্ষেপ নেওয়া উচিত?
- ট্র্যাক করার পরে, আপনাকে পরিবর্তনগুলি করতে হবে এবং চালাতে হবে git lfs migrate import বিদ্যমান বড় ফাইলগুলিকে LFS-এ সরাতে।
- আমি কিভাবে আমার সংগ্রহস্থলের ইতিহাস পরিষ্কার করতে পারি?
- ব্যবহার git filter-repo আপনার সংগ্রহস্থলের ইতিহাস থেকে অবাঞ্ছিত ফাইলগুলি সরাতে এবং এর আকার কমাতে কমান্ড।
- ভূমিকা কি git gc সংগ্রহস্থলের আকার বজায় রাখার ক্ষেত্রে?
- দ্য git gc কমান্ড অপ্রয়োজনীয় ফাইলগুলি পরিষ্কার করে এবং সংগ্রহস্থলকে অপ্টিমাইজ করে, যা আকার পরিচালনাযোগ্য রাখার জন্য অত্যন্ত গুরুত্বপূর্ণ।
- কত ঘন ঘন আমার সংগ্রহস্থলে রক্ষণাবেক্ষণ কমান্ড চালানো উচিত?
- নিয়মিতভাবে, বিশেষ করে উল্লেখযোগ্য পরিবর্তন বা স্থানান্তরের আগে এবং পরে, ভান্ডারটি আকারের সীমার মধ্যে থাকে তা নিশ্চিত করতে।
সংগ্রহস্থল আকার ব্যবস্থাপনা চূড়ান্ত চিন্তা
Azure-এ সফল মাইগ্রেশনের জন্য বৃহৎ গিট রিপোজিটরিগুলি কার্যকরভাবে পরিচালনা করা অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আকারের সীমা নিয়ে কাজ করা হয়। বড় ফাইল ট্র্যাক এবং পরিচালনা করার জন্য Git LFS এর মতো সরঞ্জামগুলি ব্যবহার করা ভান্ডারের আকার উল্লেখযোগ্যভাবে হ্রাস করতে পারে। উপরন্তু, গিট ফিল্টার-রেপো এবং গিট জিসি ব্যবহার করে নিয়মিত রক্ষণাবেক্ষণের মতো কমান্ড দিয়ে ইতিহাস পরিষ্কার করা আপনার সংগ্রহস্থলকে অপ্টিমাইজ করা এবং আকারের সীমার মধ্যে রাখতে পারে। এই কৌশলগুলির সাহায্যে, আপনি TF402462 ত্রুটি কাটিয়ে উঠতে পারেন এবং একটি মসৃণ স্থানান্তর প্রক্রিয়া নিশ্চিত করতে পারেন।