বৃহত বাইনারি ফাইলযুক্ত একটি গিট রেপো অনুকূলিত করুন


21

আমাদের প্রকল্পটি প্রায় 11 গিগাবাইট, যার মধ্যে 10 টি বাইনারি ডেটা (.png চিত্র)। ফলস্বরূপ, একটি git diffবা git statusঅপারেশনগুলি এক মিনিটেরও বেশি সময় নেয়। ভাগ্যক্রমে সমস্ত ডেটা ফাইল দুর্দান্ত ফোল্ডারে আলাদা করা হয় data। অ্যাসাইনমেন্টটি হ'ল "বাইনারি ফাইলগুলিতে কমপ্রেসিং, ডিফারিং এবং অন্যান্য ব্যয়বহুল ক্রিয়াকলাপ এড়ান" "

  • প্রকল্পটিকে দুটি ভাগে বিভক্ত করার বিষয়টি বিবেচনা করা হয়েছিল। তারপরে dataএকটি বাহ্যিক রেপো হবে, এটি মূল উত্স কোড রেপো দ্বারা পরীক্ষা করা। সিদ্ধান্ত নেওয়া হয়েছিল যে রেপোগুলি সিঙ্কে রাখার ওভারহেড খুব বেশি হবে, বিশেষত শিল্পীদের জন্য, যারা ডেটা ফাইলগুলি নিয়ে কাজ করেন।

  • এই ফাইলগুলিকে স্পষ্টভাবে গিটার বলা বাইনারি , ফাইলগুলি ডিফ থেকে বাদ দিয়ে বিবেচনা করা হত তবে এগুলি কেবল প্রশ্নের আংশিক সমাধান বলে মনে হয়।

আমি অনুভব করি যে গিট বৈশিষ্ট্যগুলি সমাধান, তবে কীভাবে? নাকি একরঙা রেপোর চেয়ে আরও ভাল স্থাপত্য আছে?


1
এখানে প্রথম বড় প্রশ্ন those ডেটা ফাইলগুলি কতটা গুরুত্বপূর্ণ। আপনার প্রোগ্রামটির কোনও কার্যকর কিছু করার জন্য এই সমস্ত চিত্রের দরকার আছে , বা এটি আদর্শ বিকাশ / পরীক্ষার সময় কোনও ছোট উপসেটটি দিয়ে চলে যেতে পারে?
Ixrec

@ ইক্সেরেক, ছবিগুলি উত্স কোডের চেয়ে বেশি গুরুত্বপূর্ণ। তাদের সকলকে অবশ্যই উপস্থিত থাকতে হবে এবং .png চেকসামগুলি সর্বদা দূষিত ফাইলগুলির জন্য পরীক্ষা করা হয়।
ভোরাক

1
এই প্রশ্নটি স্ট্যাকের ওভারফ্লোতে কেন নয়? প্র: এটি একেবারে উপযুক্ত বলে মনে হচ্ছে।
স্পার্ক

@ স্পিকারটি এই প্রশ্নটি "সফটওয়্যার সরঞ্জামের সাহায্যে" যা এসও-তে বিষয়বস্তুতে রয়েছে এবং "এখানে সংস্করণ নিয়ন্ত্রণ কৌশল" যা এখানে অনন্য বিষয়। যেহেতু এটি করার জন্য কোন গিট কমান্ডটি কার্যকর করার জন্য জিজ্ঞাসা করা হচ্ছে না, তাই এটি লাইনটির এসও দিকে স্পষ্টভাবে নয়, তাই আমি এটিকে এখানে খোলা রেখে ভোট দিয়েছি।

@ স্বাক্ষর প্রতিক্রিয়া জন্য ধন্যবাদ। টপিক তালিকার কোন আইটেমটি এটি খাপ খায়? প্রোগ্রামার্স.স্ট্যাক্কেঞ্জেন্জ.হেল্প
অন- টপিক

উত্তর:


18

আপনি গিট-এলএফএস বা অনুরূপ সরঞ্জাম (গিট ফ্যাট, গিট-অ্যানেক্স ইত্যাদি) ব্যবহার করতে পারেন । এই সরঞ্জামগুলি মূলত আপনার রেপোতে বাইনারি ফাইলগুলি হ্যাশগুলির সাথে ছোট টেক্সট ফাইলের সাথে প্রতিস্থাপন করে এবং প্রকৃত বাইনারি ডেটা একটি নন-গিট উপায়ে সংরক্ষণ করে - যেমন নেটওয়ার্ক শেয়ারের মতো।

কেবল হ্যাশগুলির তুলনা হওয়ার সাথে সাথে আলাদা হয়ে যায় এবং সবকিছুকে সুপারফাস করে তোলে - এবং কমপক্ষে গিট-এলএফএসের জন্য - ব্যবহারকারীর কাছে স্বচ্ছ (একবার ইনস্টল করার পরে)।

