পুনরায় লেখকদের জন্য সংস্করণ নিয়ন্ত্রণ অনুশীলন


29

আমরা এক্স ভাষায় P_OLD এর একটি পণ্য (প্রোটোটাইপ) তৈরি করেছি এবং আমরা এখন এটিকে স্ক্র্যাচ থেকে P_NEW হিসাবে Y এর ভাষায় পুনরায় লিখছি rit

যেহেতু পি_এনইউ এবং পি_োল্ড একই পণ্য:

পি_এনইউ কি কেবল পি_ওল্ডের পুরানো ব্রাচ হওয়া উচিত বা এটির নিজস্ব ভান্ডার হওয়া উচিত?

একটি বড় সংস্করণ নিয়ন্ত্রণ দৃষ্টিকোণ গঠন এত বড় পরিবর্তনগুলি পরিচালনা করার স্বাভাবিক উপায় কী?



@gnat লিঙ্কের জন্য ধন্যবাদ। এটি আকর্ষণীয়, তবে মূল পার্থক্যটি হ'ল আমাদের জন্য এটি একই পণ্য, একেবারে সম্পূর্ণ নতুন ডিজাইন করা। পুরানো প্রকল্পটি মূলত একটি (কুরুচিপূর্ণ) প্রোটোটাইপ ছিল।
1v0

উত্তর:


46

আপনি অবশ্যই একটি নতুন সংগ্রহশালা চান।

সংগ্রহস্থলের উদ্দেশ্য হ'ল:

  • ইতিহাস এবং পরিবর্তনগুলি ট্র্যাক করতে যাতে আপনি এগুলি সহজে তুলনা করতে পারেন
  • চারপাশে প্যাচ ফাইলগুলি ইমেল করা এবং ম্যানুয়ালি তাদের ওয়ার্কিং ডিরেক্টরিতে প্রয়োগ করার চেয়ে শাখা এবং মার্জগুলি পরিচালনা করতে

আপনি যদি স্ক্র্যাচ থেকে পুরোপুরি কোনও প্রকল্পটি পুনরায় লিখতে থাকেন তবে পুনরায় লেখার একই ভান্ডারে পুনরায় লেখার কোনও অর্থ নেই। আপনি পুরানো ভাষায় লিখিত প্যাচগুলি আপনার পুনরায় লেখার জন্য প্রয়োগ করতে পারবেন না। রেপো স্যুইচিং পুরানো রেপোতে ইতিহাসকে দূরে সরিয়ে দেবে না এবং আপনি যদি স্যুইচ করেন তবে আপনার রেপোতে দু'টি ভাষা লাথি মারার মতো কোনও অদ্ভুত অন্তর্বর্তী পর্যায় নেই won't

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


2
রূপান্তরটির দৈর্ঘ্যের উপর নির্ভর করে, পূর্বের জীবিত এবং তুলনার জন্য সহজেই অ্যাক্সেসযোগ্য হওয়া কার্যকর। আপনি নতুন সিস্টেমে ফলাফলগুলির সাথে মেলে এমনটি বৈধ করার জন্য আপনাকে পুরানো সিস্টেমে পরীক্ষার কেসগুলি প্রবর্তনও করতে পারে।
এরিক

16

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

আপনি যখন অন্য কোনও প্রকল্পে কোনও প্রকল্প পুনর্লিখন করছেন তখন বিল্ডিং, পরীক্ষা চালানো এবং মোতায়েন করা এর মতো কোনও কাজের মধ্যে খুব সামান্য মিল থাকে। আপনি যদি কেবল তাদের নিজস্ব ভাণ্ডারে আলাদা করে রাখেন তবে আপনি নিজের বেদনা বাঁচাতে পারবেন। তারপরে আপনাকে কেবল পুরানো সিস্টেম থেকে নতুন সিস্টেমে কীভাবে ব্যবহারকারী এবং ডেটা স্থানান্তর পরিচালনা করতে যাচ্ছেন তার যন্ত্রণা নিয়েই আপনাকে চিন্তিত হতে হবে; এটি সর্বদা একটি মজাদার জিনিস। :)


5

যদি আপনার সিস্টেমগুলি পর্যাপ্ত পরিমাণে মডুলার এবং লিঙ্কের সামঞ্জস্যপূর্ণ হয় তবে আপনি একটি একক সংগ্রহস্থল এবং বিল্ডিং থেকে উপকৃত হবেন। উদাহরণস্বরূপ, যদি সি সিস্টেমটি সি ++ এ পুনরায় লেখা হয়, তবে সি ++ কোড বিদ্যমান কার্যকারিতা কল করতে পারে এবং ক্রমবর্ধমানভাবে এটি প্রতিস্থাপন করতে পারে।

তবে, এমনকি এক্ষেত্রেও কেউ কেউ একটি নতুন রেপো শুরু করার জন্য তর্ক করতে পারে যাতে প্রাসঙ্গিক পুরানো কোডটি প্রয়োজনীয় হিসাবে টানানো হয়।

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