আপনি যখন সংস্করণ নিয়ন্ত্রণ ব্যবহার করছেন তখন প্রতিটি কোড ফাইলে একটি "পরিবর্তন লগ" অন্তর্ভুক্ত করার কোনও বিন্দু আছে?


75

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

// 2011-06-14 (John Smith) Change XYZ to ABC to fix Bug #999

এবং:

// 2009-95-12 (Bob Jones) Extracted this code to Class Foo 
// <commented-out code here>

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

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

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


4
আপনি কোন সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করছেন?
ক্রিসএফ

11
সোর্স কন্ট্রোল সিস্টেম থাকার আগে কিছু দোকান পরিবর্তন লগ ব্যবহার করত। জড়তা এবং পরিচিতি পরিবর্তনের লগগুলি প্রায় রাখে।
গিলবার্ট লে ব্ল্যাঙ্ক

2
+1 - আমার দলও এটি করে এবং আমি তাদের কয়েকটিকে বোঝানোর চেষ্টা করেছি যে এটি ভিসিএসের ভূমিকা। এই মন্তব্যগুলি প্রকৃত কোডের সাথে আপ টু ডেট না রাখলে সমস্যাগুলি শুরু হয় ... এবং সবচেয়ে খারাপটি হ'ল পরিচালন প্রতিটি পদ্ধতিতেও চেঞ্জলগগুলি যুক্ত করার সিদ্ধান্ত নিয়েছে।
স্ল্যাপপি

2
+1 - আমি প্রায় দুই বছর ধরে এই বিষয়ে আমাদের সিনিয়র দেবের সাথে লড়াই করছি। এই অকেজো মন্তব্যগুলিকে যুক্ত করার জন্য তার একমাত্র যুক্তিটি হ'ল এটি 3000-লাইন পদ্ধতিতে মার্জিং পরিবর্তনগুলি আরও সহজ করে তোলে। 3000-লাইন পদ্ধতিটি অশ্লীল ধারণাটি অবজ্ঞার সাথে মিলিত হয়েছে।
জোশুয়া স্মিথ

1
যদি "[আপনার] ভিসিএস লগগুলি সন্ধান করতে খুব বেশি সময় লাগে", আপনি কিছু ভুল করছেন।
কিথ থম্পসন

উত্তর:


45

আমি কোড মন্তব্য মুছে ফেলার ঝোঁক। এবং মুছে ফেলার মাধ্যমে, আমি বলতে চাইছি, কুসংস্কারের সাথে । কোনও মন্তব্য কেন নির্দিষ্ট ফাংশনটি কিছু করে তা ব্যাখ্যা না করে তা চলে যায়। বাই বাই যাও পাস না।

সুতরাং আপনাকে অবাক করে দেওয়া উচিত নয় যে আমি সেই একই পরিবর্তনগুলিও মুছে ফেলব।

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

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

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

তবে আপনি যাতে না ভাবেন যে আমি বলি যে মন্তব্যগুলি রসিকভাবে মুছে ফেলা উচিত, এই ডেইলি ডাব্লুটিএফ জমা দেওয়া (আমি যে কোডবেসে কাজ করেছি) আমার বিষয়টি পুরোপুরি চিত্রিত করে:

/// The GaidenCommand is a specialized Command for use by the
/// CommandManager.
///
/// Note, the word "gaiden" is Japanese and means "side story",
/// see "http://en.wikipedia.org/wiki/Gaiden".
/// Why did I call this "GaidenCommand"? Because it's very similar to
/// a regular Command, but it serves the CommandManager in a different
/// way, and it is not the same as a regular "Command". Also
/// "CommandManagerCommand" is far too long to write. I also toyed with
/// calling this the "AlephCommand", Aleph being a silent Hebrew
/// letter, but Gaiden sounded better.

ওহ ... গল্পগুলি আমি সেই কোডবেজ সম্পর্কে আপনাকে বলতে পারতাম, এবং আমি এগুলি বাদে এটি এখনও আশেপাশের বৃহত্তম সরকারী সংস্থার ব্যবহারে নেই।


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

5
প্রতিটি বিকাশকারী কমপক্ষে কয়েকটি খারাপ গুণাবলী আছে, আমি জানি আমার উচিত ছিল না তবে আমি কেবল থামাতে পারি না :) আমি যখনই একটি TODOমন্তব্য তৈরি করি তখন একটি কুকুরছানা মারা যায়।
ম্যাপেল_শ্যাফ্ট

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

8
@ নীল বাটারওয়ার্থ: পুনরায়: রুকশনস: কোডটি ম্যালেবল হতে বোঝানো হয়েছে। এটি রিফ্যাক্টর করুন, এটি পরিবর্তন করুন, এটি উন্নত করুন। এটি তার জন্য বোঝানো হয়েছে। এটি শুধু একবার লেখার জন্য বোঝানো হয়নি। ব্যবসায় সম্পর্কে আমাদের বোঝার পরিবর্তন হয় এবং যখন এটি ঘটে তখন আমাদের কোডটি পরিবর্তন করা দরকার। মন্তব্যে আমার অনেক সমস্যা আছে, তবে আমাদের আলোচনার সাথে সর্বাধিক প্রাসঙ্গিক হ'ল মন্তব্যগুলি কোডের সাথে খুব কমই সিঙ্ক থাকে এবং সাধারণত তারা কেন কিছু ঘটছে তা ব্যাখ্যা করেন না । যখন এটি হয়, এটি মুছে ফেলা সহজ। যদি কেউ আমার কাছে এসে জিজ্ঞাসা করে আমি নীচের মন্তব্যটি কেন মুছে ফেলেছি file.Open() // Open the file। আমি হাসি।
জর্জ স্টকার

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

