অ্যান্ড্রয়েড স্টুডিও - পুরো .idea ডিরেক্টরি গিট এড়ানো উচিত?


137

অ্যান্ড্রয়েড স্টুডিওর জন্য .gitignoreফাইলগুলির জন্য আমি প্রচুর উদাহরণ দেখেছি , কিছুগুলির.idea মধ্যে রয়েছে, এবং কিছু নেই।

পুরো .idea dir .gitignore এ যোগ না করার কোনও ভাল কারণ আছে?

যদি এটি সম্পূর্ণ উপেক্ষা করা উচিত নয়, .idea (যেমন .iml) এর ভিতরে কিছু নির্দিষ্ট ফাইল রয়েছে যা .gitignore এ থাকা উচিত?


আমি এর .ideaঅধীনে থাকা কিছু ফাইল বাদ দিই .idea/runConfigurations/
ড্যানিয়েল

উত্তর:


104

আপনি এই পৃষ্ঠাটি একবার দেখে নিতে পারেন:

প্রকল্প কনফিগারেশন ফাইলগুলি সম্পর্কে IntelliJ ডক

"ডিরেক্টরি ভিত্তিক বিন্যাসে" একটি নির্দিষ্ট লাইন আকর্ষণীয়:

.Idea ডিরেক্টরিতে কনফিগারেশন ফাইলের একটি সেট রয়েছে (.xML)। প্রতিটি ফাইল একটি নির্দিষ্ট কার্মিক এলাকায় যা ফাইলের নাম প্রতিফলিত হয় সংক্রান্ত কনফিগারেশন ডেটা শুধুমাত্র একটি অংশ রয়েছে, উদাহরণস্বরূপ, compiler.xml, encodings.xml, modules.xml

প্রায় সব ফাইলই এই প্রকল্পের নিজস্ব তথ্যের মূল তথ্য ধারণ করে যেমন এর উপাদান উপাদানগুলির নাম এবং অবস্থানগুলি, সংকলক সেটিংস ইত্যাদি Thus সুতরাং, এই ফাইলগুলি (এবং হওয়া উচিত) সংস্করণ নিয়ন্ত্রণে রাখা যেতে পারে।

তবে, আমি সঠিকভাবে প্রকল্প IDE- নির্ভর করতে ঘৃণা করি (আমি বর্তমানে নেটবিয়ান দিয়ে তৈরি একটি প্রকল্পে কাজ করছি এবং এটি Eclipse দিয়ে ব্যবহার করতে ব্যথা লাগে যা আমার সংস্থার স্ট্যান্ডার্ড হয়ে ওঠে)।

সুতরাং, আপনার প্রশ্নের উত্তর দিতে:

  1. আপনি যদি নির্ভরতা পরিচালনা করতে এবং বানাতে মাভেন বা গ্রেডলের মতো কিছু না ব্যবহার করেন : ডিরেক্টরিটি সংস্করণ নিয়ন্ত্রণে রাখুন । এইভাবে, প্রকল্পের সঠিক কনফিগারেশন এবং নির্ভরতা সবার জন্য উপলব্ধ থাকবে। প্রতিরূপে, সমস্ত বিকাশকারীকে তাদের পরিবেশ ঠিক একইভাবে সেট করতে হবে আপনি কনফিগার ফাইলগুলিতে এটি যেভাবে সংজ্ঞায়িত করেছেন।
  2. আপনি যদি মাভেন বা গ্রেডলের মতো কিছু ব্যবহার করেন : সঠিকভাবে এই সরঞ্জামগুলি কনফিগার করুন এবং ডিরেক্টরিটি সংস্করণ নিয়ন্ত্রণে রাখবেন না । আসলে, কনফিগারেশন ফাইলের ভিতরে থাকা সমস্ত তথ্য মাভেন / গ্রেডল ফাইলগুলিতে সংরক্ষণ করা উচিত । তারপরে আপনার বিকাশকারীদের তাদের পরিবেশের উপর নির্ভর করে তাদের আইডিই কনফিগার করতে দিন। এইভাবে, Eclipse, IntelliJ, Linux, Windows ... ব্যবহার করে আর সমস্যা হবে না।

9
পরবর্তী অনুচ্ছেদে নোট করুন, যদিও: "ব্যতিক্রমটি ওয়ার্কস্পেস.এক্সএমএল ফাইল। এটি আপনার ব্যক্তিগত সেটিংস সঞ্চয় করে ... তাই আপনি এই ফাইলটি আপনার সহকর্মীদের সাথে ভাগ করে নিতে চান না unlikely"
ডালবার্গিয়া

