উইন্ডোজে এসভিএন থেকে মার্চুরিয়াল (এইচজি) এ কীভাবে স্থানান্তর / রূপান্তর করতে হয়


120

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

আমি টরটোইজএইচজি (উইন্ডোজ এক্স 32) ব্যবহার করছি, সুতরাং রূপান্তর এক্সটেনশনগুলি বাতিল করা হয়েছে। লিনাক্স বাক্সে এই প্রক্রিয়াটি কীভাবে করা যায় সে সম্পর্কে কিছু তথ্য রয়েছে ( hgsvn ), তবে আমার কাছে লিনাক্স মেশিন উপলব্ধ নেই।

আমি কি উইন্ডোজে সেই পাইথন স্ক্রিপ্টগুলি ব্যবহার করতে পারি? যদি তা হয় তবে আমার এটি করার দরকার কী? বা, আমি এই প্রক্রিয়াটি করতে অন্যান্য কোন সরঞ্জাম ব্যবহার করতে পারি?

মূলত, আমি কীভাবে কোনও এসভিএন প্রকল্পকে মার্চুরিয়ালে রূপান্তর করতে পারি?

উত্তর:


93

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

আমারও আছে TortoiseHG সেইসাথে ইনস্টল CollabNet Subversion কম্যান্ড-লাইন ক্লায়েন্ট

<Enable Convert Extension w/ Tortoise Hg 2>

অনেক ধন্যবাদ bgever মন্তব্য যে ইশারা TortoiseHg 2.0 সঙ্গে রূপান্তর এক্সটেনশন সক্রিয় আগের তুলনায় অনেক সহজ জন্য। যেমন তিনি বলেছেন

কচ্ছপ এইচজি ২.০ এর সাহায্যে এটিকে আরও সহজ করা হয়েছে: স্টার্ট মেনু থেকে কচ্ছপ এইচজি ওয়ার্কবেঞ্চ শুরু করুন। ফাইল -> সেটিংস নির্বাচন করুন। তালিকা থেকে এক্সটেনশানগুলি নির্বাচন করুন। 'রূপান্তর' চেকবক্সটি পরীক্ষা করে ঠিক আছে ক্লিক করুন। এটাই! কনফিগার ফাইল আর তৈরি করার চেষ্টা করার দরকার নেই এবং ফাইল সিস্টেমে এটি অনুসন্ধান করতে হবে। - 11 মার্চ 7:56 এ বিগ্রেভার

</Enable Convert Extension w/ Tortoise Hg 2>

<Enable Convert Extension Manually>

এসভিএন থেকে এইচজি-তে কোনও সংগ্রহস্থল রূপান্তর করতে, আমি এই পদক্ষেপগুলি অনুসরণ করেছি:

1) ওপেন সি: \ প্রোগ্রাম ফাইল ort কচ্ছপএইচজি \ মার্কুরিয়াল.আই

সম্পাদনা

এফওয়াইআই - কচ্ছপ এইচজি এই ফাইলটিতে স্থানান্তরিত করেছে

  • এক্সপি বা তার থেকেও পুরনো - সি: u ডকুমেন্টস এবং সেটিংস \ USERNAME \ Mercurial.ini
  • ভিস্তা বা তার পরে - সি: \ ব্যবহারকারী \ ব্যবহারকারী নাম \ মার্কুরিয়াল.আইএনআই

এই ফাইলটি বেশিরভাগ ফাঁকা থাকবে এবং আপনি সেখানে ওভাররাইড করতে চাইলে কেবল তালিকাবদ্ধ করবেন। যদি এটি আপনার কাছে থাকে তবে ফাইলের একেবারে শেষের দিকে এই দুটি লাইন যুক্ত করুন:

[extensions]
convert =

2) যে রেখাটি শুরু হয় তার জন্য অনুসন্ধান করুন

[এক্সটেনশন]

3) এর নীচে আপনি কীওয়ার্ডগুলির একটি তালিকা দেখতে পাবেন, প্রতিটি লাইনে একটি সেমিকোলন (;) দিয়ে মন্তব্য করেছেন

