শিক্ষানবিশদের জন্য মার্চারিয়াল: সংজ্ঞাবহ বাস্তব ব্যবহারিক গাইড Guide


237

নতুনদের জন্য গিট দ্বারা অনুপ্রাণিত : সংজ্ঞাবহ বাস্তব ব্যবহারিক গাইড

এটি ব্যবহারিক ব্যবহারের জন্য নতুনদের জন্য মার্চুরিয়াল ব্যবহার সম্পর্কিত তথ্যের সংকলন ।

শিক্ষানবিস - এমন প্রোগ্রামার যিনি খুব ভালভাবে না বুঝে উত্স নিয়ন্ত্রণকে স্পর্শ করেছেন।

ব্যবহারিক - বেশিরভাগ ব্যবহারকারীদের প্রায়শই সম্মুখীন হওয়া পরিস্থিতি coveringেকে রাখা - একটি সংগ্রহস্থল তৈরি করা, শাখা করা, মার্জ করা, টানা / টানা / দূরবর্তী সংগ্রহস্থল থেকে নেওয়া / ইত্যাদি,

দ্রষ্টব্য :

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

প্রশ্নাবলী:

ইনস্টলেশন / সেটআপ

কোড নিয়ে কাজ করছেন

ট্যাগিং, ব্রাঞ্চিং, রিলিজ, বেসলাইন

অন্যান্য

অন্যান্য মার্চুরিয়াল রেফারেন্স

উত্তর:


16

ফাইলগুলি উপেক্ষা করার জন্য আপনি এটি কীভাবে কনফিগার করবেন?

আপনার ভাণ্ডারের মূলটিতে .hgignore নামক একটি সাধারণ পাঠ্য ফাইলে উপেক্ষা করুন কনফিগার করা হয়েছে। এটি একটি সাধারণ ফাইলের মতো ঠিক যুক্ত করুন:

hg add .hgignore

ফাইল ম্যাচিং, গ্লোব এবং রিজেক্সের জন্য দুটি সিনট্যাক্স বিকল্প উপলব্ধ। গ্লোব ইউনিক্সের মতো ফাইলনাম এক্সপেনশন এবং রেজিএক্সপ্যাক্স নিয়মিত এক্সপ্রেশন। আপনি প্রতিটি যুক্ত করে syntax: globবা syntax: regexpনিজেই একটি লাইনে সক্রিয় করেন । নিম্নলিখিত সিনট্যাক্স চিহ্নিতকারী অবধি নিম্নলিখিত সমস্ত লাইন সেই সিনট্যাক্সটি ব্যবহার করবে। আপনি যতটা চান সিনট্যাক্স মার্কার রাখতে পারেন। ডিফল্ট সিনট্যাক্সটি হ'ল রিজেপেক্স, সুতরাং আপনি যদি কেবলমাত্র রেজিপেক্স ব্যবহার করেন তবে আপনার কোনও সিনট্যাক্স মার্কার প্রয়োজন নেই।

আপনি # দিয়ে মন্তব্য যুক্ত করতে পারেন

উদাহরণ:

# python temporary files
syntax: glob
*.pyc

#editor autosaves
*~

# temporary data
syntax: regexp
temp

উপেক্ষা শুধুমাত্র পরিচালনা না করা ফাইলগুলিতে প্রয়োগ করা হয় (যেমন ফাইলগুলি যা ইতিমধ্যে চেক ইন করা হয়নি)। সংস্করণ নিয়ন্ত্রণে থাকা ফাইলগুলিকে উপেক্ষা করতে আপনি সুইচ -I এবং -X ব্যবহার করতে পারেন।


7
এটি উল্লেখ করা কার্যকর হতে পারে যে আপনি যদি ম্যানুয়ালি hg addফাইলগুলি উপেক্ষা করেন তবে মার্চুরিয়াল সেগুলি ট্র্যাক করবে। উদাহরণস্বরূপ, যদি আপনার মত ফাইল একটি গুচ্ছ আছে deploy-test.conf, deploy-production.confইত্যাদি কি তাদের সংস্করণ করতে চান (তারা তাদের মধ্যে পাসওয়ার্ড থাকতে পারে) কিন্তু আপনি কি সংস্করণে চান deploy-template.confআপনি শুধু উপেক্ষা করতে পারেন deploy*এবং ম্যানুয়ালি যোগ deploy-templace.conf
স্টিভ লশ