76

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

অবশ্যই সত্যই ভয়াবহ বিষয়টি ছিল "পুরানো সময়ের" ভিসিএসের বৈশিষ্ট্য যেখানে আপনি আসল ভিসিএস লগটি উত্স ফাইলগুলিতে এম্বেড করে রাখতে পারেন। মার্জ করা প্রায় অসম্ভব।


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

10

আমার কাছে প্রতিটি প্রকল্পের জন্য একটি একক চেঞ্জলগ ফাইল রয়েছে যা নির্দিষ্ট প্রতিশ্রুতি বার্তাগুলি দ্বারা স্বয়ংক্রিয়ভাবে পপুলেট হয়।

আমাদের চেঞ্জলগ মন্তব্য এম্বেড করা নেই। আমরা যদি তা করতাম তবে আমি সেগুলি সরিয়ে ফেলতাম এবং তাদের যুক্ত করা ব্যক্তির সাথে "আলাপ" করতাম। আমি মনে করি তারা আপনার ব্যবহৃত সরঞ্জামগুলি বিশেষত ভিসি না বুঝার সূচক।

আমাদের কাছে কমিটের বার্তাগুলির জন্য একটি ফর্ম্যাট রয়েছে যা লগগুলিকে গ্রেপ করা সহজ করে তোলে। আমরা অকেজো বা অস্পষ্ট প্রতিশ্রুতি বার্তাও বঞ্চিত করি।


8

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

তবে আমি কী জানি ...

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

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

আমি মনে করি উত্স ফাইলের মধ্যে পরিবর্তিত লগের প্রতি জোর দেওয়া কেবল মেশিনে অপ্রয়োজনীয় ঘর্ষণ যোগ করছে এবং একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা বাস্তবায়নের অন্যতম উদ্দেশ্যে প্রথম স্থানে পরাস্ত করে।


6

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

উত্স কোডে মন্তব্য সহ, পরিবর্তনগুলির প্রত্নতাত্ত্বিক ইতিহাস নোট হিসাবে রাখা হয়েছিল, কোডের বাইরে মন্তব্য করা হয়নি। এবং হ্যাঁ, তারা এখনও ভিবি 6 কোড শিপিং করছে।


5

সংস্করণ নিয়ন্ত্রণ কোডে এই পরিবর্তনগুলি লগ মন্তব্যগুলিকে প্রতিস্থাপন করতে পারে যদি আপনার দলের ডেভগুলি সঠিকভাবে ব্যবহার করে।

যদি আপনার দল চেক-ইন সম্পর্কে মন্তব্যগুলি যোগ না করছে বা অস্বাস্থ্যকর মন্তব্য করে চলেছে তবে ভবিষ্যতে আপনি যে তথ্য সন্ধান করছেন তা খুঁজে পাওয়া বেশ কঠিন হবে hard

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

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


5

ভিসিএস লগগুলি বিভ্রান্ত করার সময় এবং ভিসিএস সিস্টেমগুলি পরিচালনা করা কঠিন ছিল (সেই দিনগুলি আমি মনে করি কোথাও কোথাও ৮০ এর দশকের ব্যাকএন্ডে) এই দিনগুলির একটি বাকী ver

