আমরা সাবভারশন গিকস এবং আমরা মার্চুরিয়াল [বন্ধ] এর সুবিধাগুলি জানতে চাই


22

আমি একটি সাবসার্জন গিখ পড়ে আমি কেন মার্চুরিয়াল বা গিট বা অন্য কোনও ডিভিসিএস বিবেচনা করব না বা বিবেচনা করব না

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

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

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

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

একটি শাখা তৈরির পরে নিম্নলিখিত 60 কে + ফাইলগুলির চেকআউটটি কিছুটা সময় নেয় তবে এটি আমরা যে কোনও উত্স নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করব তা সমস্যা an

এমন কোনও ডিভিসিএসের কিছু সুবিধা রয়েছে যা আমরা দেখছি না এটি আমাদের জন্য খুব উপকারী হবে?


এটি প্রায় মনে হয় আপনি ইতিমধ্যে ডিভিসিএস হিসাবে এসভিএন ব্যবহার করছেন (শাখা প্রশাখার বিষয়ে, যাইহোক)। আমি নিশ্চিত যে মার্চুরিয়াল এসভিএন (এবং তদ্বিপরীত) এর সাহায্যে প্রায় সব কিছু করতে পারে; তাহলে প্রশ্নটি হল, কোনটি আপনার নির্দিষ্ট বিকাশের দৃশ্যের জন্য ব্যবহার করা সহজ এবং বেশি সুবিধাজনক? আমি মনে করি আপনি এটি মূল্যবান কিনা তা নিজের জন্য একটু দেখার জন্য মার্চুরিয়াল চেষ্টা করে দেখতে হবে
ক্যামেরন

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

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

উত্তর:


11

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

ডিভিসিএস বোঝার জন্য চিন্তাভাবনার একটি মৌলিক পরিবর্তন প্রয়োজন। আপনি নিজেকে জিজ্ঞাসা করতে পারেন যে আপনি যতগুলি শাখাগুলি চান তার সাথে কী করবেন যা আপনি চান তার সাথে ভাগ করা হয়েছে এবং কেবল সেগুলি। এর মধ্যে এমন শাখা রয়েছে যা কেবলমাত্র আপনি নিজেরাই দেখেন।

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

অন্তর্বর্তী স্থানীয় কমিটগুলি করার ক্ষমতাটি এটি নিজেরাই মূল্যবান। এটি আপনার নিজের জন্য কেবল অভিজ্ঞতা অর্জন করতে হবে।

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


2
+1 টি! এছাড়াও, যদি আপনি পার্কিয়ালটিকে একটি সুষ্ঠু এবং পুরো চেষ্টা করে দেন তবে আমি নিশ্চিত যে আপনি ফিরে যেতে চাইবেন না।
পিট

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

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

3
আমি মনে করি যে এই উত্তরটি এই সত্যটি হারিয়েছে যে মূল পোস্টারটি ইতিমধ্যে এসভিএনকে এমনভাবে কাজ করতে বাধ্য করছে যা কোনও ডিভিসিএস ওয়ার্কফ্লোয়ের অনেক কাছাকাছি এসভিএন-এর ব্যবহারকারীদের পক্ষে কার্যক্ষম হিসাবে বিবেচনা করবে। সংক্ষেপে তাদের ইতিমধ্যে ডিভিসিএস মানসিকতা রয়েছে তাই চিন্তাভাবনার কোনও মৌলিক স্থানান্তর প্রয়োজন নেই।
মার্ক বুথ

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

1

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

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


আমরা কি সময় পরিবর্তন করতে চাই? না, বিশেষত যখন আমরা গত 2 বছরে কেবল এসএনএন-তে স্যুইচ করেছিলাম তা নয়। তোমার মন্তব্যের জন্য ধন্যবাদ.
ম্যাট

1

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

আপনার দৃষ্টিকোণ থেকে, ডিভিসিএসের এসভিএন-এর মাধ্যমে নিম্নলিখিত উল্লেখযোগ্য সুবিধা থাকবে:

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

যে শেষ পয়েন্ট, আপনি বলেন

দ্বন্দ্বগুলি দ্বন্দ্ব, আমি কোডটি বুঝতে যথেষ্ট স্মার্ট না হলে কোনও সিস্টেম এটি বেশিরভাগ সময়ে কীভাবে পেতে পারে তা আমি দেখতে পাচ্ছি না।

ব্যবহার থেকে সুইচিং ইন hgব্যবহার করে একচেটিয়াভাবে svnএকা এবং তারপর gitsvnএটা আমার অভিজ্ঞতা মার্জ আনা গেছে অনেক সহজ এবং কষ্ট সঙ্গে বিনামূল্যে hgএবং gitsvnতুলনায় এরা কারা svnsvn(অন্তত আমরা যে সংস্করণটি ব্যবহার করি) এর সাথে মার্জগুলি উল্লেখযোগ্যভাবে আরও দ্বন্দ্ব তৈরি করে যা ম্যানুয়ালি সমাধান করা দরকার।

