কোন গ্রিপ ফাইলগুলি সংস্করণ নিয়ন্ত্রণের অন্তর্ভুক্ত?


242

উত্সের নিয়ন্ত্রণে রাখা কোন উত্স ফাইলগুলি যথাযথ?

আমার প্রকল্পে, বিশেষত, আমি সম্পর্কে অবাক হচ্ছি:

.মেডাটাটা / *
প্রকল্প-দির / .প্রকল্প
প্রকল্প-দির / .ক্লাসপাথ
প্রকল্প-দির /। সেটিংস / *

এটির জন্য নির্ভর করে যদি এর মধ্যে কোনও থাকে তবে আপনার গাইডলাইনটি ব্যাখ্যা করুন।

উত্তর:


175

উত্স নিয়ন্ত্রণে মেটাডেটা পরিচালনা করা উচিত নয়। এগুলিতে আপনার ওয়ার্কস্পেসের সাথে সম্পর্কিত বেশিরভাগ ডেটা থাকে ।

ব্যতিক্রম কেবল .launchএক্সএমএল ফাইলগুলি (লঞ্চের সংজ্ঞা)।

তারা পাওয়া যায়

[eclipse-workspace]\.metadata\.plugins\org.eclipse.debug.core\.launches

এবং সেগুলি আপনার প্রকল্প ডিরেক্টরিতে অনুলিপি করা উচিত: যখন আপনার প্রকল্পটি রিফ্রেশ হয়, সেই কনফিগারেশনগুলি "রান কনফিগারেশন" কথোপকথনে প্রদর্শিত হবে।

এইভাবে, সেই লঞ্চ পরামিতি ফাইলগুলি এসসিএম-এও পরিচালনা করা যায়।