4) যে লাইনটি বলে তা সন্ধান করুন

; রূপান্তর =

এবং সেমিকোলন মুছুন যাতে এটি পড়তে পারে

রূপান্তর =

</Enable Convert Extension Manually>

৫) কমান্ড প্রম্পটটি খুলুন এবং আপনি যে ডিরেক্টরিতে নতুন এইচজি ফোল্ডারটি তৈরি করতে চান তা ডিরেক্টরিতে নেভিগেট করুন (প্রক্রিয়াটি আপনার ডিরেক্টরিতে আপনারvnreponame-hg নামে একটি নতুন ফোল্ডার তৈরি করবে যে কমান্ড প্রম্পটটি খোলা আছে)।

6) এই আদেশ ব্যবহার করুন

এইচজি রূপান্তর ফাইল: /// y: / তোমারvnreponame

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


এই প্রশ্নের উত্তর নির্বাচন করা কঠিন ছিল। রূপান্তরিত এক্সটেনশান সক্ষম করার জন্য কনফিগারেশন সম্পাদনা করার জন্য যখন তার উত্তরে মন্তব্য করেছিলেন তখন অ্যাসব্লাডিডেমন ঠিকই ছিলেন, তবে এই উত্তরটি আরও স্পষ্ট এবং সুনির্দিষ্ট
ডেভিড লে

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

এটি মার্চুরিয়াল ভি 1.4.3 দিয়ে আমার পক্ষে ভাল কাজ করেছে। 1 বছরের পুরানো এসএনএন সংগ্রহস্থল পুরো ইতিহাস অক্ষত রেখে খুব দ্রুত রূপান্তরিত হয়েছিল। অনেক ধন্যবাদ!
জোনাথন ওয়েব

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

9
কচ্ছপ এইচজি ২.০ এর সাহায্যে এটিকে আরও সহজ করা হয়েছে: স্টার্ট মেনু থেকে কচ্ছপ এইচজি ওয়ার্কব্যাঞ্চ শুরু করুন। ফাইল -> সেটিংস নির্বাচন করুন। তালিকা থেকে এক্সটেনশানগুলি নির্বাচন করুন। 'রূপান্তর' চেকবক্সটি পরীক্ষা করে ঠিক আছে ক্লিক করুন। এটাই! কনফিগার ফাইল আর তৈরি করার চেষ্টা করার দরকার নেই এবং ফাইল সিস্টেমে এটি অনুসন্ধান করতে হবে।
বার্ট ভেরকোইজেন

8
  1. লোকালহোস্টে স্টার্টআপ এসএনএন সার্ভার
  2. এইচজি রূপান্তর করুন এসএনএন: // লোকালহোস্ট / আপনার_রেপো
  3. সম্পন্ন হয়েছে, কারণ কেবল ফাইল: // প্রোটোকলের জন্য এসএনএন বাইন্ডিংগুলির প্রয়োজন

নোপস, উইন 32 বা টার্টোইজএইচ-তে না পারদর্শী বাইনারি রূপান্তর এক্সটেনশনগুলির সাথে আসে, সুতরাং "এইচজি রূপান্তর" উইন 32-তে কোনও বৈধ আদেশও নয়।
ডেভিড লে

1
আমি ফাইলের পরিবর্তে এসএনএন: // ব্যবহারের চেষ্টা করেছি: // তবে এটি পাইথন বাইন্ডিংয়ের জন্য জিজ্ঞাসা করে
fglez

ফাইল: // এর পরিবর্তে এসএনএন: // ব্যবহার করে পাইথন বাঁধাই ছাড়াই আমার পক্ষে কাজ করেছে। এসএনএন সার্ভারটি শুরু করার জন্য কমান্ডটি হ'ল: এসএনভিজার -আর <রিপো রুট করার পথে> -d
পিটার উইগল

7

মার্চুরিয়াল এর জন্য একটি অন্তর্নির্মিত রূপান্তর এক্সটেনশন রয়েছে


