গিট ব্যবহারকারীদের জন্য বল? [বন্ধ]


173

সেখানে "পারফোর ব্যবহারকারীদের জন্য গিট" ডকুমেন্টেশন প্রচুর আছে, তবে সম্ভবত এর বিপরীতে খুব সামান্যই।

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

গিটে অভ্যস্ত এমন কারও জন্য পারফোর্স ব্যবহারের জন্য কয়েকটি টিপস একসাথে রাখতে আগ্রহী কেউ?

উত্তর:


334

গত কয়েক সপ্তাহ ধরে আমি এটি বন্ধ করে দিয়েছি। এটি এখনও বিকশিত, তবে এটি সহায়ক হতে পারে। দয়া করে মনে রাখবেন আমি একজন পারফোর্স কর্মচারী।

গিট ব্যবহারকারীদের জন্য পারফোরসের একটি ভূমিকা

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

আমরা ডুব দেওয়ার আগে একটি সংক্ষিপ্ত পথ; আপনি যদি গিটকে পছন্দ করেন তবে আপনি পারফোরসের সাথে গিটটি বেশ ভাল ব্যবহার করতে পারেন। আমরা গিট ফিউশন নামে একটি সরঞ্জাম সরবরাহ করি যা পারফোর সার্ভারের সাথে সিঙ্কে রাখা গিট সংগ্রহস্থলগুলি তৈরি করে। গিট এবং পারফোর্স লোকেরা একই কোডে কাজ করে সম্প্রীতিতে থাকতে পারে, বেশিরভাগ সংস্করণ নিয়ন্ত্রণের তাদের সহকর্মীদের পছন্দ দ্বারা প্রভাবিত হয় না। পারফোর্স ওয়েবসাইট থেকে গিট ফিউশন 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পারফোরসের সাথে আপনার কাজ করতে হবে এমন বেসিক কমান্ডগুলি দেখতে রান করুন ।


5
একটি দুর্দান্ত ওভারভিউ। আমি আমাদের নতুন কিছু কর্মচারীকে দেওয়ার জন্য এটি (বা ওয়েবসাইটটিতে ফলাফল পোস্ট) সংরক্ষণ করব।
কালেব হুইট - সিউহিট

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

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

1
প্রকৃতপক্ষে! ধন্যবাদ আপনি পারফোর্স দিয়ে এটি করতে পারেন; আমি বছরগুলিতে 'পি 4 সম্পাদনা' চালাইনি। perfor.com/blog/131112/say-goodbye-p4-edit
ম্যাট

8
ধন্যবাদ, তবে একটি পরামর্শ। 'শক্তিশালী' শব্দটি বরং নয়েজ এবং আমাকে বিবৃতিটিকে প্রচার হিসাবে উপেক্ষা করার প্রবণতা ছেড়ে দেয়। আপনি যদি বৈশিষ্ট্যটি ব্যাখ্যা করে থাকেন তবে আমি পছন্দ করব এবং তারপরে এটি শক্তিশালী কিনা তা আমাকে সিদ্ধান্ত নিতে দিন।
দামিয়ান

24

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

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

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

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


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

3
হুডের নীচে যথাযথ প্রয়োগ নির্বিশেষে, গিটের মধ্যে একটি মার্জ কমান্ড (বিশেষত একটি তুচ্ছ সংশ্লেষ বা দ্রুত-এগিয়ে) শেষ ব্যবহারকারীর দৃষ্টিকোণ থেকে প্যাচগুলি ব্যবহার করে প্রদর্শিত হয় যা আমি তৈরি করার চেষ্টা করছি।
দামিয়ান

পারফোর্স চেঞ্জলিস্ট (চেঞ্জসেট) মার্জ করতে পারে। এখানে একটি স্ট্যাক ওভারফ্লো প্রশ্ন যা এটি সম্পর্কে কথা বলে। stackoverflow.com/questions/6158916/perforce-merge-changelist/...
Br.Bill

5
@ বারিয়র বিল আবার, আমি যে বিষয়টি তৈরি করছি তা নয় যে পি 4 জিনিসগুলি করতে সক্ষম কিনা (কারণ এটি অবশ্যই!)। মূল বিষয়টি বিমূর্তকরণ সম্পর্কে , অর্থাৎ ব্যবহারকারী কীভাবে এটি কাজ করে তা বুঝতে অভ্যন্তরীণ হওয়া দরকার to
দামিয়ান

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

20

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

