একটি .sln উত্স নিয়ন্ত্রণ প্রতিশ্রুতিবদ্ধ করা উচিত?


101

সোর্স কন্ট্রোলটিতে .sln ফাইল করা কি সেরা অনুশীলন? কখন এটি করা উপযুক্ত বা অনুপযুক্ত?

আপডেট উত্তরের কয়েকটি ভাল পয়েন্ট ছিল। প্রতিক্রিয়া জন্য ধন্যবাদ!


21
আমি বিশ্বাস করি যে এটি .SUO ফাইল যা আপনি প্রতিশ্রুতিবদ্ধ করতে চান না।
অপান্দিত

কেবল রেকর্ডের জন্য, আমি বিশ্বাস করি যে টাস্ক তালিকাগুলি (যদি আপনি সেগুলি ব্যবহার করেন) .SUO ফাইলে সঞ্চিত থাকে ... সুতরাং আপনি যদি তাদের উত্স নিয়ন্ত্রণে প্রতিশ্রুতিবদ্ধ করতে নাও চান তবে আপনি সেগুলি কেবল 'মুছে ফেলতে' চাইবেন না বহির্মুখী ক্রাফট
বেনজোল

উত্তর:


69

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

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

সম্ভবত আরও কার্যকর প্রশ্ন: আপনার কোন ফাইলগুলি বাদ দেওয়া উচিত? আমার ভিএস ২০০৮ প্রকল্পের জন্য আমার .gitignore ফাইলের সামগ্রী এখানে রয়েছে:

*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/

(শেষ এন্ট্রিটি কেবলমাত্র এএমডি কোডএ্যানালিস্ট প্রোফাইলারের জন্য))

ভিএস ২০১০-এর জন্য আপনার নিম্নলিখিতগুলিও বাদ দিতে হবে:

ipch/
*.sdf
*.opensdf

2
ইউনিট পরীক্ষার ফলাফলের জন্য আমারও উপেক্ষা করার নিয়ম রয়েছে। কিছু লোক
এগুলিতে

9
+1 - আমি ব্যক্তিগতভাবে নির্মিত এমন কোনও কিছুও করি না, এভাবে বিন / এবং আপত্তি /
স্টিভেন এভার্স

আমি কেবল .sln ফাইলগুলিতে প্রতিশ্রুতিবদ্ধ করি যার মধ্যে 1 টির বেশি প্রকল্প রয়েছে
জাস্টিন