40

ঠিক আছে, তাই কিছু "হ্যাঁ" এবং "না" উত্তর পরে, আমি একটি "হ্যাঁ এবং না" উত্তর যুক্ত করছি :)

সমস্যাটি হ'ল .ideaপ্রকল্প বিল্ড কনফিগারেশন (নির্ভরতা ঘোষণা) এবং প্রকল্প সেটিংস (পরিদর্শন ইত্যাদি) উভয়ের জন্যই ব্যবহৃত হয়।

আপনি অবশ্যই আপনার বিল্ড কনফিগারেশনের জন্য আপনার আইডিই ব্যবহার করতে চান না, তবে আপনি দলের মধ্যে সেটিংস ভাগ করতে চাইতে পারেন। এটা কেন আপনি শুধুমাত্র একটি অংশ উপেক্ষা করার প্রয়োজন .ideaবিষয়বস্তু (মত librariesফোল্ডার এবং modules.xmlফাইল), কিন্তু সংস্করণটি নিয়ন্ত্রণ অন্যদের রাখা (যেমন copyright, dictionariesএবং inspectionProfilesফোল্ডার এবং ফাইল অধীনে .ideaমত dynamic.xml, codeStyleSettings.xml, ইত্যাদি)।


কীভাবে বিশেষত ইমেল ফাইলগুলি সম্বোধন করবে?
dors

1
iml ফাইলগুলি অবশ্যই উপেক্ষা করা উচিত।
জবারুচ

1
আমি এখনও ভাবছি যে কনফিগারেশনগুলি আইডিই-নির্ভর ফাইলগুলিতে রাখা উচিত নয় এবং তাই মাভেন / গ্রেডল এটি করার জন্য আরও ভাল।
মিথ্রপ

@ মিথ্রপটি হ'ল - আপনি মাভেন / গ্রেডল ফাইলটিতে এই ধরণের কনফিগারেশনটি ঘোষণা করতে পারবেন না। এটি আইডিয়াটির নিজস্ব স্বতন্ত্র বিন্যাস এবং এটি মাভেন / গ্রেডলে বহনযোগ্য বিকল্প নেই।
জবারুচ

ওহ হ্যাঁ, আপনি ঠিক বলেছেন। যাইহোক, যদি এটি মাভেন / গ্রেডল ফাইলগুলিতে রাখতে না পারে তবে পরের বার আপনি অন্য আইডিইতে প্রকল্পটি আমদানি করতে সমস্যা হবে (এটি হ্যান্ডেল করতে সমস্যা না এমনই সমস্যা)। তবে আমি আপনার সাথে পুরোপুরি একমত (আমার উত্তরটি পড়লে আপনি দেখতে পাবেন যে আমি আসলেই আছি): আপনি ফাইলগুলি অন্তর্ভুক্ত করছেন বা আপনার প্রয়োজনের উপর নির্ভর করে নয় :)
মিথ্রপ

7

ভিসিতে প্রকল্পের কনফিগারেশনটি রাখার ধারণাটি বৈধ। আমি আমার দলের সাথে এটি করেছি কারণ আমাদের সকল বিকাশকারীই আমাদের প্রকল্পগুলির জন্য পিএইচপিএসটারম ব্যবহার করার জন্য ঘটেছে এবং তাই এটি একটি সাধারণ কনফিগারেশন ... ধারণা হিসাবে রাখা বোধগম্য হয়েছিল। আমরা একই অভিধান ফাইলগুলি, একই কোডিং মানক বিধি এবং একই প্লাগইন কনফিগারেশন ব্যবহার করতে চেয়েছিলাম।

আমি কেন "ধারণার" সাথে এটি যোগ্যতা অর্জন করার কারণটি হ'ল জেটব্রেইনস .আইডিএ ফোল্ডারটি নিয়ে সমস্যা ছিল যা আমাদের এটি ব্যবহার করতে সক্ষম না করতে পরিচালিত করেছিল। এগুলি সম্ভবত এড়ানো বা স্থির করা যেতে পারে এমন সমস্যাগুলি ছিল তবে এটি কীভাবে সঠিকভাবে করা যায় তা আমাদের কাছে অস্পষ্ট and আমাদের আইডিই সঠিকভাবে কাজ করে।