কমান্ডের এক থেকে অন্যটিতে মানচিত্রের চেষ্টা করা সঠিক পদ্ধতির নয়; কেন্দ্রীভূত বনাম বিতরণ পুনর্বিবেচনা নিয়ন্ত্রণ ব্যবস্থা থেকে ধারণাগুলি এক নয়। পরিবর্তে, আমি পেরফোর্সে একটি সাধারণ কর্মপ্রবাহ বর্ণনা করব:

  1. p4 editআপনি সম্পাদনা করতে চান এমন প্রতিটি ফাইল চালান । আপনি কোন ফাইলগুলি সম্পাদনা করছেন তা পেরফর্সকে বলতে হবে। আপনি যদি নতুন ফাইল যুক্ত করে থাকেন তবে ব্যবহার করুন p4 add। আপনি যদি ফাইলগুলি মুছতে থাকেন তবে ব্যবহার করুন p4 delete
  2. আপনার কোড পরিবর্তন করুন।
  3. p4 changeএকটি পরিবর্তন সেট তৈরি করতে চালান । এখানে আপনি আপনার পরিবর্তনের বর্ণনা তৈরি করতে পারেন এবং optionচ্ছিকভাবে আপনার চেঞ্জসেট থেকে ফাইলগুলি যুক্ত বা মুছতে পারেন। আপনি p4 change CHANGE_NUMBERপ্রয়োজনে পরে বিবরণটি সম্পাদনা করতে চালাতে পারেন।
  4. আপনার প্রয়োজন হলে অতিরিক্ত কোড পরিবর্তন করতে পারেন। আপনার যদি অন্য ফাইলগুলি যুক্ত / সম্পাদনা / মুছতে প্রয়োজন হয় তবে আপনি ব্যবহার করতে পারেন p4 {add,edit,delete} -c CHANGE_NUMBER FILE
  5. p4 syncসার্ভার থেকে সর্বশেষ পরিবর্তনগুলি টানতে চালান ।
  6. p4 resolveসিঙ্ক থেকে কোনও বিরোধ নিষ্পত্তি করতে চালান ।
  7. আপনি যখন নিজের পরিবর্তন জমা দেওয়ার জন্য প্রস্তুত হন, চালান p4 submit -c CHANGE_NUMBER

আপনি p4 revertফাইলগুলিতে আপনার পরিবর্তনগুলি ফিরিয়ে নিতে ব্যবহার করতে পারেন ।

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

আপনি যদি অন্য রূপান্তরটিতে ইতিমধ্যে খোলা ফাইলগুলি সম্পাদনা করার প্রয়োজন মনে করেন তবে আপনি একটি পৃথক পারফোরস ক্লায়েন্ট তৈরি করতে পারেন বা আপনার বিদ্যমান চেঞ্জসেটটি পরবর্তী সময়ে স্ট্যাশ করতে পারেন p4 shelve। (বিপরীতে git stash, শেল্ভিং আপনার স্থানীয় গাছে থাকা ফাইলগুলিকে ফিরিয়ে দেয় না, তাই আপনাকে অবশ্যই সেগুলি আলাদা করে ফেরাতে হবে))


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

5
@ দেজাভু প্রথাগত বনাম আধুনিক সম্পর্কে এতটা নয়; এটি সেন্ট্রালাইজড বনাম বিতরণ সম্পর্কে আরও বেশি (এবং বিতরণকৃতগুলি আরও আধুনিক হয়ে থাকে)। বিতরণকারীরা অগত্যা আরও জটিল হয় না, তবে আমি স্পষ্টভাবে বলেছি যে "পারফর্স ... কম জটিল হিসাবে বিবেচিত হয় ...", এটি মতামতের বিবৃতি, সত্য নয়, এবং যা কম্বল হতে বোঝায় না সমস্ত সিস্টেম সম্পর্কে বিবৃতি। আমি ব্যক্তিগতভাবে গিটকে আরও জটিল বলে বিবেচনা করি কারণ এতে আরও ধারণা যুক্ত হয় (উদাঃ ঠেলা, টান, পুনরায় প্রতারণা) এবং কিছু জিনিস তত সরল নয় (যেমন বৈশ্বিক পরিবর্তন সংখ্যার পরিবর্তে হ্যাশ))
জেমসডলিন 21

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

4
@ দেজাভু, আধুনিক আইডিইগুলি গ্রাফিকভাবে সমর্থন হিসাবে বিবেচনা করে আপনার মন্তব্যটির কোনও অর্থ নেই gitএবং তারা বছরের পর বছর ধরে তা করে চলেছে ।
আকিউম্যানাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.