2
এখানে আমার সাবসারশন গ্লোবাল প্যাটারটিকে উপেক্ষা করুন: * .vsmdi * .সুও * / [বিবি] ইন [বিবি] ইন * / আপত্তি টেষ্টারসাল্টস * [ এক্সএমএল * ওয়েব.লগ
মেরিট

এখানে একটি সাধারণভাবে ভাগ করা .gitignore ফাইল যা অস্থায়ী ফাইল, ফলাফল তৈরি এবং জনপ্রিয় ভিজ্যুয়াল স্টুডিও অ্যাড-অনগুলি দ্বারা উত্পন্ন ফাইলগুলি অন্তর্ভুক্ত করে।
লরেন ভ্যান স্লাউন


20

হ্যাঁ আপনার এটি করা উচিত। একটি সমাধান ফাইলে আপনার সমাধানের সামগ্রিক কাঠামো সম্পর্কে কেবল তথ্য থাকে। তথ্যটি সমাধানের জন্য বৈশ্বিক এবং সম্ভবত আপনার প্রকল্পের সমস্ত বিকাশকারীদের কাছে সাধারণ।

এটিতে কোনও ব্যবহারকারীর নির্দিষ্ট সেটিংস নেই।


13

আপনার অবশ্যই এটি থাকা উচিত। অন্যান্য ব্যক্তিরা যে কারণে উল্লেখ করেছেন, তার পাশাপাশি পুরো প্রকল্পগুলির এক ধাপ তৈরি সম্ভব।


8

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

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

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


এর মতো শব্দগুলি আমার দীর্ঘ-উত্তর না দেওয়া প্রশ্নের উত্তর হতে পারে ( স্ট্যাকওভারফ্লো / প্রশ্ন / 1490728/… ), এই প্লাগইনটির অনুলিপিটি পাওয়ার কোনও সম্ভাবনা?
বেনজল

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

ঠিক আছে, কেবল একটি জিনিস, আপনার 'বিগ সমাধান' এ আপনার কি প্রকল্পের রেফারেন্স বা ফাইল রেফারেন্স রয়েছে? এবং যদি কোনও বিকাশকারী কোনও ফাইল / প্রকল্পে একটি নতুন রেফারেন্স যুক্ত করে, তবে প্লাগইনটি চেক ইন করার আগে কি উপযুক্ত রূপান্তরটি ফিরে আসে? এবং বিকাশকারী চেকআউট করার জন্য বেছে নেই এমন নির্ভরতাগুলি আপনি কীভাবে পরিচালনা করবেন?
বেনজল

8

হ্যাঁ, আপনার যে জিনিসগুলি করা উচিত তা হ'ল:

  • সমাধান (* .স্লেন),
  • প্রকল্প ফাইল,
  • সমস্ত উত্স ফাইল,
  • অ্যাপ্লিকেশন কনফিগারেশন ফাইল
  • স্ক্রিপ্ট তৈরি করুন

আপনার প্রতিশ্রুতিবদ্ধ হওয়া উচিত নয় :

  • সমাধান ব্যবহারকারী বিকল্পসমূহ (.suo) ফাইল,
  • উত্পন্ন ফাইলগুলি তৈরি করুন (উদাহরণস্বরূপ একটি বিল্ড স্ক্রিপ্ট ব্যবহার করে) [সম্পাদনা:] - সমস্ত প্রয়োজনীয় বিল্ড স্ক্রিপ্ট এবং সরঞ্জামগুলি সংস্করণ নিয়ন্ত্রণের অধীনে উপলব্ধ (সিভিএস ইতিহাসে বিল্ডগুলি খাঁটি রয়েছে তা নিশ্চিত করার জন্য)

অন্যান্য স্বয়ংক্রিয়ভাবে উত্পন্ন ফাইলগুলির বিষয়ে, একটি পৃথক থ্রেড রয়েছে


1
আমাকে "যে কোনও স্বয়ংক্রিয়ভাবে উত্পন্ন ফাইল" এর সাথে দ্বিমত পোষণ করতে হবে।
মেহরদাদ আফশারি

@ মেহরদাদ আপনি কী ভাবেন যে ইন্টেলিসেন্স ফাইলগুলিও কমিট করা উচিত?
এডিসন গুস্তাভো মুয়েঞ্জ

1
@ এডিসন: না উদাহরণস্বরূপ, আমি লিনকিউ থেকে এসকিউএল ডেটা প্রসঙ্গে যেমন স্বয়ংক্রিয়ভাবে উত্পন্ন উত্স ফাইলগুলি উল্লেখ করছি।
মেহরদাদ আফশারি

2
ফর্মনাম নয়? ডিজাইনার। ফাইলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন বলে বিবেচিত হয়?
জেসনহ

1
আমি যা বোঝাতে চেয়েছি তা হ'ল বিল্ড টাইম চলাকালীন ফাইলগুলি generated আমি এটি প্রায়শই খুঁজে পাই - কেউ স্বয়ংক্রিয়ভাবে নির্মিত একটি ফাইলের প্রতিশ্রুতি দেয় এবং তারপরে কিছু মন্তব্য পরিবর্তিত হওয়ার কারণে এসভিএন একটি পরিবর্তন রিপোর্ট করে।
গ্রো

5

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


5

বেশিরভাগ পরিস্থিতিতে, উত্স নিয়ন্ত্রণে .sln ফাইলগুলি প্রতিশ্রুতিবদ্ধ করা ভাল ধারণা।

যদি আপনার .sln ফাইলগুলি অন্য কোনও সরঞ্জাম (যেমন সিএমকে) দ্বারা উত্পন্ন হয় তবে তাদের উত্স নিয়ন্ত্রণে রাখা সম্ভবত অনুচিত inappropriate


4

হ্যাঁ, আপনি সর্বদা .sln ফাইলটি অন্তর্ভুক্ত করতে চান, এটি সমাধানে থাকা সমস্ত প্রকল্পের লিঙ্কগুলি অন্তর্ভুক্ত করে।


2

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


2

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


1

কেবলমাত্র যেখানে আপনি এমনকি উত্স নিয়ন্ত্রণে এটি সংরক্ষণ না করে বিবেচনা করবেন তা হ'ল যদি আপনার উত্স নিয়ন্ত্রণে থাকা অনেকগুলি প্রকল্পের সাথে একটি বৃহত সমাধান হয় এবং আপনি কিছুগুলির জন্য মূল সমাধান থেকে কিছু প্রকল্পের সাথে একটি ছোট সমাধান তৈরি করতে চেয়েছিলেন ব্যক্তিগত ক্ষণস্থায়ী প্রয়োজন।


1

হ্যাঁ - আপনার পণ্য উত্পন্ন করতে ব্যবহৃত সমস্ত কিছু উত্স নিয়ন্ত্রণে থাকা উচিত।


1

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


0

.slns একমাত্র জিনিস যা আমাদের টিএফএস-এ সমস্যা হয় নি !


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