আমাদের দলের প্রত্যেকে ইন্টেলিজ আইডিইএ ব্যবহার করে এবং আমরা এর প্রকল্প ফাইলগুলি (.ipr এবং .iml) উত্স নিয়ন্ত্রণে রাখা কার্যকর মনে করি যাতে আমরা বিল্ড কনফিগারেশন, সেটিংস এবং তদন্তগুলি ভাগ করতে পারি। এছাড়াও, আমরা তারপরে টিমসিটির সাথে আমাদের অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভারে সেগুলি পরিদর্শন সেটিংস ব্যবহার করতে পারি। (আমাদের প্রতি ব্যবহারকারী কর্মক্ষেত্র .iws ফাইলটি .gitignore ফাইলটিতে আছে এবং উত্স নিয়ন্ত্রণে নেই))
যাইহোক, আপনি আইডিইএ-র যেকোন কিছু করতে গেলে এই ফাইলগুলি অল্প উপায়ে পরিবর্তন হয়। এটির জন্য আইডিইএর ইস্যু ডাটাবেসে একটি সমস্যা রয়েছে ( আইডিইএ-64৪৩১২ ), তাই সম্ভবত কেউ এটি আইডিইএতে একটি বাগ বিবেচনা করতে পারে তবে এটি আমাদের ভবিষ্যতের জন্য বাঁচতে হবে one
সাম্প্রতিক অবধি, আমরা সাবভারশন ব্যবহার করছিলাম, তবে আমরা সম্প্রতি গিতে স্যুইচ করেছি। আমরা একে অপরের সাথে ভাগ করে নিতে চাইলে প্রজেক্ট ফাইল পরিবর্তন না হওয়া পর্যন্ত আমাদের প্রতিটি প্রকল্পের ফাইলের পরিবর্তনের তালিকা থাকার অভ্যাস করেছিল যা আমরা উপেক্ষা করেছি এবং চেক ইন করিনি। কিন্তু গিটের সাথে, আসল শক্তি মনে হয় (আমরা যা আবিষ্কার করছি তা থেকে) এটি ধারাবাহিক শাখা প্রশস্ত করে যা এটি উত্সাহ দেয় এবং শাখাগুলির মধ্যে স্যুইচিং হ'ল প্রজেক্ট ফাইলগুলির সর্বদা সংশোধন করা ব্যথা। প্রায়শই এটি কোনওভাবে পরিবর্তনের সাথে একত্রী হতে পারে এবং প্রজেক্ট ফাইলের পরিবর্তনগুলি এখন নতুন শাখায় প্রয়োগ করার চেষ্টা করে deal তবে, যদি নতুন শাখা প্রকল্পের ফাইলগুলি পরিবর্তন করে (যেমন শাখাটি একটি নতুন মডিউলে কাজ করছে যা এখনও অন্য শাখায় নেই), গিটটি কেবল একটি ত্রুটি ছুঁড়ে দেয় যা এটি করে না ' টি যখন উভয় শাখায় পরিবর্তিত হয় এবং আপনার স্থানীয়ভাবে পরিবর্তন হয় তবে ফাইলগুলিতে মার্জ করার কোনও অর্থ নেই এবং আমি এর বিন্দুটি বুঝতে পারি। কমান্ড লাইন থেকে, "গিট চেকআউট" কমান্ডে "-f" ব্যবহার করে স্থানীয় পরিবর্তনগুলি ছুঁড়ে দেওয়ার জন্য এবং শাখার পরিবর্তে শাখার ব্যবহার করতে পারেন, তবে (1) আইডিইএতে গিট চেকআউট জিইউআই কমান্ড (10.5.1) এটি যে বিকল্প হিসাবে আমরা খুঁজে পেতে পারি তা মনে হয় না, তাই আমাদের নিয়মিত কমান্ড লাইনে যেতে হবে এবং (২) আমরা নিশ্চিত যে এটি ব্যবহার করার অভ্যাসে থাকতে চাই না পতাকা এবং গিটকে আমাদের স্থানীয় পরিবর্তনগুলি ছড়িয়ে দিতে বলছে।
সুতরাং, আমাদের এগুলি মোকাবেলা করতে বিকল্পগুলির সাথে আমাদের কিছু চিন্তাভাবনা রয়েছে:
- পুরোপুরি উত্স নিয়ন্ত্রণের বাইরে প্রকল্প ফাইলগুলি নিয়ে যান। এগুলিকে .gitignore এ রাখুন এবং তাদের অন্য কোনও উপায়ে প্রতিটি লোক এবং টিমসিটিতে বিতরণ করুন, সম্ভবত এগুলি অন্য কোথাও বা অন্য নামে উত্স নিয়ন্ত্রণে রেখে। আমাদের দলের পক্ষে যথেষ্ট ছোট এই বিকল্পটি বিবেচনা করার পক্ষে যথেষ্ট সম্ভাব্য, তবে এটি দুর্দান্ত বলে মনে হচ্ছে না।
- একটি নির্দিষ্ট সময়ে কোন শাখায় আমাদের কোন ফাইল রয়েছে তা পরিচালনা করার জন্য নিশ্চিত হওয়ার চেষ্টা করে এটির সাথে বসবাস চালিয়ে যান। এর অংশ হিসাবে, আমরা প্রতিটি বিকাশকারীকে তাদের সিস্টেমে প্রতিটি প্রকল্পের একাধিক অনুলিপি রাখতে উত্সাহিত করতে পারি, যাতে তারা প্রত্যেকে পৃথক পৃথক শাখায় প্রকল্প ফাইলের বিভিন্ন সেট দিয়ে পরীক্ষা করে দেখতে পারেন।
- উত্স নিয়ন্ত্রণে এবং .gitignore ফাইলে নয় মডিউল (.iml) ফাইলগুলি সহ উত্স নিয়ন্ত্রণে প্রকল্প (.ipr) রাখার চেষ্টা করুন। প্রধান জিনিস যা নিয়মিতভাবে আইপিআর এর নিজস্ব ঘুরে দেখা যায় তা হল ভাগ করা বিল্ড কনফিগারেশনের ক্রম, তবে সম্ভবত সেগুলি কীভাবে সেট আপ করা যায় সে সম্পর্কে আমরা আলাদাভাবে তথ্য ভাগ করতে পারি। আমি পুরোপুরি নিশ্চিত নই যে আইডিইএ কেবল তার কিছু ফাইল রাখার ক্ষেত্রে এই জাতীয় জিনিসটির সাথে কীভাবে আচরণ করে, বিশেষত একটি নতুন চেকআউটে।
আমি অনুমান করি যে আমি আশা করছি যে আমরা কিছু স্পষ্ট (বা অ-সুস্পষ্ট) সমাধান মিস করেছি, সম্ভবত গিট এবং আইডিইএ উভয়ের যে বিশাল কাস্টমাইজিবিলিটি রয়েছে বলে মনে হচ্ছে তা মোকাবিলা করছি। তবে মনে হচ্ছে আমরা সম্ভবত এই সমস্যাযুক্ত একমাত্র দল হতে পারি না। স্ট্যাক ওভারফ্লোতে এই জাতীয় প্রশ্নগুলির মধ্যে 3495191 , 1000512 এবং 3873872 টি অন্তর্ভুক্ত রয়েছে তবে আমি জানি না যে তারা ঠিক একই সমস্যা, এবং সম্ভবত যে কেউ আমার কাছে বিভিন্ন পদ্ধতির জন্য কুফল পেতে পারে বর্ণিত, এই প্রশ্নের উত্তরের তালিকাভুক্ত পন্থাগুলি, বা যেগুলি তারা প্রস্তাব দেয়।