(সতর্কতা: দো বিকল্প আনচেক "মুছে কনফিগারেশনের যখন যুক্ত রিসোর্স মুছে ফেলা হয়" মধ্যে চালান / লঞ্চ / লঞ্চ কনফিগারেশন পক্ষপাত প্যানেল: এটা সাধারণ একটি প্রকল্প অনুক্রমে এটা আমদানি করতে ফিরে আবার নরম মুছুন - একটি reinitialization বলপূর্বক গ্রহনটি মেটাডেটা But

project-dir/.project
project-dir/.classpath
project-dir/.settings/* 

আপনার এসসিএমে থাকা উচিত (বিশেষত .projectএবং গ্রহগ্রহের ডকুমেন্টেশন.classpath অনুসারে )।

লক্ষ্যটি হ'ল যে কেউ তার / তার এসসিএম কর্মক্ষেত্রটি চেকআউট / আপডেট করতে এবং Eclipse প্রকল্পটি Eclipse workpace এ আমদানি করতে পারবেন।

তার জন্য, আপনি লিখিত সংস্থানগুলি ব্যবহার করে আপনার .classpath এ কেবলমাত্র আপেক্ষিক পাথ ব্যবহার করতে চান ।

দ্রষ্টব্য: project-dirগ্রহ কর্মক্ষেত্রের অধীনে তৈরি ডিরেক্টরি নয়, "বাহ্যিক" প্রকল্প ডিরেক্টরিকে বোঝানো ভাল । এইভাবে, দুটি ধারণা (গ্রহন কর্মক্ষেত্র বনাম এসসিএম ওয়ার্কস্পেস) স্পষ্টভাবে পৃথক করা হয়েছে।


যেমন মন্তব্যগুলিতে ইপসকিগল উল্লেখ করেছেন, এবং আমি যেমন একটি পুরানো উত্তরে ইঙ্গিত করেছি , আপনি সরাসরি আপনার প্রকল্প ডিরেক্টরিতে ভাগ করা ফাইল হিসাবে লঞ্চ কনফিগারেশনটি সংরক্ষণ করতে পারেন । সমস্ত প্রবর্তন কনফিগারেশন তখন অন্যান্য প্রকল্প ফাইলগুলির মতো সংস্করণযুক্ত হতে পারে।

(ব্লগ পোস্ট টিপ থেকে: কেডি থেকে লঞ্চ কনফিগারেশন তৈরি এবং ভাগ করে নেওয়া)

বিকল্প পাঠ


16
.লাঞ্চ ফাইলগুলির জন্য .মেডাডাটাতে যে কোনও কিছু নিয়ে কাজ করার জন্য একটি (আইএমও) আরও ভাল কাজের প্রবাহ হ'ল: আপনি যখন commonট্যাবে কোনও লঞ্চ কনফিগারেশন সম্পাদনা করেন , তখন চয়ন করুন Save as > shared file। এটি সরাসরি প্রকল্প ফোল্ডারে ফেলে দেয়, তাই এটি প্রকল্পের বাকী অংশেও এসসিএম করা যায়।
Ipsquiggle

3
প্রজেক্টটি এসসিএমে থাকা উচিত কেন? উদাহরণস্বরূপ, আমি একটি কোড মেট্রিক্স সরঞ্জামটি ব্যবহার করতে চাই যা সক্ষম হয়ে গেলে .প্রজেক্টে পরিবর্তনের কারণ হয়। আমি প্রকল্পের সমস্ত ব্যবহারকারীর উপর এটি জোর করতে চাই না।
jfritz42

8
@ jfritz42: আপনি যদি স্থানীয় এবং নিয়মানুবর্তনীয় পরিবর্তনটি কেবলমাত্র আপনার জন্য বৈধ করেন তবে সেই সংস্করণটিকে আপাতত .projectআপনার কর্মক্ষেত্রের জন্য উপেক্ষা করুন make তবে অন্যান্য গ্রাহক প্রকল্পের সংজ্ঞাটি ব্যবহার করে তাদের বঞ্চিত করবেন না যে তারা দ্রুতই তাদের গ্রহন কর্মক্ষেত্রে আমদানি করতে পারে, কেবলমাত্র আপনার অতিরিক্ত অতিরিক্ত সংজ্ঞা রয়েছে যা কেবলমাত্র আপনার মুহুর্তের প্রয়োজনের সাথে খাপ খায়।
ভোনসি

7
ধন্যবাদ. আমি সেই লিঙ্কগুলি যত্ন সহকারে অধ্যয়ন করব, তবে ইতিমধ্যে আমি লক্ষ্য করেছি যে আপনার লিঙ্কগুলির প্রথমটিতে একটি উত্তর "Definitively Yes" শুরু হয় যখন পরের পরেরটি "Defininitely না" শুরু করে। গুগল বিভিন্ন, নবাগত-বন্ধুত্বপূর্ণ পরামর্শে পূর্ণ full আমি লক্ষ্যটি বুঝতে পারি, তবে কীভাবে কীভাবে পেলাম তা এখানে সমস্যা। আমি এক্সকোড থেকে এসেছি যেখানে উত্স এবং ব্যবহারকারীর বিকল্পগুলি পরিষ্কারভাবে এক্সকোড-উত্পন্ন এবং সংকলক-উত্পাদিত আউটপুট থেকে পৃথক করা হয়েছে যাতে এই প্রশ্নের একটি সহজ উত্তর থাকে। Eclipse নবাগতের কাছে, দেখা যাচ্ছে যে এই ফাইলগুলি একত্রে মিশ্রিত হয়েছে এবং প্রায় ছড়িয়ে ছিটিয়ে রয়েছে। আমি একটি সাধারণ বোধগম্য উত্তর খুঁজছি
গ্যারিপ

3
আমি ভিজ্যুয়াল স্টুডিও ভূমি থেকে এসেছি এবং আমি এখানে দ্বিতীয় গ্রিপ রেখেছি - এটি সত্যই উত্তপ্ত গণ্ডগোল - যদি গ্রীকটিকে প্রতি ব্যবহারকারী ফাইলের জন্য অস্থায়ী এবং / অথবা অপ্রয়োজনীয়-টু-ট্র্যাক তৈরি করতে হয় তবে এটি তাদের অন্য কোথাও রাখা উচিত, যাতে প্রকল্প এবং বিল্ড সংজ্ঞাগুলি ট্র্যাক করা যায় এবং সমস্ত অস্থায়ী আবর্জনা পায় না। কোথাও কোথাও গ্রহন টিমের আরও কিছু সরকারী নির্দেশনা নেই? (এটি খুব পরিষ্কার যে গ্রহগ্রহ দলটি পরীক্ষা দেয় না [বা যদি তারা তা কার্যকরভাবে করে না] তবে কমপক্ষে আমাকে বলুন যে তারা উত্স নিয়ন্ত্রণ ব্যবহার করে! এক্সডি)
BrainSlugs83

19

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

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

আমি তাদের উত্স নিয়ন্ত্রণে রাখার পরামর্শ দেব না।


14

এটি সিডিটি কনফিগারেশন ফাইলগুলি উত্স-নিয়ন্ত্রণ-বান্ধব নয় এমন কোনও মূল্য নেই । .Cproject ফাইলগুলির জন্য খুব ঘন ঘন পরিবর্তন হওয়া এবং দ্বন্দ্ব সৃষ্টি করার জন্য একটি ত্রুটিযুক্ত ফাইল রয়েছে, দেখুন ভান্ডারটিতে সিডিটি -প্রকল্প ফাইলগুলি ভাগ করা সর্বদা বিবাদ সৃষ্টি করে


হাই - এই বাগটি ছয় বছরের পুরানো এবং এখনও ছোঁয়া হয়নি। স্পষ্টতই সোর্স কন্ট্রোল সাপোর্ট ইক্লিপস দলের পক্ষে অগ্রাধিকার নয়!
BrainSlugs83

2
এটিও লক্ষ করা উচিত যে .cproject ফাইলটিতে কনফিগারেশন সম্পর্কিত তথ্য রয়েছে যা আপনি অন্য বিকাশকারীদের ম্যানুয়ালি পুনরায় তৈরি করতে বাধ্য করবেন না। বিতৃষ্ণা।
ক্রিস্টোফার বারবার

7

কিছু প্রকল্প, যেমন মাভেন ব্যবহার করে, পিওএম এর উপর ভিত্তি করে। প্রজেক্ট ফাইল তৈরি করতে পছন্দ করে।

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

কেবল কঠিন অংশই নিশ্চিত করছে যে তারা সবাই সিঙ্কে রয়েছেন। তবে বেশিরভাগ ক্ষেত্রে আপনি প্রকল্প থেকে প্রজেক্টে। সেটিং ফাইলগুলি অনুলিপি করতে পারেন। উত্স নিয়ন্ত্রণে আপনি যদি বিশেষত চান না এমন কিছু থাকে তবে এসএনএন সেট করার সমতুল্য করুন: তাদের জন্য উপেক্ষা করুন, যদি আপনার এসসিএম সমর্থন করে।


2
আমরা ম্যাভেন 1 এবং 2 ব্যবহার করি এবং আপনি কেবল যদি এটি জিজ্ঞাসা করেন তবে এটি কেবল প্রজেক্ট ফাইলটি উত্পন্ন করে। এমনকি যদি আপনি তা করেন তবে এটি পম এর সামগ্রীর উপর ভিত্তি করে এটি করে, সুতরাং অন্য বিকাশকারী যদি ইতিমধ্যে আপনার জন্য এই পদক্ষেপটি নিয়ে থাকে এবং ফলাফলটিকে সংস্করণ নিয়ন্ত্রণে পরীক্ষা করে থাকে তবে কেন সেটির সুবিধা নেবেন না?
অ্যান্ড্রু সোয়ান

6

.Classpath ফাইলটি অবশ্যই scm এ যাচাইয়ের জন্য ভাল প্রার্থী হিসাবে এটি নিজের হাতে সেট করা অনেক কাজ হতে পারে এবং নতুন ডেভসগুলির পক্ষে প্রকল্পে প্রবেশ করা কঠিন হবে। এটি সত্য যে এটি অন্যান্য উত্স থেকে উত্পন্ন হতে পারে, এক্ষেত্রে আপনি অন্য উত্সটিতে যাচাই করবেন।

.Settings হিসাবে এটি সেটিংসের উপর নির্ভর করে। এটি একটি ধূসর অঞ্চল, তবে কিছু সেটিংস প্রায় বাধ্যতামূলক এবং কোনও প্রকল্প চেক আউট করতে, এটিকে Eclipse এ আমদানি করতে এবং সবকিছু সেট আপ করা এবং যেতে ভাল থাকতে সুবিধাজনক।

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


4

আমি তাদের কেউই বলব না। এগুলির মধ্যে সম্ভবত এমন তথ্য রয়েছে যা কেবলমাত্র আপনার ওয়ার্কস্টেশনের সাথে প্রাসঙ্গিক (আমি লাইব্রেরি এবং সকলের জন্য পাথের বিষয়ে ভাবছি)। এছাড়াও আপনার দলের কেউ যদি গ্রহনটি ব্যবহার না করে?


3
নাহ, আপনার। ক্লাসপথে আপনার আপেক্ষিক পাথ থাকতে পারে। স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 300008#300346 দেখুন ।
ভোনসি

7
তারা যদি একই দেব ব্যবহার না করে তবে একটি সুন্দর অসম্পূর্ণ / অদক্ষ দলের মতো শোনায়। সরঞ্জাম, প্রকল্প, ডিবাগ, এবং বিল্ড সংজ্ঞা ইত্যাদি। - এরপরে আপনি আমাকে একটি সাধারণ কোডিং স্ট্যান্ডার্ড বা জেডিকে ব্যবহার করবেন না বলে যাচ্ছেন। - আদর্শভাবে, ব্যবহারকারীর উত্স নিয়ন্ত্রণ থেকে একটি প্রকল্প টেনে আনতে সক্ষম হবে এবং প্রচুর অতিরিক্ত সেটআপ বা নির্দেশাবলী ছাড়াই ডানদিকে ঝাঁপিয়ে পড়তে হবে। সুতরাং এই উত্তরটি আমার পক্ষে কেবল গ্রহণযোগ্য নয়।
BrainSlugs83

1
একীকরণের সময় পছন্দের ফাইলগুলির মধ্যে দ্বন্দ্বগুলি মোকাবেলা করার উপায়টি আরও অদক্ষ, এছাড়াও একই আইডিই ব্যবহার করতে বাধ্য করা ঠিক একই কনফিগারেশনের সাথে অযথা বাধা বলে মনে হচ্ছে like
এ। রোদাস

আমি [~ অগ্নুল] এর সাথে একমত প্রকল্পগুলি কিছু বিল্ড টুল (গ্রেডেল, মেভেন, পিঁপড়া, ইত্যাদি ...) ব্যবহার করা উচিত এবং আইডিই বিল্ড টুল কনফিগারেশন ফাইল (বিল্ড.gradle, pom.xML, build.xml, ইত্যাদি ...) কোনও আইডিই ফাইল ভার্সন নিয়ন্ত্রণ করা উচিত নয়। এগুলি সমস্ত বিকাশকারী নির্দিষ্ট ফাইল, নির্দিষ্ট ফাইল নয়। এগুলি সহজ সংস্করণ নিয়ন্ত্রণে নেই।
axiopisty

2

বিবেচনা:

.classpath
.project
.launch

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

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


আমার অভিজ্ঞতায় আপনি যখন গ্রহটিকে নতুন সংস্করণে আপডেট করেন বা স্বাদের মধ্যে স্যুইচ করেন তখন এটি বিভিন্ন উপায়ে বিভক্ত হয়ে পড়ে।
থরবজর্ন রাভন অ্যান্ডারসন

1

আমি নতুন সহকর্মীদের (এবং আমার) জন্য গ্রহণ কর্মক্ষেত্র সেটিংস কনফিগার করার জন্য অনেক ঘন্টা ব্যয় করেছি। আমি শেষ পর্যন্ত যা করতে পেরেছি তা হ'ল নতুন নিজস্ব বিকাশকারী মেশিনে আমার নিজের।

আপনি যদি একটি দলে কাজ করছেন তবে আমি মনে করি সংস্করণ নিয়ন্ত্রণে রাখার জন্য নিম্নলিখিতগুলি খুব ভাল প্রার্থী:

  • ইনস্টল করা জেআরই এবং তাদের নাম
  • সার্ভার রানটাইম এনভায়রনমেন্টস
  • জাভা সম্পাদক টেম্পলেট
  • সংস্করণ নিয়ন্ত্রণ কীবোর্ড শর্টকাটগুলি
  • প্লাগইন সেটিংস যা প্রকল্প নির্দিষ্ট সেটিংস সরবরাহ করে না
  • ম্যাভেন সেটিংস
  • পূর্বনির্ধারিত দৃষ্টিভঙ্গি
  • ...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.