7

কীভাবে আপত্তি নেই, বা আপনার বর্তমান কোডবেসের স্থিতি আপনি কীভাবে দেখবেন?

পরিবর্তিত ফাইলগুলির একটি তালিকা দেখতে:

$ hg status

এটি তার অবস্থানের সাথে পরিবর্তিত প্রতিটি ফাইল মুদ্রণ করবে, যার মধ্যে এটি অন্তর্ভুক্ত থাকতে পারে:

  • M- পরিবর্তিত। ফাইলটি পরিবর্তন করা হয়েছে এবং পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ হয়নি।
  • A- যুক্ত। ফাইলটি আগে ট্র্যাক করা হয়নি তবে আপনি যদি মার্ক্রিয়াল প্রতিশ্রুতিবদ্ধ হন তবে এটি ট্র্যাক করা শুরু করবে।
  • R- সরানো হয়েছে। ফাইলটি আগে ট্র্যাক করা হয়েছিল, তবে আপনি যদি মার্ক্রিয়াল প্রতিশ্রুতিবদ্ধ হন তবে এটি এটি এবং ভবিষ্যতের প্রতিশ্রুতিগুলির মধ্যে এটি ট্র্যাক করা বন্ধ করবে।
  • ?- অজানা। ফাইলটি বর্তমানে মার্চুরিয়াল দ্বারা ট্র্যাক করা হয়নি। প্রতিশ্রুতিবদ্ধতা এতে কোনও প্রভাব ফেলবে না যদি আপনি এটি যুক্ত না hg addকরে থাকেন।
  • !- মিসিং ফাইলটি ট্র্যাক করা হয়েছে তবে মার্কুরিয়াল ওয়ার্কিং কপিটিতে এটি খুঁজে পাচ্ছে না।

ফাইলগুলিতে আসলে পরিবর্তনগুলি দেখতে:

$ hg diff

6

আপনি কীভাবে একটি নতুন প্রকল্প / সংগ্রহস্থল তৈরি করবেন?

$ hg init my-repository

5

আমি কীভাবে সাবভার্সনের সাথে ইন্টারফেস করব?

তিনটি উপায় রয়েছে:


ধর্মান্তরিত এক্সটেনশন একটি Mercurial এক মধ্যে একটি বিদ্যমান Subversion সংগ্রহস্থলের ক্লোন হবে। এটি মার্চুরিয়ালের সাথে আসে। এটি মোটামুটি এর মতো কাজ করে:

hg convert <Subversion URL or directory> <path to new Mercurial repository>

উদাহরণস্বরূপ, এটি সিক্সআপার্ট মেম্যাক্যাড সংগ্রহস্থলের ট্রাঙ্কটি গ্রাউন্ড করবে।

hg convert http://code.sixapart.com/svn/memcached/trunk

এক্সটেনশনটি ক্রমহীনভাবে একটি সাবভার্সন সংগ্রহশালা থেকে মারকুরিয়াল একটিতে (কিছুটা টানার মতো) নতুন সংশোধনী আনতে পারে। তবে এটি মার্চুরিয়াল রিভিশনগুলি গ্রহণ করে এবং সেগুলি সাবভারশনে ফেরত পাঠানো সমর্থন করে না (কোনও ধাক্কা নেই)। [XXX: এটি ভুল হলে এটি সংশোধন করুন]


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

  • এটি ট্যাগ এবং শাখা মানচিত্র করে ( tags/সমতুল্য নামযুক্ত শাখাগুলি থেকে পৃথক করার জন্য সমস্ত ট্যাগের পূর্বে )।
  • এটি শাখা closed-branchesবন্ধ করার জন্য একটি বিশেষ শাখা বজায় রাখে যা সাবভার্সনে সরানো হয়।
  • এটি প্রয়োজন যে সাবভারশন সংগ্রহশালাটি ট্রাঙ্ক / শাখা / ট্যাগের কনভেনশন অনুসারে স্থাপন করা উচিত।
  • কমান্ড সেটটি সাধারণত হয় hg svn <subcommand>যদিও এটির মূল বিন্দুতে আপনার একত্রীকরণের লক্ষ্য করা যায় যে আপনার 'এসএনএন' অংশের প্রয়োজন নেই (অর্থাত্ এটি কোনও অন্যান্য মার্চুরিয়াল রিপোজিটরির মতো সাবভারশন ক্লোনটিকে যথাসম্ভব চিকিত্সা করতে চায়);

