মার্চুরিয়াল ফোল্ডারটিকে একটি গিট সংগ্রহস্থলে রূপান্তর করা


137

মার্কুরিয়াল নিয়ে আমার বিশাল অভিজ্ঞতা নেই, আমি বেশিরভাগই গিট লোক।

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

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


উত্তর:


125

উপর লিনাক্স বা সাথে কাউকে bash/shবা অনুরূপ, অথবা pythonসঙ্গে চেষ্টা ফাস্ট রপ্তানি :

cd
git clone git://repo.or.cz/fast-export.git
git init git_repo
cd git_repo
~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
git checkout HEAD

1
ঠিক আছে, আপনি গিটারটি ম্যুরিউরিয়ালের সাথে সিঙ্ক্রোনাইজ রাখতে চান? এই মত ?
যোহান

1
নোট করুন যে '/ পাথ / টু / ওল্ড / মার্উরিয়াল_রেপো' ফাইল সিস্টেমে অবশ্যই একটি পাথ হতে হবে (ইউআরএল নয়), সুতরাং আপনাকে আগে মূল সংগ্রহস্থলটি ক্লোন করতে হবে।
mar10

1
আমার ক্ষেত্রে ব্যবহার করতে হবে PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo। তা ছাড়া এটি নির্বিঘ্নে কাজ করেছে।
আর্তুর সিজ্জকা

5
সংক্ষিপ্ত উত্তরের জন্য ধন্যবাদ! আমি sudo easy_install mercurialপ্রথম ছিল । নির্দেশনাগুলি পেয়ে ভাল লাগবে
মার্কাস ওয়েস্টিন

3
আপনি যদি উইন্ডোজ মেশিনে থাকেন তবে গিট ব্যাশটি
আগস্টাস

61

উইন্ডোজ: কচ্ছপ এইচজি এইচজি-গিট এক্সটেনশন

এইচজি-গিট একটি মার্চুরিয়াল রিপোজিটরিটিকে গিতে রূপান্তর করতে ব্যবহার করা যেতে পারে। আপনি এসএসএইচ, এইচটিটিপি বা এইচটিটিপিএসের মাধ্যমে অ্যাক্সেস করা কোনও স্থানীয় সংগ্রহস্থল বা রিমোট রিপোজিটরি ব্যবহার করতে পারেন।

স্থানীয় সংগ্রহস্থল রূপান্তর উদাহরণ।

  1. Hg-Git ইনস্টল করুন।

  2. সংগ্রহস্থল রূপান্তর করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

    $ mkdir git-repo; cd git-repo; git init; cd ..
    $ cd hg-repo
    $ hg bookmarks hg
    $ hg push ../git-repo
    

hgবুকমার্ক বর্তমানে চেক আউট শাখা গীত বিভ্রান্তিকর অন্যথায় HG-Git push কর্মের হিসাবে সমস্যা প্রতিরোধ করা প্রয়োজন। এটি hgগিট সংগ্রহস্থলে নামের একটি শাখা তৈরি করবে । মাস্টারের পরিবর্তনগুলি পেতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন (কেবলমাত্র প্রথম রানেই প্রয়োজনীয়, পরে কেবলমাত্র ব্যবহার করুন git mergeবা rebase):

$ cd git-repo
$ git checkout -b master hg

আমি গিট-এইচজি বেশ বগি হিসাবে পেয়েছি তবে এটি একটি কবজির মতো কাজ করেছে এবং এটির জন্য কোনও অতিরিক্ত ডাউনলোডের দরকার পড়েনি।
টিএমএমএম

2
আমি একটি ফোল্ডার চেয়েছিলাম, পুরো রেপো নয়।
সিমোন কার্লেটি

গিথুবের এখন একটি সরঞ্জাম রয়েছে যা গিথুব থেকে সরাসরি এটি সমর্থন করে, দেখুন stackoverflow.com/questions/16037787/…
টমি

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

13

আপনি (বুধবার থেকে) করতে পারেন:

  • বিকল্পের সাথে রূপান্তর এক্সটেনশন ব্যবহার করে --filemapমূল রেপোর অংশটিকে কেবলমাত্র প্রয়োজনীয় ফাইল | ডিরেক্টরিতে রূপান্তর করুন
  • এইচজি-গিট এক্সটেনশন সহ গিতে রেখানো রেপো

বা (এইচজি- গিটের পরিবর্তে), গিটে মার্চুরিয়াল ব্রিজ ব্যবহার করে ক্লোন করুন | গিট থেকে সংগ্রহস্থল টানুন


11

Gitify

রূপান্তর সম্পাদন করার জন্য আরও আধুনিক এবং সহজেই ব্যবহারযোগ্য বিকল্প হিসাবে মনে হচ্ছে https://github.com/buchuki/gitifyhg

pip install gitifyhg
git clone gitifyhg::<hgrepoaddress>
# done, you have a git repo with the entire history of the hg one

1
আমি একটি সম্পূর্ণ রেপো, কেবল একটি ফোল্ডার রূপান্তর করতে চাইনি।
সিমোন কার্লেটি

1
অসাধারণ! ইউনিকোড ত্রুটি থেকে সতর্ক থাকুন যদিও github.com/buchuki/gitifyhg/pull/98
আন্দ্রে

3
দ্রষ্টব্য - সর্বশেষতম বুধবার সংস্করণ সহ গিটিফাইহগ বর্তমানে খারাপভাবে পুরানো।
জোরান পাভলোভিচ

4

