গিট টান ডিফল্টরূপে রিবেসের পরিবর্তে মার্জ কেন সম্পাদন করে?


71

নিম্নলিখিত পরিস্থিতি বিবেচনা করুন:

  • আপনার কাছে গিট সংগ্রহস্থলের ক্লোন রয়েছে
  • আপনার কয়েকটি স্থানীয় কমিট রয়েছে (কমিটগুলি এখনও কোথাও ঠেলা যায়নি)
  • রিমোট রিপোজিটরিতে নতুন কমিট রয়েছে যা আপনি এখনও মেলেনি

সুতরাং এর মতো কিছু:

নিমজ্জিত কমিটস

আপনি যদি git pullডিফল্ট সেটিংস দিয়ে কার্যকর করেন তবে আপনি এই জাতীয় কিছু পাবেন:

একীভূত অঙ্গীকার

গিটটি একত্রিত হয়ে যাওয়ার কারণ এটি।

যদিও একটি বিকল্প আছে। পরিবর্তে আপনি রিবেস করতে টানতে বলতে পারেন:

git pull --rebase

এবং আপনি এটি পাবেন:

রি-বেস

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

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

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

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



অন্য সমস্যাটি হ'ল যদি আপনি দুর্ঘটনাক্রমে মাস্টার প্রতিশ্রুতিবদ্ধ হন, তবে একত্রীকরণ করুন যা মার্জ হয়েছে, মার্জটি স্বাভাবিক দেখানো সত্ত্বেও দুটি মাস্টার সিঙ্কের বাইরে চলে যেতে পারে। এই কারণেই আমার টান ওরফেতে - কেবলমাত্র অন্তর্ভুক্ত রয়েছে।
Ixrec

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

1
@ ইভান সোর্স ট্রি এর এটির গ্রাফ দৃষ্টিভঙ্গি পরিবর্তন করা উচিত নয়। এটি গ্রাফটি সঠিকভাবে উপস্থাপন করে।
jpmc26

4
প্রতারিত ভোটারদের জন্য, দয়া করে নোট করুন যে উত্তর বিষয়বস্তু আমি গৃহীত সবচেয়ে স্পষ্টভাবে হয় না সদৃশ প্রশ্ন দাবি করছি উপস্থিত রয়েছে।
jpmc26

উত্তর:


56

যে সিদ্ধান্তটি নিয়েছেন, তার কাছ থেকে শুনেই না কেন মার্জটি ডিফল্ট, তা নিশ্চিত করে জানা শক্ত।

এখানে একটি তত্ত্ব ...

গিট অনুমান করতে পারে না যে প্রতিটি টানা --rebase করা ঠিক আছে। শুনুন কীভাবে। "প্রতিটি টান রিবেস করুন।" আপনি যদি টান অনুরোধ বা অনুরূপ ব্যবহার করেন তবে কেবল ভুল শোনাচ্ছে। আপনি কি টানার অনুরোধে পুনর্বাসনা করবেন?

এমন একটি দলে যা গিটকে কেবলমাত্র কেন্দ্রিক উত্স নিয়ন্ত্রণের জন্য ব্যবহার করছে না ...

  • আপনি উপরের দিকে এবং ডাউন স্ট্রিম থেকে টানতে পারেন। কিছু লোক ডাউন স্ট্রিম থেকে, অবদানকারীদের থেকে ইত্যাদি টানতে প্রচুর কাজ করে

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

গিট একটি বৃহত উচ্চ বিতরিত দলের জন্য তৈরি করা হয়েছিল যেখানে প্রত্যেকে একক কেন্দ্রীয় রেপোতে টানতে এবং ধাক্কা দেয় না। সুতরাং ডিফল্ট বোঝা যায়।

  • বিকাশকারীরা যারা কখন পুনর্বাসনা করা ঠিক হয় তা জানে না তারা ডিফল্টরূপে একীভূত হবে।
  • বিকাশকারীরা চাইলে পুনরায় শোধ করতে পারেন।
  • যে প্রতিশ্রুতিবদ্ধদের প্রচুর টান এবং প্রচুর টান রয়েছে তারা ডিফল্ট পান যা তাদের পক্ষে সবচেয়ে উপযুক্ত।

অভিপ্রায় প্রমাণের জন্য, লিনাস টরভাল্ডসের একটি পরিচিত ইমেলের লিঙ্কটি যখন তাদের পুনঃব্যবস্থা করা উচিত নয় সে সম্পর্কে তার মতামতের সাথে এখানে একটি লিঙ্ক। ড্রাইভ-ডেভেল গিট পুল ইমেইল

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

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

পরামর্শ: ডিফল্ট পরিবর্তন করার নীতি তৈরি করবেন না। আপনি যখনই গিটকে একটি বড় গ্রুপ বিকাশকারীদের সাথে একত্রে রাখেন তখন কিছু বিকাশকারী গিটকে এত গভীরভাবে বুঝতে পারবেন না (আমার অন্তর্ভুক্ত)। তারা গুগল, এসও, কুকবুকের পরামর্শ git checkout --ours <path>নেবে এবং তারপরে বিস্মিত হবে যে কিছু জিনিস কেন কাজ করে না, উদাহরণস্বরূপ ফাইলটির ভুল সংস্করণ কেন পাওয়া যায়? আপনার স্বাদ অনুসারে আপনি আপনার স্থানীয় পরিবেশটি সর্বদা সংশোধন করতে পারেন, উপাধি তৈরি করতে পারেন।