এটি এর মতো কাজ করে:

ক্লোন:

hg svnclone <Subversion URL> 

বা (শুধুমাত্র svn://ইউআরএল জন্য )

hg clone <svn:// URL>

টান:

hg svn pull

ধাক্কা:

hg svn push

ইনকামিং:

hg svn incoming

বিদায়ী:

hg svn outgoing

একটি সম্পূর্ণ সংগ্রহস্থল চেক করা হচ্ছে:

hg svnclone http://code.sixapart.com/svn/memcached

Hgsvn ইউটিলিটি ( bitbucket গাছ )। সাম্প্রতিক অবধি এটি কেবল আপনাকে সাবভার্সন সংগ্রহস্থলটিকে ক্লোন করতে এবং টানতে দেয়, তবে hgsvn 0.1.7এটি পুশকে সমর্থন করে। [আমি জানি না এটি কতটা ভাল করে দেয়। আরও অভিজ্ঞতা সম্পন্ন যে কোনও ব্যক্তির এটি আপডেট করা উচিত]] এতে নিম্নলিখিত উল্লেখযোগ্য বৈশিষ্ট্য রয়েছে:

  • এটি প্রতিটি এসভিএন ট্যাগের জন্য একটি মার্চুরিয়াল ট্যাগ উত্পন্ন করে।
  • এটি এর এসভিএন পুনর্বিবেচনা চিহ্নিত করার জন্য প্রতিটি পরিবর্তনের উপর একটি স্থানীয় ট্যাগ রাখে ।
  • এটি প্রতিটি মার্চুরিয়াল রিভিশনটিকে তার এসভিএন শাখার নাম অনুসারে একটি নামী শাখায় রাখে। যেমন branches/some-featureমত হবে hg branch some-feature। এটি ট্রাঙ্কটি রাখেtrunk (অর্থাত্ মার্চুরিয়াল ডিফল্ট শাখায় কিছুই নেই, যদি না ব্যবহারকারী স্পষ্টভাবে এটিতে পরিবর্তন করে।)
  • এটি শাখা এবং ট্যাগগুলি সনাক্ত করার জন্য এবং সেগুলি তৈরি করার চেষ্টা করবে তবে এটি এটি না পারলে কেবল এগুলি এড়িয়ে যায়। সাবভার্সন সংগ্রহস্থল প্রচলিত ট্রাঙ্ক / শাখা / ট্যাগ লেআউট অনুসরণ না করে এটি কার্যকর hand

এটি এর মতো কাজ করে:

ক্লোন:

hgimportsvn <Subversion URL>

টান:

hgpullsvn

ধাক্কা:

hgpushsvn

ইনকামিং:

hgpullsvn -n

বিদায়ী:

hgpushsvn -n

একটি সম্পূর্ণ সংগ্রহস্থল চেক করা হচ্ছে:

hgimportsvn http://code.sixapart.com/svn/memcached

কেবল ট্রাঙ্কটি পরীক্ষা করা হচ্ছে:

hgimportsvn http://code.sixapart.com/svn/memcached/trunk

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

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

দয়া করে মনে রাখবেন যে hgsvn এখন রক্ষণাবেক্ষণ মোডে রয়েছে , সুতরাং এটি আর সক্রিয়ভাবে বিকাশিত হয় না। তারা পরিবর্তে hgsubversion ব্যবহার করার পরামর্শ দেয়।
জন এল।

5

আপনি কীভাবে কোনও ফাইলের দুটি সংশোধন বা আপনার বর্তমান ফাইল এবং পূর্ববর্তী পুনর্বিবেচনার তুলনা করবেন?

