গত কয়েক সপ্তাহ ধরে আমি এটি বন্ধ করে দিয়েছি। এটি এখনও বিকশিত, তবে এটি সহায়ক হতে পারে। দয়া করে মনে রাখবেন আমি একজন পারফোর্স কর্মচারী।
গিট ব্যবহারকারীদের জন্য পারফোরসের একটি ভূমিকা
গিট থেকে পেরফোর্স বা পেরফর্স থেকে গিটের দিকে যাওয়া কোনও তুচ্ছ-তাত্পর্যপূর্ণ বলা। দু'টি হাতিয়ার হওয়ার জন্য যা অবশ্যই একই কাজটি করে, তাদের পদ্ধতিকে আরও আলাদা করা যায় না। এই সংক্ষিপ্ত লিখিত লেখাটি গিট থেকে আগত নতুন পারফোর্স ব্যবহারকারীদের তারা যে নতুন পৃথিবীতে রয়েছে তা বুঝতে সহায়তা করবে।
আমরা ডুব দেওয়ার আগে একটি সংক্ষিপ্ত পথ; আপনি যদি গিটকে পছন্দ করেন তবে আপনি পারফোরসের সাথে গিটটি বেশ ভাল ব্যবহার করতে পারেন। আমরা গিট ফিউশন নামে একটি সরঞ্জাম সরবরাহ করি যা পারফোর সার্ভারের সাথে সিঙ্কে রাখা গিট সংগ্রহস্থলগুলি তৈরি করে। গিট এবং পারফোর্স লোকেরা একই কোডে কাজ করে সম্প্রীতিতে থাকতে পারে, বেশিরভাগ সংস্করণ নিয়ন্ত্রণের তাদের সহকর্মীদের পছন্দ দ্বারা প্রভাবিত হয় না। পারফোর্স ওয়েবসাইট থেকে গিট ফিউশন 13.3 উপলব্ধ । পারফোর অ্যাডমিনিস্ট্রেটর দ্বারা এটি ইনস্টল করার দরকার নেই, তবে আপনি এটি ইনস্টল করলে দেখতে পাবেন যে এর সংগ্রহস্থলের স্লাইসিং বৈশিষ্ট্যটি গিট ব্যবহারকারী হিসাবে বেশ কার্যকর হতে পারে।
আপনি যদি নিজের প্রশাসককে গিট ফিউশন ইনস্টল করতে রাজি করতে না পারেন তবে গিট নিজেই গিট-পি 4 নামক একটি পারফোরস বাইন্ডিং নিয়ে আসে যা আপনাকে গিফটি পেরফর্ম ওয়ার্ক স্পেসে ফাইল পরিবর্তন এবং জমা দেওয়ার জন্য ব্যবহার করতে দেয়। এতে আরও তথ্য পাওয়া যাবে: https://git.wiki.kernel.org/index.php/GitP4
এখনো এখানে? ভাল, চলুন পেরফোর্স তাকান।
সাজানোর জন্য কিছু পরিভাষা পার্থক্য
বিশদে যাওয়ার আগে আমাদের সংক্ষিপ্তভাবে গিট এবং পারফোর্সের মধ্যে কয়েকটি পরিভাষা পার্থক্য আবরণ করা দরকার।
প্রথমটি চেকআউট । গিটে এইভাবে আপনি কোনও প্রদত্ত শাখা থেকে আপনার কর্মক্ষেত্রে কোডের একটি অনুলিপি পাবেন। পেরফোর্সে আমরা কমান্ড লাইন থেকে বা আমাদের জিইউআই পি 4 ভি থেকে "সর্বশেষ সংশোধন পান" এর কাছ থেকে এটি একটি সিঙ্ককে কল করি । পেরফোর্স পি 4 ভি বা কমান্ড লাইন থেকে চেকআউট শব্দটি ব্যবহার করে এর p4 edit
অর্থ দাঁড়ায় যে আপনি সংস্করণ নিয়ন্ত্রণ সিস্টেম থেকে কোনও ফাইল পরিবর্তন করার পরিকল্পনা করছেন। এই নথির বাকী অংশে, আমি শব্দের পারফোরস অর্থে চেকআউটটি ব্যবহার করব।
দ্বিতীয় গীত হয় কমিট লাগুক আর নাই লাগুক বনাম জমা । যেখানে আপনি গিট প্রতিশ্রুতিবদ্ধ হবে আপনি পারফোর্সে জমা দেবেন। সমস্ত ক্রিয়াকলাপ ভাগ করে নেওয়া পারফোর্স সংস্করণ পরিষেবাদির বিপরীতে ঘটে, পারফোরসের কোনও সমতুল্য নেই git push
। তেমনি আমাদেরও নেই pull
; উপরের সিঙ্ক কমান্ডটি আমাদের জন্য ফাইলগুলি গ্রহণের যত্ন নেয়। আপনি নীচে সংক্ষিপ্তভাবে বর্ণিত আমাদের P4Sandbox সরঞ্জামটি ব্যবহার না করা পর্যন্ত পারফোর্সে খাঁটি স্থানীয় জমা দেওয়ার কোনও ধারণা নেই।
পারফোর্সের মূল ধারণাগুলি
আমি যদি দুটি মূল ধারণায় পারফোরসকে সরল করে তুলি তবে আমি ডিপো এবং কর্মক্ষেত্রের উপরে ফোকাস করব। পারফোর্স ডিপো হ'ল পারফোর্স সার্ভারে থাকা ফাইলগুলির একটি ভান্ডার। পারফোর্স সার্ভারে যেকোন সংখ্যক ডিপো থাকতে পারে এবং প্রতিটি ডিপোতে যে কোনও সংখ্যক ফাইল থাকতে পারে। প্রায়শই আপনি শুনতে পাবেন পারফোর্স ব্যবহারকারীরা ডিপো এবং সার্ভারকে আন্তঃবিনে ব্যবহার করতে পারেন তবে তারা আলাদা। পারফোর্স সাইটটিতে একাধিক সার্ভার থাকতে পারে, তবে বেশিরভাগ ক্ষেত্রে সমস্ত ফাইলই একটি সার্ভারে থাকে।
পারফোর্স ওয়ার্কস্পেস বা ক্লায়েন্ট হ'ল সিস্টেমের এমন একটি বস্তু যা পারফার্স সার্ভারে একটি সেট ফাইলের ব্যবহারকারীর ফাইল সিস্টেমে কোনও স্থানে ম্যাপ করে। প্রতিটি ব্যবহারকারীর তারা ব্যবহার করা প্রতিটি মেশিনের জন্য একটি ওয়ার্কস্পেস রয়েছে এবং প্রায়শই ব্যবহারকারীদের একই মেশিনের জন্য একাধিক কর্মক্ষেত্র থাকবে। ওয়ার্কস্পেসের সবচেয়ে গুরুত্বপূর্ণ অংশটি হ'ল ওয়ার্কস্পেস ম্যাপিং বা দৃশ্য।
ওয়ার্কস্পেস ভিউ ডিপোতে থাকা ফাইলগুলির সেট নির্দিষ্ট করে যা স্থানীয় মেশিনে ম্যাপ করা উচিত। এটি গুরুত্বপূর্ণ কারণ একটি ভাল সুযোগ রয়েছে যে আপনি সার্ভারে উপলব্ধ সমস্ত ফাইলই চান না। একটি ওয়ার্কস্পেস ভিউ আপনাকে আপনার পছন্দসই সেটটি নির্বাচন করতে দেয়। এটি লক্ষণীয় গুরুত্বপূর্ণ যে কোনও ওয়ার্কস্পেস একাধিক ডিপো থেকে সামগ্রী ম্যাপ করতে পারে তবে কেবল একটি সার্ভার থেকে সামগ্রী ম্যাপ করতে পারে।
এই ক্ষেত্রে পারফোর্সকে গিটের সাথে তুলনা করতে, গিটের সাথে আপনি নিজেরাই আগ্রহী গিট রেপোগুলির সেটটি বেছে বেছে বেছে বেছে নিন Each এর সুবিধাটি আপনার পক্ষে করার মতো কোনও কনফিগারেশন নেই; আপনি যে বিষয়গুলির যত্ন নেন তার একটি গিট ক্লোন করেন এবং আপনি সম্পন্ন হন। এটি বিশেষত দুর্দান্ত যদি আপনি কেবল এক বা দুটি সংগ্রহের সাথে কাজ করেন। পারফোর্সের সাথে আপনার পছন্দের কোডের বিটগুলি বাছাই করতে এবং বেছে নিতে কিছুটা সময় ব্যয় করতে হবে।
অনেক পারফোর্স শপগুলি স্ট্রিম ব্যবহার করে যা স্বয়ংক্রিয়ভাবে একটি ওয়ার্কস্পেস ভিউ তৈরি করতে পারে বা স্ক্রিপ্ট বা টেম্পলেট ওয়ার্কস্পেস ব্যবহার করে তারা ভিউ তৈরি করে। একইভাবে অনেকে তাদের ব্যবহারকারীদের তাদের কর্মক্ষেত্র তৈরি করতে রেখে দেয়। একটি কর্মক্ষেত্রে বেশ কয়েকটি মডিউল ম্যাপ করতে সক্ষম হওয়ার একটি সুবিধা হ'ল আপনি সহজেই একটি চেকিনে একাধিক কোড মডিউল সংশোধন করতে পারেন; আপনার গ্যারান্টি দেওয়া যেতে পারে যে একইরকম ক্লায়েন্ট ভিউ সহ যে কেউ আপনার চেকিনে সিঙ্ক করে সেগুলির সমস্ত কোড সঠিক অবস্থায় থাকবে। এটি অত্যধিক নির্ভর কোড যদিও বাড়ে; গিটের বাধ্যতামূলক বিচ্ছিন্নতা আরও ভাল মডুলারালিটি হতে পারে। শুকরিয়া পারফর্সস পাশাপাশি কঠোর মডুলারিটি সমর্থন করতে পারে। আপনি কীভাবে সরঞ্জামটি ব্যবহার করতে চান তা এই সমস্ত প্রশ্ন।
ওয়ার্কস্পেস কেন?
আমি মনে করি গিট থেকে আসার সময় এটি অনুভব করা সহজ যে পুরো ওয়ার্কস্পেস ধারণাটি যতটা মূল্যবান তার চেয়ে বেশি সমস্যা। কয়েকটি গিট রেপো ক্লোনিংয়ের তুলনায় এটি নিঃসন্দেহে সত্য। যেখানে ওয়ার্কস্পেসগুলি আলোকিত হয়, এবং পার্ফোর্স এত বছর পরেও ব্যবসায় রয়েছে তার কারণ হ'ল ওয়ার্কস্পেসগুলি বিকাশকারীদের জন্য বহু মিলিয়ন ফাইল প্রকল্পগুলি প্যারেন্ট করার এক দুর্দান্ত উপায়, যখন এখনও সমস্ত উত্সকে একসাথে আঁকতে সহজ এবং নির্গমন করা সহজ করে তোলে works একটি অনুমোদিত উত্স। পারফর্সেস যেভাবে স্কেল করতে পারে তার অন্যতম মূল কারণ ওয়ার্কস্পেস।
ওয়ার্কস্পেসগুলিও দুর্দান্ত যে ডিপোতে থাকা ফাইলগুলির বিন্যাস এবং ব্যবহারকারীর মেশিনে লেআউট প্রয়োজন হলে আলাদা হতে পারে। অনেক সংস্থাগুলি তাদের কোম্পানির সংস্থার প্রতিচ্ছবি করতে তাদের ডিপোটি সাজিয়ে তোলে যাতে ব্যবসায়ের ইউনিট বা প্রকল্পের মাধ্যমে লোকেরা বিষয়বস্তু খুঁজে পাওয়া সহজ হয়। তবে তাদের বিল্ড সিস্টেম এই শ্রেণিবিন্যাস সম্পর্কে কম যত্ন নিতে পারে না; কর্মক্ষেত্রটি তাদের ডিপো হায়ারার্কিকে পুনরায় তৈরি করতে দেয় যা তাদের সরঞ্জামগুলিতে অর্থবোধ করে। আমি এটি এমন সংস্থাগুলি দ্বারাও ব্যবহার করে দেখেছি যারা চূড়ান্তভাবে অবিচ্ছেদ্য বিল্ড সিস্টেম ব্যবহার করছে যা কোডকে খুব নির্দিষ্ট কনফিগারেশনের মধ্যে থাকতে হবে যা মানুষের কাছে সম্পূর্ণ বিভ্রান্তিকর। ওয়ার্কস্পেসগুলি এই সংস্থাগুলিগুলিকে এমন একটি উত্স হায়ারার্কির অনুমতি দেয় যা মানব নাব্য হয় যখন তাদের বিল্ড সরঞ্জামগুলি তাদের প্রয়োজনীয় কাঠামোটি পায়।
পারফফোর্সের ওয়ার্কস্পেসগুলি কেবল কোনও ব্যবহারকারী যে ফাইলের সাথে কাজ করতে চায় তার সেট ম্যাপ করতে ব্যবহৃত হয় না, তবে ব্যবহারকারীরা প্রতিটি ফাইলের কোন সংশোধনগুলি সিঙ্ক করেছে তা সঠিকভাবে অনুসন্ধান করতে এটি সার্ভার দ্বারা ব্যবহৃত হয়। এটি কোন ফাইল আপডেট করতে হবে তা দেখার জন্য ফাইলগুলি স্ক্যান না করে সিঙ্ক করার সময় সিস্টেমকে ব্যবহারকারীদের কাছে সঠিক ফাইলগুলি প্রেরণ করতে দেয়। বিপুল পরিমাণে ডেটা সহ এটি একটি দুর্দান্ত পারফরম্যান্সের জয় হতে পারে। এটি এমন শিল্পগুলিতে খুব জনপ্রিয় যেগুলির নিরীক্ষণের খুব কড়া নিয়ম রয়েছে; পারফফোর্স অ্যাডমিনরা সহজেই কোন বিকাশকারী কোন ফাইল সিঙ্ক করেছে তা ট্র্যাক এবং লগ করতে পারে।
পেরফোর্স ওয়ার্কস্পেসের সম্পূর্ণ পাওয়ার সম্পর্কে আরও তথ্যের জন্য কনফিগারিং পি 4 পড়ুন ।
সুস্পষ্ট চেকআউট বনাম অন্তর্নিহিত চেকআউট
গিট থেকে পেরফোর্স এ যাওয়ার জন্য ব্যবহারকারীদের জন্য সবচেয়ে বড় চ্যালেঞ্জগুলির মধ্যে একটি হ'ল সুস্পষ্ট চেকআউট ধারণা। আপনি যদি ফাইলগুলি পরিবর্তন করার গিট / এসভিএন / সিভিএস ওয়ার্কফ্লোতে অভ্যস্ত হন এবং তারপরে সংস্করণ নিয়ন্ত্রণ সিস্টেমকে আপনার কাজটি সন্ধান করার জন্য বলছেন তবে এটি চরম বেদনাদায়ক স্থানান্তর হতে পারে।
সুসংবাদটি হ'ল আপনি যদি এটি বেছে নেন তবে আপনি পারফোর্সে একটি গিট স্টাইলের ওয়ার্কফ্লো দিয়ে কাজ করতে পারেন। পারফোর্সে আপনি আপনার কর্মক্ষেত্রে "অলরাইট" বিকল্পটি সেট করতে পারেন। এটি পারফোরকে বলবে যে সমস্ত ফাইল লিখিতযোগ্য বিট সেট সহ ডিস্কে লেখা উচিত। তারপরে আপনি স্পষ্টভাবে পারফোর্সকে না বলে আপনার ইচ্ছামত যে কোনও ফাইল পরিবর্তন করতে পারেন। পারফফোর্সকে আপনি যে পরিবর্তনগুলি করেছেন তার সাথে পুনর্মিলন করার জন্য আপনি "পি 4 স্ট্যাটাস" চালাতে পারেন। এটি যথাযথ হিসাবে অ্যাড, সম্পাদনা, এবং মোছার জন্য ফাইলগুলি খুলবে। এইভাবে কাজ করার সময় আপনি সার্ভার থেকে নতুন সংশোধনগুলি পেতে "p4 সিঙ্ক" এর পরিবর্তে "p4 আপডেট" ব্যবহার করতে চান; "পি 4 আপডেট" সিঙ্ক করার আগে পরিবর্তনের জন্য পরীক্ষা করে তাই আপনি যদি "পি 4 স্ট্যাটাস" না চালিয়ে থাকেন তবে আপনার স্থানীয় পরিবর্তনগুলিকে আটকাবে না।
সুস্পষ্ট চেকআউট কেন?
আমার প্রায়শই একটি প্রশ্ন হ'ল "আপনি কখনই সুস্পষ্ট চেকআউটটি ব্যবহার করতে চান?" এটি প্রথমে ব্লাশটিকে ক্রেজি ডিজাইনের সিদ্ধান্ত বলে মনে হতে পারে তবে সুস্পষ্ট চেকআউটের কিছু শক্তিশালী সুবিধা রয়েছে।
সুস্পষ্ট চেকআউট ব্যবহার করার একটি কারণ হ'ল এটি বিষয়বস্তু পরিবর্তনের জন্য ফাইলগুলি স্ক্যান করার প্রয়োজনীয়তা সরিয়ে দেয়। পার্থক্যগুলি সন্ধান করার জন্য প্রতিটি ফাইলের জন্য হ্যাশ গণনা করার জন্য ছোট প্রকল্পগুলি সহ, যদিও আমাদের ব্যবহারকারীর অনেকের কাছে একটি ওয়ার্কস্পেসে কয়েক মিলিয়ন ফাইল থাকে এবং / অথবা ফাইলগুলি বড় হয় না তবে 100 মেগাবাইট আকারের ফাইল থাকে। এই ক্ষেত্রে সমস্ত হ্যাশ গণনা করা অত্যন্ত সময় সাপেক্ষ। সুস্পষ্ট চেকআউট পারফোর্সকে ঠিক কী ফাইলগুলির সাথে কাজ করা দরকার তা জানতে দেয়। গেম, মুভি এবং হার্ডওয়্যার ইন্ডাস্ট্রির মতো বড় ফাইল শিল্পে পারফোরস এত জনপ্রিয় এই কারণগুলির একটি কারণ।
আরেকটি সুবিধা হ'ল স্পষ্টত চেকআউট হ'ল একত্রে অ্যাসিনক্রোনাস যোগাযোগের ব্যবস্থা যা বিকাশকারীদের সাধারণত তাদের সমকক্ষরা কী কাজ করছে বা কমপক্ষে কোথায় তা জানতে দেয়। এটি আপনাকে জানাতে পারে যে আপনি একটি নির্দিষ্ট অঞ্চলে কাজ করা এড়াতে চাইতে পারেন যাতে অযথা সংঘাত এড়ানো যায়, বা এটি আপনাকে সতর্ক করতে পারে যে দলের একজন নতুন বিকাশকারী কোডে বিভ্রান্ত হয়েছে যে সম্ভবত তাদের প্রয়োজন নেই সম্পাদনা করা। আমার ব্যক্তিগত অভিজ্ঞতা হ'ল আমি গিটে কাজ করতে বা পারফোর্সকে এমন প্রকল্পগুলিতে লেখার সাথে ব্যবহার করার প্রবণতা বোধ করি যেখানে আমি একমাত্র অবদানকারী বা খুব কম অবদানকারী এবং যখন আমি কোনও দলের সাথে দৃ tight়তার সাথে কাজ করছি তখন সুস্পষ্ট চেকআউট। ধন্যবাদ, পছন্দটি আপনার।
সুস্পষ্ট চেকআউটটি মুলতুবি থাকা পরিবর্তন তালিকাগুলির পারফোর্স ধারণার সাথেও দুর্দান্ত অভিনয় করে। মুলতুবি চেঞ্জলিস্টগুলি হ'ল বালতি যা আপনি আপনার খালি ফাইলগুলিকে আপনার কাজটি সংগঠিত করতে রাখতে পারেন। গিটে আপনি সম্ভাব্যভাবে বিভিন্ন কাজ পরিচালনা করার জন্য বালতি হিসাবে বিভিন্ন শাখা ব্যবহার করবেন। শাখাগুলি দুর্দান্ত, তবে কখনও কখনও সার্ভারে জমা দেওয়ার আগে একাধিক নাম পরিবর্তনের জন্য আপনার কাজকে সংগঠিত করতে সক্ষম হয়ে খুব ভাল লাগে। একাধিক শাখা বা একাধিক প্রকল্পকে এক কর্মক্ষেত্রে ম্যাপ করার সম্ভাব্য মডেল দিয়ে, মুলতুবি পরিবর্তন তালিকাভুক্ত পৃথক পরিবর্তনগুলি সংগঠিত রাখা সহজ করে তোলে।
আপনি যদি ভিজ্যুয়াল স্টুডিও বা Eclipse এর মতো উন্নয়নের জন্য কোনও আইডিই ব্যবহার করেন তবে আমি আপনার আইডিইয়ের জন্য পারফোর্স প্লাগইন ইনস্টল করার পরামর্শ দিচ্ছি। আপনি নিজেই চেকআউটটি করা থেকে মুক্ত করে বেশিরভাগ আইডিই প্লাগইনগুলি ফাইল সম্পাদনা করা শুরু করার পরে স্বয়ংক্রিয়ভাবে ফাইলগুলি চেকআউট করবে।
গিট বৈশিষ্ট্যের জন্য পারফোর্স রিপ্লেসমেন্টস
git stash
==> p4 shelve
- গিট লোকাল ব্রাঞ্চিং ==> পারফর্ম তাক বা টাস্ক ব্রাঞ্চ
git blame
==> p4 annotate
বা জিইউআই থেকে পারফোরস টাইমল্যাপস ভিউ
কাজ বিচ্ছিন্ন
পেরফোর্স সংস্করণ পরিষেবা থেকে সংযোগ বিচ্ছিন্ন করার জন্য দুটি বিকল্প রয়েছে (এটি পারফোরস সার্ভারের জন্য আমাদের অভিনব শব্দ)।
1) সম্পূর্ণ স্থানীয় সংস্করণ এবং স্থানীয় ব্রাঞ্চিং করতে P4Sandbox ব্যবহার করুন
2) আপনার দয়া করে ফাইলগুলি সম্পাদনা করুন এবং আপনার কাজটি কী হয়েছে তা বলার জন্য 'p4 স্থিতি' ব্যবহার করুন
উপরের দুটি বিকল্পের সাহায্যে আপনি আপনার কর্মক্ষেত্রে "লেখার" সেটিংসটি বেছে নিতে পারেন যাতে আপনাকে ফাইলগুলি আনলক করতে না হয়। এই মোডে কাজ করার সময় আপনি "p4 সিঙ্ক" পরিবর্তে নতুন ফাইলগুলি সিঙ্ক করতে "p4 আপডেট" কমান্ডটি ব্যবহার করতে চাইবেন। "পি 4 আপডেট" ফাইলগুলির মধ্যে সিঙ্ক করার আগে পরিবর্তনগুলির জন্য পরীক্ষা করবে।
পারফর্স কুইকস্টার্ট
নিম্নলিখিত সমস্ত উদাহরণ কমান্ড লাইনের মাধ্যমে হবে।
1) পারফোর্সে আপনার সংযোগটি কনফিগার করুন
export P4USER=matt
export P4CLIENT=demo-workspace
export P4PORT=perforce:1666
আপনি আপনার শেল কনফিগারেশন ফাইলে এই সেটিংসটি আটকে রাখতে পারেন, p4 set
সেগুলি উইন্ডোজ এবং ওএস এক্স-এ সংরক্ষণ করতে ব্যবহার করতে পারেন , বা পার্ফোর্স কনফিগারেশন ফাইলটি ব্যবহার করতে পারেন।
1) একটি কর্মক্ষেত্র তৈরি করুন
p4 workspace
# set your root to where your files should live:
Root: /Users/matt/work
# in the resulting editor change your view to map the depot files you care about
//depot/main/... //demo-workspace/main/...
//depot/dev/... //demo-workspace/dev/...
2) সার্ভার থেকে ফাইলগুলি পান
cd /Users/matt/work
p4 sync
3) আপনি যে ফাইলটিতে কাজ করতে চান সেটি চেকআউট করুন এবং এটি সংশোধন করুন
p4 edit main/foo;
echo cake >> main/foo
4) এটি সার্ভারে জমা দিন
p4 submit -d "A trivial edit"
5) p4 help simple
পারফোরসের সাথে আপনার কাজ করতে হবে এমন বেসিক কমান্ডগুলি দেখতে রান করুন ।