আফাইক গিট-এলএফএস গিথুব, গিটল্যাব, ভিজ্যুয়ালস্টুডিও দ্বারা সমর্থিত এবং এটি ওপেন সোর্স।


2
আপনি কি git-lfsমিশ্র বিকাশকারী / শিল্পী দলের সাথে অনেক গিগাবাইট সম্পদযুক্ত কোনও প্রকল্পে ব্যবহার করার চেষ্টা করেছেন? আমি গেমস এবং অ্যানিমেশনের মতো প্রকল্পের জন্য লোকেরা গিট-এলএফএস ব্যবহার করছে কিনা তা জানতে আগ্রহী। লেখার সময় এটি এখনও মোটামুটি নতুন। আমার নিজের অভিজ্ঞতা থেকে কম প্রযুক্তিগত ব্যবহারকারীর জন্য গিটের প্রবেশের বাধা ইতিমধ্যে খুব বেশি, সুতরাং এটির উপরে ফাইল ম্যানেজমেন্টের জন্য অতিরিক্ত স্তর থাকা - লোকেরা যদি ইতিমধ্যে গিট দিয়ে স্বাচ্ছন্দ্য বোধ না করে তবে তাদের ব্যবহার করা কঠিন হতে পারে।
ধারণাগুলি 42

দুঃখিত, প্রায় GB 1GB ডেটা পর্যন্ত sorry তবে গিট-এলএফএসের এন্ডেজেসারের জন্য কোনও অতিরিক্ত পদক্ষেপ যুক্ত করা উচিত নয়, এটি সম্পূর্ণ স্বচ্ছ হওয়া উচিত।
kat0r

এটি সঠিক উত্তর বলে মনে হচ্ছে, ইন্টিগ্রেশন চলাকালীন কিছু সমস্যা দেখা দিলে আমি এখানেই এখানে প্রতিবেদন করব। সুতরাং ইনস্টলেশন পদ্ধতিটি কেবল একবার সার্ভারে সম্পন্ন করা দরকার, এবং প্রতিটি ক্লায়েন্ট মেশিনে নয়?
ভোরাক

আফাইক আপনাকে একটি ছোট ক্লায়েন্ট অ্যাডইন ইনস্টল করতে হবে, গিথুব পৃষ্ঠাটি পরীক্ষা করে দেখুন। তবে এটি কোনও গ্রুপ নীতি / সহজলভ্যতা কোনও বিকল্পের চেয়ে সহজ হওয়া উচিত।
kat0r

1

জিআইটি এবং এসভিএন উভয়ই রেপো ব্যবহার করুন

যদি বাইনারি ফাইলগুলি উত্স থেকে যৌক্তিকভাবে পৃথক করা যায় তবে আপনি টেক্সট ফাইলগুলির জন্য গিট এবং বাইনারি ফাইলগুলির জন্য সাবভার্সন হিসাবে একটি ডিভিসিএস নন using

আমি যে প্রকল্পে কাজ করি তা এটি করে যেহেতু আমাদের কাছে প্রতি-সংকলিত গ্রন্থাগারগুলির জন্য অনেকগুলি জিবি রয়েছে (ওএসএক্স / উইন 32 নির্ভরতার জন্য), যা আমাদের সংস্করণ করা দরকার।


অন্যদিকে আপনার যদি অ প্রযুক্তিগত ব্যবহারকারী থাকে তবে দুটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করা সমস্যাযুক্ত হতে পারে। তবে যদি শিল্পীরা কোডে কাজ না করে থাকেন তবে আপনি আপডেটটি সম্পাদনের জন্য একটি স্ক্রিপ্ট সরবরাহ করতে পারেন এবং তারা বাইনারি সম্পদ প্রতিপন্ন করতে সাবভারশন ব্যবহার করতে পারেন।

এসভিএন (এর সাথে git svn) ব্যবহার করুন

যদিও এই বাণিজ্য বন্ধটি বিকাশকারীদের পক্ষে সর্বদা এতটা সুন্দর না যেগুলি নিয়মিত গিট ব্যবহারে অভ্যস্ত, আপনি মূল সংগ্রহস্থলের জন্য এসভিএন ব্যবহার করতে পারেন, এবং বিকাশকারীরা git svnসরঞ্জামগুলি ব্যবহার করতে পারেন ।

এটি গিট ব্যবহার করে বিকাশকারীদের জন্য আরও কিছুটা কাজ করে, তবে যারা ডিভিসিএসের সাথে পরিচিত নয় (বা সাধারণভাবে ভিসিএস) - তারা একাধিক জটিল সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার না করেই এসভিএন এর সাধারণ মডেলটি ব্যবহার করতে পারে ।


গিট-এলএফএসও একটি বিকল্প, তবে আমি এটি ব্যবহার করি নি তাই এটি কতটা ভাল কাজ করে তা বলতে পারছি না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.