উইন্ডোজ 10 এ গিটকে একটি মার্চুরিয়াল রিপোজিটরি রূপান্তর করুন

এনকোডিংয়ে সমস্যা না থাকলে - টরটোইজ এইচজি এইচজি-গিট এক্সটেনশনটি ব্যবহার করুন

md new-repo && cd new-repo
git init --bare .git
cd ..\old-mercurial-repo
hg bookmark -r default master
hg push ..\new-repo
cd ..\new-repo
git config --bool core.bare false

যদি এনকোডিংয়ে কিছু ভুল হয় - দ্রুত এক্সপোর্ট ব্যবহার করুন

বস ইনস্টল করুন

প্রশাসক হিসাবে পাওয়ারশেল খুলুন এবং চালান:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

মাইক্রোসফ্ট স্টোর থেকে উবুন্টু 16.04 এলটিএস ইনস্টল করুন

বাশ খুলুন এবং চালান

মুরুরিয়াল ইনস্টল করুন

sudo -s
apt-get update
apt install mercurial

দ্রুত রফতানি পেতে v180317 (মুহূর্তে 180317 এর পরে সংস্করণগুলি সঠিকভাবে কাজ করে না)

cd /mnt/c/path_to_work_folder
git clone https://github.com/frej/fast-export.git
cd fast-export
git checkout tags/v180317
cd ..

সংগ্রহস্থল রূপান্তর করুন

git init new-repo && cd new-repo
git config core.ignoreCase false && git config core.quotepath off
../fast-export/hg-fast-export.sh -r ../path_to_mercurial_repo/ --fe cp1251
git checkout master

এনকোডিং বিকল্পগুলি:

  • -f এনকোডিং, মত -f cp1251
  • --fe ফাইলের নাম এনকোডিংয়ের মতো --fe cp1251

3

HG-Git-ফাস্ট-আমদানি

https://github.com/kilork/hg-git-fast-import

নিম্নলিখিত বৈশিষ্ট্য সহ আরও একটি ইউটিলিটি:

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

আপনি আপনার জন্য বাইনারি ডাউনলোড করতে পারেন প্ল্যাটফর্ম এবং পথ কোথাও করা বা ইনস্টল cargo(প্রয়োজন rustহবে ইনস্টল ):

cargo install hg-git-fast-import

তারপরে ব্যবহার এর মতো:

hg-git-fast-import single /path/to/source_hg /path/to/target_git

এটা তোলে দরকার নেই Pythonএবং Mercurialইনস্টল করার জন্য। উন্নত কনফিগারেশন লেখক বা শাখাগুলি প্রতিস্থাপন করতে পারে, শাখাগুলিকে উপসর্গযুক্ত এবং আরও অনেক কিছু করতে দেয়।


2

আপনি যদি github.com ব্যবহার করছেন তবে তাদের কাছে এমন একটি আমদানি বৈশিষ্ট্য উপস্থিত রয়েছে যা আপনাকে আপনার এইচজি প্রকল্পের URL টি টাইপ করতে দেয়।

প্রথমে একটি নতুন সংগ্রহস্থল তৈরি করুন এবং তারপরে নতুন ভাণ্ডারের ল্যান্ডিং পৃষ্ঠায় নীচে স্ক্রোল করুন এবং "ইমপোর্ট কোড" বোতামটি ক্লিক করুন

আমদানি কোড বোতামের জন্য প্রসঙ্গ

তারপরে আপনার পূর্ববর্তী সংগ্রহস্থলের URL টিপুন এবং "আমদানি শুরু করুন" টিপুন।

"আমদানি শুরু করুন" বোতামের প্রসঙ্গ

তারপরে গিটহাব বাকিদের যত্ন নিচ্ছেন!

গিথুব আপনার জন্য ব্যবসায়ের যত্ন নিচ্ছেন

নোট করুন যে গিটহাব আপনাকে পুরাতন ভাণ্ডারের প্রয়োজন হলে আপনার শংসাপত্রগুলির জন্য জিজ্ঞাসা করবে।

ওহ! আমি অফিসিয়াল গাইড পেয়েছি


0

উইন্ডোজ কিছুটা জটিল হতে পারে। মার্উরিয়াল ( hggit) এ ডান প্লাগইনগুলি সক্ষম করার পরে , কচ্ছপ এইচজিও ব্যবহার করা যেতে পারে।

  1. ক্লোন মার্উরিয়াল রেপো
  2. ক্লোন গিট রেপো
  3. কনসোল সক্ষম করুন: কনসোল সক্ষম করে
  4. কনসোল ব্যবহার করে:

    % hg bookmarks hg

    % hg push <relative path to>/<git-repo>


0

সম্ভবত এটি আজ কাউকে সহায়তা করে (যখন ইতিহাসকে ধরে রাখার সময় একটি গিরির ভাণ্ডারগুলিকে গিটে রূপান্তর করার সময়)। মার্উরিয়াল ৪.০.১ নিয়ে কাজ করার জন্য পরীক্ষিত।

~$ git clone https://*old_hg_repo*
~$ git clone https://github.com/frej/fast-export.git
~$ cd fast-export
~$ git checkout tags/v180317
~$ cd ..
~$ mkdir new_git_repo
~$ cd new_git_repo
~$ git init
~$ .../fast-export/hg-fast-export.sh -r ../old_hg_repo/ --force
~$ git checkout HEAD

এবং অবশেষে আপনার নতুন রূপান্তরিত স্থানীয় রেপোতে চাপ দিন।

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