উভয় ব্যবহার hg diff। যখন hg diffওয়ার্কিং কপির সমস্ত পরিবর্তন ব্যবহৃত হয় এবং টিপ (সর্বশেষ প্রতিশ্রুতি) প্রদর্শিত হয়।

"আপনি কীভাবে কোনও ফাইলের দুটি সংশোধনী তুলনা করবেন?"

$ hg diff -r{rev1} -r{rev2} {file.code}

উপরের কমান্ডটি "ফাইলকোড" এর রেভ 1 এবং রেভ 2 এর মধ্যে আলাদা দেখায়।

"আপনি কীভাবে আপনার বর্তমান ফাইল এবং আগের সংস্করণটির তুলনা করবেন?"

$ hg diff {file.code}

উপরের কমান্ডটি "ফাইল কোড কোড" এর বর্তমান সংস্করণ এবং সর্বশেষতম পুনর্বিবেচনার (সর্বশেষে প্রত্যাবর্তিত) মধ্যে আলাদা দেখাবে।

: ডি


4

আপনি কীভাবে 'চিহ্নিত' 'ট্যাগ' বা 'প্রকাশ' কোনও নির্দিষ্ট সেট ফাইলের জন্য একটি নির্দিষ্ট সংশোধন করতে পারেন যাতে আপনি সর্বদা এটি পরে টানতে পারেন?

$ hg tag my-tag

একটি বিশেষ ট্যাগ সংগ্রহশালা তৈরি করতে আপনি আপনার সংগ্রহশালাটিকে ক্লোনও করতে পারেন ।

$ hg clone working-repository my-tag-repository

3
না কেন hg tag my-tag?
স্টিভ লশ

4

আপনি কিভাবে শাখা করবেন?

g এইচজি শাখা আমার শাখা

অথবা

g এইচজি ক্লোন আসল-সংগ্রহশালা আমার শাখা ory

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


4
এটি ভারী ওজনের উপায় g একটি লাইটার নবীনদের আরো পরিচিত পথ হবেhg branch my-branch
স্টিভ Losh

8
আপনার অবশ্যই লক্ষ্য রাখতে হবে, এগুলি দুটি সম্পূর্ণ ভিন্ন অপারেশন।
পদক্ষেপেগ

2
আমি এই গাইডটি পেয়েছি যা মার্চুরিয়ালে
blog


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

4

মার্কুরিয়ালের জন্য ভাল জিইউআই / আইডিই প্লাগইন?

গুই

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

প্লাগইন


3

আপনি কীভাবে পরিবর্তন করবেন?

বর্তমান স্থানীয় * পারদর্শী ভান্ডার থেকে এই আদেশটি চাও

hg commit [OPTION]... [FILE]...

উপনাম: সি

  • একটি স্থানীয় মার্উরিয়াল সংগ্রহস্থল বর্তমান ডিরেক্টরিতে .hg রয়েছে g

বিকল্পটি যেখানে হতে পারে:

 -A --addremove     mark new/missing files as added/removed before committing
    --close-branch  mark a branch as closed, hiding it from the branch list
 -I --include       include names matching the given patterns
 -X --exclude       exclude names matching the given patterns
 -m --message       use <text> as commit message
 -l --logfile       read commit message from <file>
 -d --date          record datecode as commit date
 -u --user          record user as committer

উদাহরণ কমান্ডটি হ'ল:

hg commit -m "added readme" README

দ্রষ্টব্য :

  • যদি ফাইলগুলির একটি তালিকা বাদ দেওয়া হয় তবে "এইচজি স্থিতি" দ্বারা প্রতিবেদন করা সমস্ত পরিবর্তন প্রতিশ্রুতিবদ্ধ হবে।
  • আপনি যদি একীভূত হওয়ার ফলাফলটি সম্পাদন করে থাকেন তবে কোনও ফাইলের নাম বা -I / -X ফিল্টার সরবরাহ করবেন না।
  • যদি কোনও প্রতিশ্রুতিবদ্ধ বার্তা নির্দিষ্ট না করা থাকে তবে কনফিগার করা সম্পাদক আপনাকে বার্তার জন্য অনুরোধ করতে শুরু করা হয়।

3

কিভাবে মার্চুরিয়াল সেট আপ?