বলা হচ্ছে যে বিষয়গুলি ছিল তা হ'ল:

  • সিমলিংকিং প্রকল্পের ফোল্ডারগুলি ঠিক কাজ করে না। আমি যখন আমার প্রকল্পগুলি সেট আপ করি, তখন আমি সেগুলি আমার হোম ডিরেক্টরিতে সিলেট করি। আমরা যেটি আবিষ্কার করেছি তা হ'ল প্রকল্পটি ঠিক একটি সিলেক্ট ডিরেক্টরি হিসাবে চিকিত্সা করার পরিবর্তে সঠিক সিমলিংকটি ব্যবহার করার জন্য সেট আপ হয়েছিল। এর অর্থ হ'ল যদি অন্য বিকাশকারী তার প্রকল্পটিকে অন্য জায়গায় রাখে বা সিমলিংকগুলি ব্যবহার না করে তবে পুরো ডিরেক্টরিটি প্রকল্প নেভিগেটর থেকে হারিয়ে যাবে কারণ এটি বেশ আক্ষরিকভাবে সিমলিংকের সন্ধান করছে। সবচেয়ে খারাপটি হ'ল কনফিগারেশনে আমি কখনই এই পথের মানটি খুঁজে পাইনি। আমাদের .idea ফোল্ডারটি গঠন করা ফাইলগুলিতে আমরা সঠিক কনফিগারেশনটি খুঁজে পাইনি।
  • সংজ্ঞা ফাইলগুলি ডিফল্টরূপে ব্যবহারকারীদের জন্য বিভক্ত হয়। এর অর্থ যদি আমি আমার অভিধানে একটি শব্দ যুক্ত করতে চাই, তবে এটি আমার জন্য একটি সংজ্ঞা হিসাবে তালিকাভুক্ত করা হবে, জগ্রেটহাউস, তবে অন্যান্য ব্যবহারকারীদের নিজস্ব সংজ্ঞা বিভাগ থাকবে। পতাকাঙ্কিত শব্দগুলি এখনও অন্য ব্যবহারকারীর জন্য একটি বানান ভুল হিসাবে প্রদর্শিত হবে। এটি কাম্য নয়। আমি আমার সংজ্ঞা ফাইলটিতে যুক্ত করার কারণটি আইডিই ভুল E আমি চাই এই সংজ্ঞাগুলি অন্য ব্যবহারকারীদের সাথে স্বজ্ঞাতভাবে ভাগ করা হোক।
  • সহযোগীরা কনফিগারেশনগুলিকে ওভাররাইটিং করেই রেখেছে কারণ তাদের আইডিই বর্তমানে তাদের মেমোরিতে থাকা কনফিগারেশনের সাথে কনফিগারেশনগুলিকে ওভাররাইট করে। আমার অর্থটি হ'ল, কোনও বিকাশকারী কাজ করবে এবং তাদের সংগ্রহস্থলটিকে উত্স থেকে একীভূত করবে, যার মধ্যে একটি আইডিই পরিবর্তিত কনফিগারেশনের পরিবর্তে বা কোনও পছন্দ দেওয়ার পরিবর্তে কোনও প্রকল্প কনফিগারেশন পরিবর্তন থাকবে, এটি স্বয়ংক্রিয়ভাবে .idea কনফিগারেশন এর সাথে ওভাররাইট হয়ে যাবে তাদের আইডিই-র বর্তমান ইন-মেমরি কনফিগারেশন। আমার মতে এটি .idea কনফিগারেশনটিকে একটি ভাগ করা কনফিগারেশন হিসাবে অযোগ্য করে তোলে। এটি ঘিরে কাজ করার জন্য, বিকাশকারীকে আক্ষরিকভাবে তাদের আইডিইর উদাহরণটি বন্ধ করতে হবে, রেপো টানতে হবে এবং তাদের আইডিই পুনরায় খুলতে হবে। আইডিই তাত্ক্ষণিকভাবে মেমরিতে থাকা কনফিগারেশনের সাথে তাত্ক্ষণিকভাবে এটি ওভাররাইট করে দিলে ভাগ করা কনফিগারেশন রাখা কোনও অর্থবোধ করে না। এটা '

আমি ভিজুয়াল স্টুডিও এবং নেটবিনগুলির সাথে আগে ভিসিতে এই জাতীয় ভাগ করা আইডিই কনফিগারেশনগুলি করেছি এবং এটি সর্বদা ভাল ছিল; কিন্তু .idea দিয়ে এটি কেবল অকেজো মনে করে যা হতাশাব্যঞ্জক। আমি আশা করি জেটব্রেইনস এটির উপরে উঠে আসবে এবং এটি আরও ভাল ব্যবহারকারীর অভিজ্ঞতা তৈরি করবে।


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