আপনার সন্দেহ সম্পূর্ণরূপে সঠিক, এই মন্তব্যগুলি সাহায্যের চেয়ে আরও বাধা এবং কোনও আধুনিক ভিসিএস আপনাকে ঠিক কী সন্ধান করছে তা সন্ধান করার অনুমতি দেবে। অবশ্যই, আপনাকে (এবং আপনার সহকর্মীদের) প্রায় ব্যয় করতে হবে। 30-60 মিনিট এই সমস্ত বৈশিষ্ট্যগুলি কীভাবে চালনা করতে হবে তা শিখতে (যা আমি সন্দেহ করি, কারণ এই মন্তব্যগুলি এখনও রয়েছে।

আমি এটি (প্রায়) জর্জের সাথে রাখি। কোডের মন্তব্যগুলি কেবলমাত্র ন্যায়সঙ্গত হয় যদি তারা এমন কিছু ব্যাখ্যা করে যা কোডটিতে তাত্ক্ষণিকভাবে দৃশ্যমান নয়। এবং এটি ভাল কোডে খুব কমই ঘটে। আপনার কোডটিতে প্রচুর মন্তব্য করা দরকার থাকলে এটির নিজস্ব গন্ধ এবং এটি "রিফ্যাক্টর আমাকে!" বলে চিৎকার করে।


4

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

আমাদের লিগ্যাসি পাওয়ারবিল্ডার কোডটি এখনও সেগুলি ব্যবহার করে তবে আমি মনে করি এটি নির্দিষ্ট উঁকি দেওয়ার জন্য স্বাচ্ছন্দ্যের কারণ as এটি বিতরণের জন্যও সংকলিত হয়, সুতরাং (আইএমও তারা হ'ল) ​​ফ্রিগিন ভিসিএসের ইতিহাস ব্যবহার করুন।


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

3

আপনি যদি এসভিএন ব্যবহার করে থাকেন তবে তা করা সময় অপচয় এবং সম্পূর্ণ অকেজো।

এসভিএন এর দোষ ফাংশন রয়েছে। এটি আপনাকে জানাবে যে প্রদত্ত ফাইলে প্রতিটি লাইনটি কখন তৈরি করেছে এবং কখন।


1

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

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

বলা হচ্ছে, কোডে লগ মন্তব্যগুলি পরিবর্তন করা অপেক্ষাকৃত বিরল হওয়া উচিত। আমি প্রতিস্থাপন করছি না যে প্রতিবার কিছুটা কোডের রিফ্যাক্টর করা হয় বা যখন সত্যিকারের বাগ ফিক্স করা হয় তখন লগ মন্তব্যগুলি পরিবর্তন করা উচিত। তবে যদি আসল প্রয়োজনটি ছিল "ফু হ'ল alচ্ছিক" এবং কেউ এসেছেন এবং "প্রবাহের প্রবাহ বারকে সমর্থন করার জন্য" ফু প্রয়োজন "এ পরিবর্তনের প্রয়োজনীয়তাটি এমন একটি বিষয় যা আমি দৃ strongly়ভাবে একটি মন্তব্য যুক্ত করার জন্য বিবেচনা করব। কারণ এর দৃ strong় সম্ভাবনা রয়েছে যে কিছু ভবিষ্যত ব্যবহারকারী / বিশ্লেষক ডাউন স্ট্রিম বার প্রক্রিয়াটি সম্পর্কে অজানা এবং Foo প্রয়োজনীয় কারণে প্রয়োজনীয় ছিল তা সম্পর্কে অজানা এবং Foo কে আবার optionচ্ছিক করতে এবং বার প্রক্রিয়াতে মাথা ব্যথার কারণ জিজ্ঞাসা করবেন।

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


এমন কোনও ভিসিএস রূপান্তর আছে যা প্রতিশ্রুতি বার্তা সংরক্ষণ করে না?
ডেভিড থর্নলে

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

কোনও প্রক্রিয়া পরিবর্তিত হওয়া কেন দরকারী হতে পারে তা ব্যাখ্যা করে একটি মন্তব্য যুক্ত করা এবং কখনও কখনও এটি পরিবর্তিত হওয়ার সময় ব্যাখ্যা করে একটি মন্তব্য যুক্ত করা , তবে আমি মন্তব্যটি পরিবর্তনের লগের আকারে রাখার যোগ্যতা দেখছি না। একটির জন্য, এটি মন্তব্যটির ইউটিলিটিটি কিছুটা ছদ্মবেশ দেয় ("ওহ, এটি কেবলমাত্র একটি পরিবর্তন লগ মন্তব্য") এবং দুটি, এটি আরও উত্সাহিত করে, অপ্রয়োজনীয় পরিবর্তন লগ মন্তব্যগুলিকে (# 1 পুনর্বহাল করা)।
বেন হকিং

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

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

1

আমি কারওই এটির উল্লেখ না করে অবাক হয়েছি, তবে লাইসেন্সের প্রয়োজনীয়তা মেনে চলার আসল কারণটি কি এটি নয়? অর্থাত্ কিছু লাইসেন্স বলে যে আপনি ফাইলটিতে যে কোনও পরিবর্তন করেছেন তা ফাইলের মধ্যেই নোট করতে হবে?


1
কোন লাইসেন্স বলে যে?
ট্রস্প্লাজিও গারজুগলিও

2
আমি এমন এক জায়গায় কাজ করেছি যেখানে সরবনেস অক্সলে সম্মতি দেয় যে তারা উত্স ফাইলগুলিতে পরিবর্তনের দাবি দাবি করেছিল। তারা বছরের পর বছর ধরে পিভিসিএস (ওরফে "ডাইমেনশনস") ব্যবহার করে, তাই সত্যই তাদের কোনও ভার্সন নিয়ন্ত্রণ ছিল না, তবে আমি কী জানতাম?
ব্রুস এডিগার

@ মার্কো: আমার মনে নেই বা আমি এর সাথে লিঙ্ক করতাম।
Sverre রাবেলিয়ার

1
জিপিএলভি 2 এর বিভাগ 2a এর এটির প্রয়োজন। বেশিরভাগ প্রকল্প এটিকে উপেক্ষা করে, কারও কারও কাছে একটি একক "চেঞ্জলগ" ফাইল থাকে (প্রায়শই তাদের ভিসিএস থেকে উত্পন্ন হয়)।
dsas

0

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


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