এসভিএন-এ মার্জ হওয়া আরও কঠিন হওয়ার একটি কারণ হ'ল এটি আপনাকে পৃথক পৃথক প্রতিটি লাইনের জন্য দুটি বিকল্প দেয়,

  • আপনি যে শাখায় মার্জ হয়ে যাচ্ছেন তা থেকে পাঠ্য
  • আপনি যে শাখায় মার্জ হয়ে যাচ্ছেন সেই পাঠ্য

যখন কোনও ডিভিসিএস থেকে মার্জ করা সাধারণত আপনাকে তৃতীয় বিকল্প দেয়, যা

  • উভয় শাখার সাধারণ পূর্বপুরুষের পাঠ্য যা আপনি মার্জ করছেন

এটি কেবল কতটা উপকারী তা অবমূল্যায়ন করবেন না, এটি আপনাকে পরিবর্তনের জন্য একটি সহজ দুটি উপায়ে পার্থক্যের চেয়ে আরও বেশি ভাল প্রসঙ্গ সরবরাহ করে।

সব মিলিয়ে, আমি আপনাকে এটি ব্যবহার করে দেখার পরামর্শ দিচ্ছি। gitsvnএবং এর মতো সরঞ্জামগুলির সাহায্যে hgsubversionআপনি এগুলিকে আপনার বর্তমান এসভিএন রেপো ব্যবহার করে দেখতে পারেন

দ্রষ্টব্য, প্রথম স্থানে ক্লোন তৈরি করা একটি রাজকীয় পিআইটিএ, তবে একবার আপনি এটিটি শেষ করার পরে, আপনার ডিভিসিএসের সর্বাধিক শক্তি আপনার বিদ্যমান সিভিসিএসের সাথে পাবেন।


1
আপনি যে ক্ষেত্রে উল্লেখ করেছেন তাতে এসভিএন কোনও বিরোধকে পপ করে না। এটি তখনই পপ আপ হয় যখন আপনি উভয় একই লাইন পরিবর্তন করেন। মার্জ করা সাধারণত ফাইলের নাম / চলনগুলি বা এসএনএন-এ যুক্ত / মুছতে সমস্যা হয় কারণ এটি ডিরেক্টরিটি মার্জ করার ভাল পরিবর্তন পরিচালনা করে না। এসভিএন মার্জ আপনাকে সেই 2 টির চেয়ে বেশি বিকল্প দেয়, সাধারণত আপনি "আমার তখন ব্যবহার করুন" ব্যবহার করুন আপনি সাধারণত উভয় সেট পরিবর্তনের রাখতে চান, সেগুলি উভয়ই মুছবেন না!
gbjbaanb

@gbjbaanb - আমি যা খুঁজে পেয়েছি তা নয়, এ কারণেই আমি আমার এসভিএন-এর অভিজ্ঞতার সাথে যোগ্যতা অর্জন করেছি at least the version I've used। আমার বোধগম্যতা হল যে এসএনএন এর সর্বশেষতম সংস্করণটি সাধারণ পূর্বপুরুষদের সম্পর্কে বুঝতে পারে তবে আমার সে সম্পর্কে কোনও অভিজ্ঞতা নেই এবং আমার সন্দেহ হয় যে সেখানে অনেকগুলি সার্ভার রয়েছে যার মধ্যে একই সমস্যা রয়েছে এসএনএন-র পুরানো সংস্করণ রয়েছে।
মার্ক বুথ

ঘটনাক্রমে, আমি এই সত্যটি পছন্দ করি hg(এবং প্রায় অবশ্যই git, তবে আমি এটি চেষ্টা করি নি) আপনি তিনটি ক্লাস সহ একটি ফাইল নিতে পারেন, এটি একটি শ্রেণীর সাথে তিনটি ফাইলে বিভক্ত করতে পারেন, তারপরে পরে একটি শাখার মধ্যে পরিবর্তনের সাথে মার্জ করতে পারেন 'সম্মিলিত' ফাইল এবং পৃথক ফাইলের সাথে একটি শাখা যেমন পৃথক শ্রেণিতে পরিবর্তিত হয় সঠিক ফাইলগুলিতে প্রয়োগ হয়। খাঁটি যাদু * 8 ')
মার্ক বুথ

1
gbjbaanb সঠিক; আপনার বর্ণিত দৃশ্যে এসভিএন-এর বিরোধ নেই have এটি নিজের কাছে প্রদর্শন করা বেশ সহজ।
জেরেমি

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

0

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

তবে, বাস্তবে আমি সাবভারশন থেকে সরে যাইনি। আমি আমার স্থানীয় এসএনএন ক্লায়েন্ট হিসাবে গিটটি ব্যবহার করছি।

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