5
ডিফল্টটি পরিবর্তন না করার জন্য +1 - আপনার নিজের গিট ওয়ার্কফ্লোটি ঘূর্ণন করার চেয়ে এটি উপস্থিত থাকা ভাল করে ধরা (যেমন আটলাসিয়ান atlassian.com / গীত / টিউটোরিয়ালস / কম্পম্পারিং-ওয়ার্কফ্লোস /… দ্বারা নথিভুক্ত যে কোনও একটি )
রব চার্চ

1
উত্তরের জন্য ধন্যবাদ. ডাউন স্ট্রিম থেকে টানা সম্পর্কে তথ্যটি আমার অনুপস্থিত ছিল। এছাড়াও, আকর্ষণীয়ভাবে যথেষ্ট, আপনি যে লিঙ্কটি দিয়েছেন তা হ'ল আমি কী অর্জন করতে চাই তা উত্সাহিত করে: "লোকেরা তাদের ব্যক্তিগত গাছগুলি (তাদের নিজস্ব কাজ) পুনঃবাস করতে পারে (এবং সম্ভবত তাদের উচিত) " "
jpmc26

2
@jpmc গ্রেট প্রকৃতপক্ষে. ব্যক্তিগত গাছগুলি ছেড়ে দেওয়া অনেকগুলি বিভ্রান্তিকর ক্রডকে ভাগ করে নেওয়া ইতিহাস থেকে দূরে রাখতে পারে। আমি এটা করি. এটি কখন গুরুত্বপূর্ণ নয় তা কখন করা উচিত নয় তা নিয়ে স্পষ্টতা।
জোশপ

"কিছু বিকাশকারী গিটকে এত গভীরভাবে বুঝতে পারবেন না"। রিবেস গিটের একটি সুপার অভিনব ("গভীর", ইত্যাদি) বৈশিষ্ট্য নয়। আপনি কি সত্যিই বুঝতে এই জিনিস কঠিন মনে করেন? আমি মনে করি যে এটি দেবকে অযোগ্য বলার জন্য একটি ট্রিগার হওয়া উচিত।
ভিক্টর ইয়ারেমা

15

আপনি যদি পুনর্বাসনের জন্য গিট ম্যানপেজটি পড়েন তবে এটিতে বলা হয়েছে :

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

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

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


3
@ ইভান আইএমএইচও "কাজ করে না তবে দেখতে বেশ সুন্দর" এমন একটি বিষয় যা কেবলমাত্র আইটি নয়, ফ্যাশন শিল্পের জন্য সংরক্ষিত থাকা উচিত। আইএমএইচও গিটকে এটিকে অপসারণ করা উচিত কারণ এটি স্পষ্টতই অনেক লোককে ভাবতে উত্সাহ দেয় যে পদার্থের চেয়ে স্টাইল আরও গুরুত্বপূর্ণ।
gbjbaanb

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

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

6
দস্তাবেজগুলি "রিবেস করবেন না" বলে না। এটি বলে, "এমন পরিবর্তনগুলি পুনর্বাসনা করবেন না যা অন্য লোকের প্রবাহে থাকে " " এই দুজনের মধ্যে পার্থক্যের একটি পৃথিবী রয়েছে। লিনাস নিজেই ইতিহাস সংগঠিত করার জন্য কিছুটা প্রতারণার পরামর্শ দিয়েছেন , যেমনটি গৃহীত উত্তরের লিঙ্কে দেখা যাবে। এবং কোন সরঞ্জাম কীভাবে জানবে যে কোন কমিটগুলি অপ্রাসঙ্গিক (বিশেষত যদি সরঞ্জামগুলি একটি অ-রৈখিক ইতিহাস বিশ্লেষণ করতে অসুবিধা হয়!), এবং আপনি কীভাবে বুঝতে পারবেন যে আপনি কোন প্রতিশ্রুতি দিয়ে আলাদা করতে চান (বিশেষত ইতিহাসের খোঁড়াখুঁজি না করেই!)? আপনি কোনও নির্দিষ্ট পরিস্থিতি সম্পর্কে সতর্কতার সাথে শব্দটি গ্রহণ করছেন a
jpmc26

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

12

আপনি সঠিক, ধরে নিচ্ছেন আপনার কাছে কেবলমাত্র একটি স্থানীয় / পরিবর্তিত সংগ্রহস্থল রয়েছে। তবে, উদাহরণস্বরূপ, দ্বিতীয় স্থানীয় পিসি রয়েছে বিবেচনা করুন।

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

আপনি দেখতে পাচ্ছেন যে এটি খুব পরিস্থিতিগত, তবে বেস কৌশলটি অ-বিশেষ / সহযোগীতার ক্ষেত্রে অনেক বেশি বাস্তব হিসাবে মনে হয় (আমার কাছে)।


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


1
"রিবাজেসের পরে সম্ভবত খুব সম্ভবত পুরানো কমিটগুলি নতুন পরিবর্তনগুলি অনুসরণ করতে পারে" - এটি মার্জগুলির সাথেও ঘটে, তবে এটি কেন আপনার (সম্ভবত) এটি বোঝার জন্য সুন্দর গ্রাফের প্রয়োজন। যে সময়ে প্রতিশ্রুতিবদ্ধ হওয়ার সময়টি সম্ভবত এটি সংযুক্ত হওয়ার অনেক আগে হতে পারে যা এটিকে এই শাখায় নিয়ে আসে।
স্টিভ জেসোপ

6

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

আমি git pull --rebaseআমার প্রাইভেট রেপোতে প্রচুর পরিমাণে ব্যবহার করি , তবে এমনকি এটির একটি সম্ভাব্য অসুবিধাও রয়েছে, এটি হ'ল আমার ইতিহাসটি HEADআর গাছটির প্রতিফলন করে না কারণ আমি বাস্তবে এটিতে কাজ করেছি।

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

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

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

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