স্কিম্যাটিক্স এবং উত্স কোডের সংস্করণ নিয়ন্ত্রণ


12

আমি একটি বৈদ্যুতিন ডিভাইস বিকাশ করছি যার দুটি অংশ রয়েছে: হার্ডওয়্যার (agগল স্কিম্যাটিক্স) এবং ফার্মওয়্যার (সি ++ উত্স কোড)। আমি উত্স কোড এবং স্কিম্যাটিক্স উভয়ই পরিবর্তনগুলি ট্র্যাক করতে চাই, তবে কিছু পয়েন্ট রয়েছে যেখানে আমার কাজটি কীভাবে সংগঠিত করা যায় তা সম্পর্কে আমি নিশ্চিত নই:

  • উত্স কোডের জন্য আমি অবশ্যই গিট ব্যবহার করব। কিন্তু বাস্তবে বাইনারি ফাইলগুলি যখন স্কেমেটিক্সের ভার্সন করার উপযুক্ত হয় (নতুন agগল সংস্করণগুলি কিছু এক্সএমএল ফর্ম্যাট ব্যবহার করে, তবে এটি এতটা মানব পাঠযোগ্য নয় ...)?

  • উত্স এবং স্কিম্যাটিক্সকে একটি গিট ভাণ্ডারে রাখাই ভাল ধারণা কি? এটি বোধগম্য হবে, তবে অন্যদিকে আমার লগে সফ্টওয়্যার এবং হার্ডওয়্যার উভয়ই পরিবর্তন থাকবে। এছাড়াও সফ্টওয়্যারটির বেশ কয়েকটি শাখা থাকতে পারে তবে হার্ডওয়্যার সম্ভবত নেই ...

  • হার্ডওয়্যার রিভিশনগুলি কীভাবে মোকাবেলা করবেন? এগুলি ট্যাগ করুন বা তাদের আলাদা ডিরেক্টরিতে সংরক্ষণ করুন?

  • এছাড়াও হার্ডওয়্যার রিভিশন এবং ফার্মওয়্যার সংস্করণের মধ্যে কিছু নির্ভরতা থাকতে পারে। কীভাবে তাদের মোকাবেলা করবেন?

আপনি কি দয়া করে আমার সাথে আপনার সেরা অনুশীলনগুলি ভাগ করতে পারেন?


একটি বাণিজ্যিক সমাধান কাজ করবে?
ইউজিন শ।

5
আমি আর কখনও বাণিজ্যিক সংস্করণ নিয়ন্ত্রণ ব্যবস্থা স্পর্শ করব না। তাদের সম্পর্কে আমার অভিজ্ঞতা হ'ল ভয়ানক কর্মপ্রবাহ যা এসএনএন বা এমনকি গিটের চেয়ে বেশি শক্ত।
pjc50

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

উত্তর:


19

এর বেশিরভাগটি ব্যক্তিগত পছন্দগুলিতে নেমে আসে।

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

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

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

গিটে আপনি ফার্মওয়্যারটিকে হার্ডওয়্যার প্রকল্পে বা অন্য উপায়ে অন্যভাবে পরিচালনা করতে পারেন এমনকি সেগুলি পৃথকভাবে পরিচালিত সংগ্রহস্থল থাকলেও সাব-রিপোজিটরিগুলি ব্যবহার করতে পারেন।

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

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

R01 তে আকর্ষণীয় কিছু রয়েছে যা R02 (বা অন্য উপায়ে) তে ঘটছে না, আপনার দুটি গিট হ্যাশ রয়েছে যার সাহায্যে আপনি উত্স ফাইলগুলির তুলনা করতে পারেন, কোনও উদ্বেগ নয়।

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

অর্থ প্রতিবার আমি এইচডাব্লু প্রকল্পের বোর্ডপিনআউট "আপডেট" বিস্তৃত কার্যকারিতা পরিবর্তন না করে কয়েকটি সংকেত পরিবর্তন করি যা পরে ফার্মওয়্যারটিতে আপডেট এবং ব্যবহার করা যেতে পারে।