মার্চুরিয়াল তার কনফিগারেশন সম্পর্কিত তথ্য ~/.hgrc* নিক্স সিস্টেমে এবং %UserProfile%\mercurial.iniউইন্ডোজ সিস্টেমে সংরক্ষণ করে। ( %UserProfile%সাধারণত "C:\Documents and Settings\[username]\"উইন্ডোজ 2000 বা উইন্ডোজ এক্সপি সিস্টেমে এবং সাধারণত C:\Users\[username]\উইন্ডোজ ভিস্তা এবং উইন্ডোজ 7 সিস্টেমে থাকে))

একটি সূচনা পয়েন্ট হিসাবে, নিম্নলিখিত .hgrcবা আপনার মধ্যে নিম্নলিখিত রেখে আপনার মার্চুরিয়াল নাম ব্যবহার করা উচিত mercurial.ini:

# This is a Mercurial configuration file.
[ui]
username = Firstname Lastname <email.address@example.net>

উইন্ডোজ সিস্টেমে কচ্ছপ এইচজি ব্যবহারকারীরা বিকল্পভাবে চালাতে পারেন hgtk userconfig

এছাড়াও "দেখ একটি Mercurial কনফিগারেশন ফাইল তৈরি করা হচ্ছে এ" 2 অধ্যায় এর " Mercurial: নির্দিষ্ট নির্দেশিকা ।"


3

আপনি কিভাবে শাখা মার্জ করবেন?

$ cd repository-where-i-want-to merge
$ hg pull branch-i-want-to-merge
$ hg merge # if necessary

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

3

মার্চুরিয়াল কিভাবে ইনস্টল করবেন?

আপনি যদি লিনাক্সের উত্স থেকে ইনস্টল করেছেন বা উইন্ডোজ ইনস্টলার ব্যবহার করেছেন তবে দয়া করে সুন্দরভাবে সম্পাদনা করুন।

ম্যাক ওএস এক্স 10.4 (টাইগার), 10.5 (চিতাবাঘ)

পাইথনের ইজি_ইনস্টল ( সেটআপলগুলি সহ ) ব্যবহার করুন:

sudo easy_install mercurial

এটি সর্বশেষতম সংস্করণ (লেখার সময় 1.3.1) এবং এটি ইনস্টল করে:

/Library/Frameworks/Python.framework/Versions/2.6/bin/

পাইথন ২.6 এর সাহায্যে এটি মার্চুরিয়াল ওএস এক্স ইনস্টলার প্যাকেজ (জুলাই ২ gets, ২০০৯ অনুসারে ১.২.১ তে) পেয়েছে, অভিযোগ করেছে যে এর পাইথন ২.২ প্রয়োজন। ডকুমেন্টেশন থেকে , এটি দেখা যায় যে ফিংক এবং ম্যাকপোর্টগুলি 1.2 সংস্করণ ইনস্টল করে।

লিনাক্স

স্পষ্ট লিনাক্স প্যাকেজ সাম্প্রতিকতম সংস্করণটি পিছিয়ে আছে বলে মনে হচ্ছে, তাই ব্যবহার easy_install (উপরে যেমন) অথবা ডাউনলোড Mercurial tarball রূপে , সংরক্ষণাগার, তত্পর নির্দেশিকাতে পরিবর্তন, এবং চালানোর নিষ্কর্ষ:

$ make
$ sudo make install    # do a system-wide install
$ hg debuginstall      # sanity check
$ hg                   # see help

( মার্চুরিয়াল, একটি বিতরণিত সংস্করণ নিয়ন্ত্রণ সিস্টেমের উপস্থাপনা থেকে )

উইন্ডোজ

একটা হল Mercurial সর্বশেষ সংস্করণের বাইনারি প্যাকেজটার্টোইজএইচজি একটি উইন্ডোজ শেল এক্সটেনশান, এবং ম্যাকচুরিয়াল ইনস্টল করে। সাইগউইন মার্কারিয়াল ইনস্টল করতে পারেন।

বিকল্পভাবে (নির্দেশাবলী এখানে দীর্ঘ এত দীর্ঘ সংযুক্ত), আপনি উত্স থেকে মার্কুরিয়াল এর একটি অনুকূলিত বা খাঁটি পাইথন সংস্করণ তৈরি করতে পারেন ।


1
উত্স থেকে মার্উরিয়াল তৈরি করতে, পাইথন শিরোনামের প্রয়োজন one যারা প্যাকেজ-ভিত্তিক বিতরণ ব্যবহার করছেন তাদের জন্য পাইথন-ডেভ বা পাইথন-ডেভেল ইনস্টল করুন।
নিকোলাস ডুমাজেট

3

আপনি কিভাবে সর্বশেষ কোড পাবেন?

মার্চুরিয়াল মনে আছে যেখানে একটি সংগ্রহস্থল ক্লোন করা হয়েছিল (in .hg / hgrc) যাতে আপনি সহজেই চালাতে পারেন:

hg pull

উত্স-সংগ্রহশালা থেকে সর্বশেষতম কোডটি টানতে। (এটি কার্যকারী ডিরেক্টরি আপডেট করে না)

hg update

কাজের ডিরেক্টরি আপডেট করতে।

hg pull -u

একবারে একটি টান এবং একটি আপডেট উভয় সঞ্চালন।


1
আপনি .hg/hgrcযখন কোনও ক্লোন করেন তখন মূলটি রেকর্ড করা হয় , সুতরাং আপনি যখন টান / চাপুন তখন আপনাকে এটি নির্দিষ্ট করতে হবে না। আপনি চাইলে [paths]বিভাগটিতে আরও পাথ যুক্ত .hg/hgrcকরতে পারেন।
মার্টিন গিজলার

3

আপনি কিভাবে কোড চেক আউট করবেন?

hg clone [OPTION]... SOURCE [DEST]

বিকল্পটি যেখানে হতে পারে:

 -U --noupdate      the clone will only contain a repository (no working copy)
 -r --rev           a changeset you would like to have after cloning
    --pull          use pull protocol to copy metadata
    --uncompressed  use uncompressed transfer (fast over LAN)
 -e --ssh           specify ssh command to use
    --remotecmd     specify hg command to run on the remote side

যেখানে উত্স হ'ল সংগ্রহস্থলে অবস্থিত মূল ফাইলগুলির উত্স, যেখানে এটি কোনও দূরবর্তী URL হতে পারে বা কোনও ফাইল সিস্টেম ডিরেক্টরি হতে পারে। উদাহরণ স্বরূপ:

  • http://bitbucket.org/scrum8/django-wmd-editor/
  • / হোম / ব্যবহারকারীর নাম / সংগ্রহস্থলের / জ্যাঙ্গো-WMD-সম্পাদক /
  • SSH: //myusername@scrum8.com/~/repository/django-wmd-editor/

এবং গন্তব্য হ'ল সোর্স কোডটি আপনার স্থানীয় ফাইল সিস্টেমে অবস্থিত।



1

আপনি কীভাবে দেখবেন যে আপনি যখন চাপ দেবেন তখন কী কী পরিবর্তনগুলি প্রবাহের ভাণ্ডারে প্রেরণ করা হবে?

hg outgoingডিফল্ট সংগ্রহস্থলে সেট করা হবে এমন পরিবর্তনগুলির তালিকা পেতে ব্যবহার করুন :

$ hg outgoing

আসল কোড পরিবর্তনগুলি পেতে, -p( --patch) ব্যবহার করুন । এটি প্রতিটি চেঞ্জসেট পুরোপুরি আউটপুট দেবে:

$ hg outgoing -p

1

আপনি কীভাবে একটি সংগ্রহস্থল থেকে একটি ফাইল সরিয়ে ফেলবেন?

সংগ্রহস্থল থেকে একটি ফাইল সরাতে, এবং এটি পরবর্তী প্রতিশ্রুতিতে মুছে ফেলতে হবে:

$ hg remove {file(s)}

সংগ্রহস্থল থেকে একটি ফাইল সরিয়ে ফেলতে, তবে এটি মুছে ফেলা হবে না

$ hg remove -Af {file(s)}

বা বুধবার 1.3 থেকে

$ hg forget {file(s)}

1

আপনি কোডের আগের সংস্করণে কীভাবে ফিরে যাবেন?

এই প্রশ্ন থেকে

$ hg update [-r REV]

@ ওয়ান: পরে যদি আপনি প্রতিশ্রুতিবদ্ধ হন তবে আপনি কার্যকরভাবে একটি নতুন শাখা তৈরি করবেন। তারপরে আপনি কেবল এই শাখায় কাজ চালিয়ে যেতে পারেন বা অবশেষে বিদ্যমানটিকে এটিতে মার্জ করতে পারেন।


1

আপনি কীভাবে কোনও পরিবর্তনটি ফিরিয়ে আনবেন?

কয়েকটি বিকল্প উপলব্ধ

সহজ উপায় (একক পরিবর্তন সেট ব্যাকআউট)

$ hg backout -m 'back out second change' tip
reverting myfile
changeset 2:01adc4672142 backs out changeset 1:7e341ee3be7a
$ cat myfile
first change

হার্ড ওয়ে (ম্যানুয়ালি আলাদা এবং প্রয়োগ)

পদক্ষেপ 1 : রিভিশন 107 এবং 108 এর মধ্যে যা পরিবর্তিত হয়েছে তা ফিরিয়ে দেওয়ার জন্য একটি প্যাচ ফাইল তৈরি করুন:

hg diff -r107 -r108 --reverse  > revert-change.patch

(পর্যায়ক্রমে, এইচজি পৃথক - r108 -r107 - কোনও বিপরীত একই জিনিসটি করবে না)

পদক্ষেপ 2 : প্যাচ ফাইলটি প্রয়োগ করুন:

patch -p1 < revert-change.patch

কিছু ভিন্নতা প্রয়োগ করতে ব্যর্থ হতে পারে, উদাহরণস্বরূপ:

Hunk #3 FAILED at 517.
1 out of 3 hunks FAILED -- saving rejects to file 'foo/bar.c.rej'

.Rej ফাইলে সেই ডিফের সামগ্রীগুলি প্রয়োগ করা যাবে যা প্রয়োগ করতে ব্যর্থ হয়েছে, আপনার একবার নজর দেওয়া দরকার।


1
এটি কি hg backoutজন্য নয়?
উইম কয়েনেন

হ্যাঁ, তবে এইচজি ব্যাকআউট ব্যাকআউটে কেবল একটি একক চেঞ্জসেট আইডি সমর্থন করে। অবশ্যই উল্লেখ করা উচিত, আমি সেই অনুযায়ী আপডেট করব
slf

1

ফাইল বা সংগ্রহশালার সংশোধনীর ইতিহাসটি আপনি কীভাবে দেখছেন?

সম্পূর্ণ সংগ্রহস্থল বা ফাইলগুলির পুনর্বিবেচনার ইতিহাস দেখাতে

$ hg log {file(s)}

অথবা

$ hg history {file(s)}

এবং তালিকাটি বিপরীত ক্রমে দেখতে

$ hg log -r:

1

আপনি কীভাবে একটি শাখার অংশগুলি অন্য শাখায় মার্জ করবেন?

আপনার .hg / hgrc এ 'ট্রান্সপ্ল্যান্ট' এক্সটেনশন সক্ষম করুন

[extensions]
transplant=

লক্ষ্য শাখাটি লোড করুন তারপরে লক্ষ্য সংশোধনটি প্রতিস্থাপন করুন।
উদাহরণস্বরূপ: চেরি চয়ন করুন 81 শাখা 'ফু' থেকে বর্তমান শাখায়

$ hg transplant -b foo 81

মার্চুরিয়ালের নতুন সংস্করণগুলির ট্রান্সপ্ল্যান্ট এক্সটেনশনটির প্রয়োজন নেই। আপনি এটি করতে বিল্ট-ইন graftকমান্ডটি ব্যবহার করতে পারেন । hg help graftআরও তথ্যের জন্য
ডুমিনিয়াক

1

আপনি কীভাবে কোনও নির্দিষ্ট চেঞ্জসেট থেকে কোনও প্যাচ উত্তোলন করবেন?

$ hg export -o patchfile changeset

এরপরে আপনি এটিকে অন্য একটি শাখায় আমদানি করতে পারেন:

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