2
আমি জানি, এটি আমি প্রথম হোঁচট খেয়েছি, তবে উদ্ধৃত করে: "নোট করুন যে আপনি উইন 32 মার্চুরিয়াল বাইনারি দিয়ে এটি করতে পারবেন না - সাবটারভিশন বাইন্ডিংগুলি এর বিল্ট-ইন পাইথন লাইব্রেরিতে ইনস্টল করার কোনও উপায় নেই" আমি ব্যবহার করছি কচ্ছপ এইচজি ...
ডেভিড লে

লিনাক্স লাইভ সিডি বা ভার্চুয়াল মেশিন ব্যবহার করবেন?
richq

এটি একেবারে সঠিক উত্তর। আমি এইচজি কনভার্ট এক্সটেনশনটি কেবল ( সেলেনিক.com /mercurial/wiki/…) ব্যবহার করে এবং pysvn এক্সটেনশন ছাড়াই এসভিএন সংগ্রহস্থলের জন্য ফাইল প্রোটোকল ব্যবহার করে করেছি: hg রূপান্তর ফাইল: /// এক্স: / হোম / রিপোস / মাইভিএনরেপ newhgrep
ভ্যান

5

কোনও এসভিএন রেপোকে এইচজি রেপোতে রূপান্তর করতে এবং এটি অন্য একটি সার্ভারে অনুলিপি করতে আপনার কয়েকটি জিনিস প্রয়োজন।

  1. কচ্ছপএইচজি ইনস্টল করা হয়েছে। (বর্তমানে কোন সংস্করণ ব্যবহৃত হচ্ছে তা পরীক্ষা করে দেখুন)
  2. পাইথন ইনস্টল করা হয়েছে। (বর্তমানে কোন সংস্করণ ব্যবহৃত হচ্ছে তা পরীক্ষা করে দেখুন)
  3. পাইথন মডিউলগুলি (আপনি সেগুলি http://pysvn.tigris.org/project_downloads.html খুঁজে পেতে পারেন )
  4. আপনি যোগ করতে হবে convertকচ্ছপের থেকে এক্সটেনশান। স্টার্ট মেনু থেকে টরটোইজ এইচজি ওয়ার্কবেঞ্চ শুরু করুন। নির্বাচন করুন File -> SettingsExtensionsতালিকা থেকে নির্বাচন করুন । convertচেকবক্সটি পরীক্ষা করে ঠিক আছে ক্লিক করুন।

প্রথমে রূপান্তর…

  1. আপনি যে কম্পিউটারে কাজ করছেন সেটিতে বর্তমান এসভিএন রেপো ফোল্ডারের মানচিত্র করা ভাল map (যেমন \\server\folder , এসভিএন রেপো ফোল্ডারটি নিজেই ম্যাপ করবেন না it এর ঠিক উপরে ফোল্ডারটি মানচিত্র করুন) ম্যাপযুক্ত ড্রাইভকে একটি চিঠি দিন, যেমনY:\
  2. একটি কমান্ড প্রম্পট খুলুন এবং টাইপ করুন: CD /D Y:\
  3. Y:\প্রম্পট টাইপ: hg convert y:/RepoName এগিয়ে এবং ফিরে স্ল্যাশ এর সতর্কতা অবলম্বন করা আবশ্যক (বর্তমান রেপো নাম ব্যবহার করুন)। কমান্ডের মধ্যে একটি হ'ল একটি ফরোয়ার্ড স্ল্যাশ। এছাড়াও, নামের ফাঁকা স্থান থাকলে নামটি উদ্ধৃতিতে রাখুন। (অর্থাত্ Y:/"My Repo folder")
  4. এখন এটি চালানো উচিত এবং পুরানোটির পাশাপাশি একটি অন্য ফোল্ডার তৈরি করবে। এবং এইচজি ফোল্ডারটি ভিতরে থাকা উচিত। এটি সূচনা করা হবে না, এবং সূচনা করা হবে না!
  5. রূপান্তরটি সম্পূর্ণ।

দ্বিতীয় ক্লোনিং…

  1. টার্টোইসএইচজি ওয়ার্কবেঞ্চ খুলুন। যাওFile -> Clone Repository
  2. উত্স: রূপান্তরিত রেপোর পুরো পথটি প্রবেশ করান।
  3. গন্তব্য: আপনি রেপো ক্লোনড করতে চান যেখানে পুরো পথ প্রবেশ করান। নতুন গন্তব্যস্থলে কোনও ফোল্ডার তৈরি করার প্রয়োজন নেই কারণ ক্লোনিং প্রক্রিয়া এটি তৈরি করবে এবং এটি আরম্ভ করবে।
  4. নতুন ক্লোন করা ফোল্ডারে অনুমতিগুলি যুক্ত করুন।
  5. তুমি করেছ!!!

হাই, আপনি কেন initপ্রথম ভাণ্ডার করবেন না তা ব্যাখ্যা করা সম্ভব ?
বেন পেজ

3

কেউ এখনও hgsubversion ( এক্সটেনশন উইকি ) উল্লেখ করেন না , যা প্রায় কোনও মাথা ব্যথা ছাড়াই এটি করতে পারে (বিরল ঘটনা এবং নির্দিষ্ট গাছ বাদে)।

কেবল এক্সটেনশান যুক্ত করুন, এটি সক্ষম করুন এবং hg clone SVN_REPOস্থানীয় পার্কে রেপোতে


1

এটি কচ্ছপএইচজি এফএকিউতে রয়েছে :

আমি কীভাবে একটি subversion ভান্ডারটিকে মার্চুরিয়ালে রূপান্তর করতে পারি?

আপনাকে অবশ্যই svn-win32-1.4.6 কমান্ড লাইন সরঞ্জাম ইনস্টল করতে হবে, তারপরে সেগুলি আপনার পথে যুক্ত করুন। তারপরে আপনাকে অবশ্যই রূপান্তর এক্সটেনশন সক্ষম করতে হবে। এই মুহুর্তে, hg convertরূপান্তরটি করতে আপনার ' ' কমান্ডটি ব্যবহার করতে সক্ষম হওয়া উচিত । Mercurial মেইলিং লিস্টে বা ধর্মান্তরিত এক্সটেনশন সম্পর্কে সমস্যার / প্রশ্ন নির্দেশ অনুগ্রহ করে #mercurialউপর irc.freenode.net

সুতরাং এটি দৃশ্যত সম্ভব - আমি লিনাক্স ব্যবহার করছি তাই আমি নিজে চেষ্টা করে দেখিনি।


0

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

আমি এটি ইনস্টল করেছি:

python setup.py install

যা আমার সার্ভার 2003 বাক্সে ঠিক কাজ করেছে। আমি এখন এসভিএন রেপোকে এই জাতীয় কিছু করে সঠিক উপায়ে রূপান্তর করতে পারি:

python c:\python26\scripts\hg convert <remote repo>

মার্চুরিয়াল সাইটে কনভার্ট এক্সটেনশনের ডকুমেন্টেশন মারাত্মকভাবে পরিষ্কার নয়, তবে এটি এটি বলে:

পাইথন লাইব্রেরিতে বিল্ট-ইন [মার্চুরিয়ালের] সাবভার্সন বাইন্ডিং ইনস্টল করার কোনও উপায় নেই। সুতরাং আপনাকে একা একা পাইথনের উপরে একটি মার্চুরিয়াল ইনস্টল করতে হবে

সুতরাং এখন আমি রূপান্তর করার জন্য কেবল স্ট্যান্ড-একা সংস্করণ এবং প্রকৃত ভিসিএস কাজের জন্য টরটোইজএইচজি ব্যবহার করি।


0

আগের চেয়ে ভাল দেরি ...

একটির দামের জন্য দুটি উত্তর ...

  1. যদি এটি সর্বজনীন হয় তবে ওপেন-সোর্স রেপো আপনি কেবল http://svn2github.com/add/ ব্যবহার করতে পারেন যা গিটিহিবের কাছে রেপোটিকে ক্লোন করতে প্রায় আধ ঘন্টা সময় নিয়েছিল এবং কেবলমাত্র এইচজি তে টানতে।

  2. ব্যবহারের সুবিধাটি hg convertহ'ল এটি আবার শুরু করা যেতে পারে। এসভিএনকে এইচজি রূপান্তর করতে কয়েক দিন সময় নিতে পারে । যদি আপনি এটি বন্ধ করেন তবে এটি যেখানে ছেড়েছিল সেখান থেকে এটি আবার শুরু হবে।

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

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

দ্য robocopy shamapকাপড় SVN ইতিহাস বজায় রাখার জন্য যদি Hg রেপো ক্লোন হয়, shamap ক্ষণজীবী হয় - ব্যাচ ফাইল ও (আমি করতে চাই যে একটি নতুন শাখা দিকে) shamap চেক করুন।

ব্যাচ ...

@echo off
mode con:cols=100 lines=800

:: Change the SVN remote name here
::
set remote=https://cinch.svn.codeplex.com/svn
::

title Fetching SVN from %remote%. This could take...DAYS
echo .
echo Fetching SVN checkins from %remote%
echo .
echo Dependencies: Tortoise Hg and hg.exe in the Path would be ideal.
echo using hg convert
echo .
echo First, I will make a backup of shamap in the hg repo folder.
echo If shamap in .hg\ is newer then it will be copied to the repo.
echo You should commit it so hg clones of this repo work with this.
echo Commit this .BeeyATch file as well.
echo shamap keeps track of what has been fetched from SVN.
echo ok, that ends the educational part of this script...
echo Now I will fetch SVN changes from
echo %remote%
echo ...
echo ...(this could take quite some time)...
echo ...DAYS...yes...DAYS
echo ...especially if it's fecking Codeplex SVN...
echo .
echo If this craps out just run it again - it will resume from where it left off. 
echo and fetch the rest...eventually
echo .
echo Control C to abort or any other key to start:
echo .

pause

echo .
:: http://mercurial.selenic.com/wiki/ConvertExtension <== see for details of shamap
:: copy the shamap from the original convert into the .hg folder unless it is already there & newer
:: don't panic if shamap is much bigger than the original - diff it to see why
robocopy .\ .\.hg\ shamap /XO 
robocopy .\.hg\ .\ shamap /XO 
echo .

hg convert --verbose --debug %remote% "%CD%"
echo .
echo .
echo Finished fetching from %remote%
title Finished fetching from %remote%
echo Any  key to Exit
echo .
pause

exit

0

বুধবারের convertএক্সটেনশন ব্যবহার করে :

  1. রূপান্তর এক্সটেনশন সক্ষম করুন; .hgrc বিভাগে convert=এটি যুক্ত করুন [extensions]:

    [এক্সটেনশানগুলি]
    রূপান্তর =

  2. লিনাক্সের অতিরিক্ত পাইথন বাইন্ডিং দরকার: sudo apt-get install python-subversion
  3. সম্পাদন hg convertকমান্ড
    • hg convert -hসাহায্যের জন্য দেখুন
    • উদাহরণ: hg convert http://[svnserver]/[Project] --source-type svn [DestinationDir] (দ্রষ্টব্য 2 দেখুন)
  4. সদ্য নির্মিত মার্কুরিয়াল সংগ্রহস্থলে পুশ করুন: hg push https://[mercurialserver]/[Project]

দ্রষ্টব্য : আপনি পূর্ববর্তী রূপান্তরের পরে এসএনএন সংগ্রহস্থলে নতুন পরিবর্তন অন্তর্ভুক্ত করতে hg রূপান্তর কমান্ডটি পুনরায় করতে পারেন।

নোট 2 : যখন এইচজি রূপান্তরটি ব্যবহার করে কাজ করে না http://বা svn://আপনি প্রথমে সাবভার্সন সংগ্রহস্থলটি চেকআউট করতে পারেন (বা কোনও বিদ্যমান আপডেট করুন) এবং স্থানীয় চেকআউট ব্যবহার করে রূপান্তর করতে পারেন; উদাহরণ:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]

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