1
এটা সত্যিই কি কি কখনো জানার জন্য বিভিন্ন Repos মধ্যে হার্ডওয়্যার এবং ফার্মওয়্যার করা? এগুলিকে এক করে রাখতে সমস্যা হবে কীভাবে? আমি বরং এটির সমস্যা হওয়ার আশা করছিলাম যদি আপনি একসাথে থাকা উপাদানগুলির পরিবর্তনের উপর নজর রাখতে চান (উদাহরণস্বরূপ অদলবদল করা আইও পিনগুলি বিভিন্ন ফার্মওয়্যার অ্যাসাইনমেন্টে প্রতিফলিত হওয়া দরকার, এবং অক্ষম সংস্করণগুলি পরীক্ষা করা মায়ামের দিকে নিয়ে যায়)।
leftaroundabout

@ Leftaroundabout সবার আগে, আপনার দ্রুত পরিবর্তনশীল এফডাব্লু রেপোকে একটি জটিল সিএডি ডিজাইনের বেশিরভাগ অংশে সঞ্চারিত করা আপনি যা চান তা সবসময় হয় না, তবে আপনি সাব-রেপো এবং বিস্তৃত সংযোগ সম্পর্কে বিটগুলি আবারও পড়তে চাইতে পারেন। গিটের সাথে করা মোটেও কঠিন নয় এবং এটি ডিজাইন ট্র্যাক্টগুলির মধ্যে সমস্ত প্রকারের অনুচিত ঘনিষ্ঠতা সৃষ্টি না করেই ঠিক সেই সমস্যাটিকে ঠিক করে দেয়।
Asmyldof

1
"আমার গ্রাহকরা সকলেই মনে করেন না যে ড্রপবক্স যথেষ্ট নিরাপদ" ফাইলগুলি সংস্করণ করার জন্য সেগুলি 100% সঠিক। এটি বিশেষত বিপজ্জনক যদি একাধিক ব্যবহারকারী একই সাথে ফাইলগুলি সংশোধন করতে পারে এবং আরও অনেক কিছু যদি আপনার কাছে এমন একাধিক ফাইল থাকে যা সত্যই কোনও একক সংস্থান নিয়ে আসে। আমি বাইনারি "ফাইলের সেটগুলি" এইভাবে দূষিত হতে দেখেছি (ইএসআরআই ফাইল জিওডাটাবেসগুলি, যদি আপনি আগ্রহী হন)।
jpmc26

1
@ jpmc26 এটি একটি তাড়াহুড়ো করা মন্তব্য ছিল, সুরক্ষা দিক হিসাবে প্রথমে সংস্করণটির সূচনা আরও শুরু হয়েছিল। কয়েকটি চতুর গিটআইগনোর টেম্পলেটগুলির সাথে সংস্করণ এখন সহজেই ঝামেলা ছাড়াই সমস্ত কিছু খাপ খাইয়ে নিয়ে আসে, এতে সমস্ত সুবিধা রয়েছে। আমি আসলে শেয়ার্ড ড্রপবক্সে আপনার সাথে পুরোপুরি একমত। একটি গ্রাহক সাইটে এটি অন্তহীন সমস্যার কারণ হয়। বিকাশের অধীনে থাকা ফাইলগুলি কম্পিউটারে অন্তহীন দ্বন্দ্বপূর্ণ অনুলিপি তৈরির ফলে দেবের অংশগুলি সবচেয়ে বিরক্তিকর হয়ে ওঠে during
Asmyldof

@ বামফুট চক্র: এটি হার্ডওয়্যার এবং ফার্মওয়্যারের মধ্যে সম্পর্কের উপর নির্ভর করে। আসুন সাধারণ সফ্টওয়্যার প্রকল্পগুলির সাথে সাদৃশ্য রাখি। আপনি কি আপনার ওয়েবসাইটের সাথে জিআইএফ এবং জেপিজি ফাইলগুলি প্রতিশ্রুতিবদ্ধ? এই ক্ষেত্রে বাইনারি এবং উত্স উভয়ই একে অপরের সাথে পরিবর্তিত হয় যদিও চিত্রগুলি প্রায়শই পরিবর্তন হয় না। তবে .. আপনি কি আপনার প্রকল্পের সাথে অ্যাপাচি বা এনগিনেক্স উত্স কোডটি প্রতিশ্রুতিবদ্ধ? এই বিষয়ে, আপনি লিনাক্স কার্নেলের উত্স কোডটি প্রতিশ্রুতিবদ্ধ করবেন? এক্ষেত্রে অ্যাপাচি বা এনগিনেক্স এবং লিনাক্স কার্নেল হার্ডওয়ারের সাথে আরও সাদৃশ্যপূর্ণ - এগুলি পরিবর্তিত হয় তবে আপনি যে কোডটি লেখেন সেগুলি থেকে তারা স্বাধীনভাবে পরিবর্তন করে
slebetman

5

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

2) আমাদের এসভিএন-তে নিম্নলিখিত কাঠামো রয়েছে।
/ ট্যাগ
/ শাখা
/ ট্রাঙ্ক / হার্ডওয়্যার
/ ট্রাঙ্ক / সফ্টওয়্যার / ফার্মওয়্যার

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

2) ট্যাগগুলি উপ-ফোল্ডারগুলি থেকে পুরো ট্রাঙ্ক থেকে তৈরি করা হয়, যেমন ট্যাগ / মেনবোর্ড-ভি 1.2.345। হার্ডওয়্যার (অর্থাত্ পিসিবি) সর্বদা সিল্ক স্ক্রিন প্রিন্টে বা তামার মধ্যে সরাসরি রেফারেন্সের জন্য এসভিএন সংশোধন করে।

4) হার্ডওয়্যার এবং ফার্মওয়্যার মধ্যে নির্ভরতা জটিল হতে পারে। আইএমও কমিট সম্পর্কে দরকারী মন্তব্য বাদ দেওয়া ছাড়া এটি সংগ্রহস্থল পর্যায়ে এটি মোকাবেলা করার পক্ষে এতটা অর্থবোধ করে না।
অতিরিক্ত I / O পিন ব্যবহার করে এনকোডিং হার্ডওয়্যার পরিবর্তনগুলি বিবেচনা করুন। 16 টি বিভিন্ন হার্ডওয়্যার সংস্করণ এনকোড করতে 4 টি পিন ব্যবহার করার মতো। সংস্করণগুলি এনকোড করতে আমরা বিভিন্ন প্রতিরোধের মানগুলির সাথে একটি একক ADC ইনপুটও ব্যবহার করি। এই সফ্টওয়্যারটি কোন হার্ডওয়্যারটি চালায় সে সম্পর্কে "জানতে" এবং নির্দিষ্ট বৈশিষ্ট্যগুলি পরিবর্তন / অক্ষম / সক্ষম করতে পারে।


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

@ পিজেসি 50: আসলে আমরা রিলিজ বান্ডিলগুলিও "বিল্ড" করি তবে উত্স নিয়ন্ত্রণের বাইরে (তবে একটি সংশোধনী উল্লেখ সহ)। মূলত এটি নির্মাতাকে যে কিছু পেয়েছিল তার সঠিক কপি হবে। যদি আপনি উচ্চ ভলিউম উত্পাদনের সাথে পেশাগতভাবে হার্ডওয়্যার ডেভেলপমেন্ট করেন তবে কিছু ভুল হয়ে যাওয়ার ক্ষেত্রে সমস্ত তথ্য সহজেই পাওয়া খুব জরুরি। যদি আপনি মনে না রাখেন যে আপনি বোর্ড হাউসটি "এটি একটি গুরুত্বপূর্ণ নথি" প্রেরণ করেছেন যা কাস্টম পিসিবি তামার বেধ নির্দিষ্ট করে আপনি সমস্যায় পড়তে পারেন।
রেভ 1.0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.