গিট ২.৮ (মার্চ ২০১)) এর মধ্যে একটি খুব বিস্তৃত প্রতিশ্রুতি রয়েছে যা উইন্ডোজের জন্য নতুন গিট-এর জন্য এমএসএস 2 এর গুরুত্ব ব্যাখ্যা করে যা 2015 সালের শুরুর দিকে এমএসজিগিটকে প্রতিস্থাপন করেছিল ।
দেখুন df5218b কমিট দ্বারা (13 জানুয়ারী 2016) জোহানেস Schindelin ( dscho
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 116a866 , 29 জানুয়ারী 2016)
দীর্ঘ সময়ের জন্য, উইন্ডোজের বিকাশকারীরা গিটের ২.x রিলিজের তুলনায় পিছিয়ে ছিল কারণ উইন্ডো বিকাশকারীদের গিট এমএসএস থেকে এমএসএস 2-তে একটি দুর্দান্ত প্রয়োজনীয় লাফের সাথে মিলে যেতে চায় to
এটি কেন এত বড় সমস্যা তা বোঝার জন্য এটি লক্ষ্য করা দরকার যে গিতের অনেকগুলি অংশ পোর্টেবল সিতে লিখিত হয় না, পরিবর্তে গিট একটি পসিক্স শেল এবং পার্ল উপলব্ধ হওয়ার জন্য নির্ভর করে ।
স্ক্রিপ্টগুলি সমর্থন করার জন্য, উইন্ডোজ উইন্ডোকে বাশ এবং পার্ল নিক্ষেপ করে একটি ন্যূনতম পসিক্স এমুলেশন স্তরটি প্রেরণ করতে হবে এবং ২০০ G এর অগস্টে উইন্ডোজের প্রচেষ্টার শুরু হলে এই বিকাশকারী সাইগউইনের একটি বিচ্ছিন্ন সংস্করণ এমএসএস ব্যবহার করে স্থির হন ।
ফলস্বরূপ, প্রকল্পটির মূল নামটি ছিল "এমএসজিজিট" (যা দুঃখের বিষয়, অনেকগুলি বিভ্রান্তির সৃষ্টি করেছিল কারণ উইন্ডোজ ব্যবহারকারীরা এমএসএস, এবং আরও কম যত্ন সম্পর্কে জানেন)।
উইন্ডোজের জন্য গিটের সি কোডটি সংকলন করতে, এমএসএস ব্যবহার করা হয়েছিল: এটি জিএনইউ সি সংকলকের দুটি সংস্করণকে স্পোর্ট করে:
- একটি যা পসিক্স এমুলেশন স্তরটির সাথে স্পষ্টভাবে লিঙ্ক করে,
- এবং অন্য একটি যা প্লেইন উইন 32 এপিআইকে লক্ষ্য করে (কিছু সুবিধার ফাংশন দিয়ে)
উইন্ডোজের এক্সিকিউটেবলের জন্য গিটটি পরেরটি ব্যবহার করে নির্মিত হয়, এবং তাই এগুলি কেবল উইন 32 প্রোগ্রাম। যেগুলি POSIX এমুলেশন স্তরটি আবশ্যক নয় তাদের থেকে নির্ধারিত এক্সিকিউটেবলগুলি সনাক্ত করার জন্য, পরবর্তীগুলিকে মিনিজিডব্লু (উইন্ডোজের জন্য ন্যূনতম জিএনইউ) বলা হয় যখন প্রাক্তনকে MSys এক্সিকিউটেবল বলা হয় ।
এমএসএসের উপর এই নির্ভরতা চ্যালেঞ্জগুলিও বহন করেছিল, যদিও:
- এমএসএস রানটাইমের সাথে আমাদের কিছু পরিবর্তন - উইন্ডোজের জন্য গিটকে আরও ভাল সমর্থন করার জন্য প্রয়োজনীয় - উজানের পক্ষে গৃহীত হয়নি, তাই আমাদের নিজের কাঁটাচামচ বজায় রাখতে হয়েছিল।
- এছাড়াও, ইউএসএফ -8 বা 64৪-বিটকে সমর্থন করার জন্য এমএসএস রানটাইমটি আরও বিকশিত হয়নি, এবং প্যাকেজ ম্যানেজমেন্ট সিস্টেমের অভাব বাদে অনেক পরে (যখন
mingw-get
প্রবর্তন করা হয়েছিল), এমএসএস / মিনিজিডাব্লু প্রকল্পের সরবরাহিত অনেকগুলি প্যাকেজগুলি সংশ্লিষ্টদের থেকে পিছনে উত্স কোড সংস্করণ, বিশেষত বাশ এবং ওপেনএসএসএল।
কিছুক্ষণের জন্য, গিট ফর উইন্ডোজ প্রকল্পটি সেই প্যাকেজগুলির নতুন সংস্করণ তৈরি করার চেষ্টা করে পরিস্থিতিটির প্রতিকারের চেষ্টা করেছিল, তবে পরিস্থিতিটি দ্রুত অস্থির হয়ে উঠেছে, বিশেষত হার্টবেল্ড বাগের মতো সমস্যাগুলির সাথে সুইট অ্যাকশন প্রয়োজন যা গিটকে বিকাশের সাথে কোনও সম্পর্কযুক্ত নয় with উইন্ডোজ আরও।
সুখের বিষয়, ইতিমধ্যে MSys2 প্রকল্প ( https://msys2.github.io/ ) আবির্ভূত হয়েছিল এবং উইন্ডোজ ২.x এর গিটের বেস হিসাবে নির্বাচিত হয়েছিল।
এমএসএসের মতো, এমএসএস 2 হ'ল সাইগউইনের একটি স্ট্রিপড ডাউন সংস্করণ, তবে সাইগউইনের উত্স কোডের সাথে এটি সক্রিয়ভাবে আপ টু ডেট রাখে ।
এর মাধ্যমে এটি ইতোমধ্যে ইউনিকোডকে অভ্যন্তরীণভাবে সমর্থন করে এবং এটি গিট ফর উইন্ডোজ প্রকল্পের সূচনা থেকেই আমরা যে project৪-বিট সমর্থনটি চেয়েছিলাম তা সরবরাহ করে।
এমএসআই 2 আর্চ লিনাক্স থেকে প্যাকম্যান প্যাকেজ ম্যানেজমেন্ট সিস্টেমটি পোর্ট করে এবং এটি প্রচুর পরিমাণে ব্যবহার করে । এটি লিনাক্স ব্যবহারকারীদের যেভাবে ব্যবহার করতে yum
বা ব্যবহার করতে ব্যবহৃত হয় apt-get
এবং ম্যাকসএক্সএক্স ব্যবহারকারীরা হোমব্রিউ বা ম্যাকপোর্টগুলি থেকে, বা পোর্টস সিস্টেম থেকে বিএসডি ব্যবহারকারীদের এমএসএস 2 তে ব্যবহার করে: এটি একটি সহজ সরল pacman -Syu
সমস্ত ইনস্টলড প্যাকেজকে নতুন সংস্করণে আপডেট করবে বর্তমানে সহজলভ্য.
এমএসআই 2 খুব সক্রিয়, সাধারণত প্রতি সপ্তাহে একাধিকবার প্যাকেজ আপডেট সরবরাহ করে।
গিটের পরীক্ষার স্যুটটি এমন একটি রাজ্যে পাস করার জন্য এখনও দু'মাসের প্রচেষ্টা দরকার ছিল, উইন্ডোজ ২ এক্স এর প্রথম অফিসিয়াল গিট প্রকাশ না হওয়া পর্যন্ত আরও অনেক মাস পরেছিল এবং কয়েকটি প্যাচ এখনও তাদের আপস্ট্রিম প্রকল্পগুলিতে জমা দেওয়ার অপেক্ষায় রয়েছে । তবুও এমএসআই 2 ব্যতীত উইন্ডোজের জন্য গিটের আধুনিকায়ন সাধারনত ঘটে না ।
এই প্রতিশ্রুতিটি MSys2- ভিত্তিক গিট বিল্ডগুলিকে সমর্থন করার জন্য মূল কাজ দেয়।
মন্তব্যগুলিতে , প্রশ্নটি জানুয়ারী ২০১ 2016 এ জিজ্ঞাসা করা হয়েছিল:
উইন্ডোজের গিটটি ইতিমধ্যে এমএসওয়াইএস 2-এর উপর ভিত্তি করে, বাইনারিগুলি যা এমুলেশন লেয়ারের উপর নির্ভর করে না তাদের একটি এমএসওয়াইএস 2 প্যাকেজ হিসাবে উপলব্ধ করা হয়েছে?
রে ডোনেলি এই সময়ে উত্তর দিয়েছেন:
আমরা এখনও পুরোপুরি একীভূত হইনি, না। যদিও আমরা এটি নিয়ে কাজ করছি।
তবে ... ম্যাডজ উল্লেখ করেছেন যে ২০১ 2017 সালের শুরুর দিকে, সেই প্রচেষ্টা ব্যর্থ হয় নি।
দেখা:
সমস্যাটি হ'ল আমি এমন পরিবর্তনগুলিতে অবদান রাখতে পারছি না যা সময়মত একটি নতুন এমএসএস 2-রানটাইমের ফলাফল করবে।
যদিও কোনও বড় সমস্যা নয়: আমি উইন্ডোজের জন্য গিটের কাঁটাচামড়া অনির্দিষ্টকালের জন্য চালিয়ে যাব।
উইকিতে এখন উল্লেখ করা হয়েছে (2018):
উইন্ডোজের গিট এমএসএস 2-রানটাইমের জন্য কিছু প্যাচ তৈরি করেছে যা প্রবাহিত প্রবাহকে প্রেরণ করা হয়নি। (এটি পরিকল্পনা করা হয়েছিল, তবে এটি # 284 ইস্যুতে স্থির হয়েছিল যে এটি সম্ভবত হবে না))
এর অর্থ হল এমএসওয়াইএস 2-তে সম্পূর্ণরূপে কাজ করার গিটটি পেতে উইন্ডোজের জন্য কাস্টমাইজড এমএসএস 2-রানটাইমের জন্য গিট ইনস্টল করতে হবে।
নোট করুন যে, aeb582a9 (গিট 2.22, কিউ 2 2019) কমিট করার পরে , গিট ফর উইন্ডোজ প্রকল্পটি সাইগউইন v3.x ভিত্তিক একটি এমএসওয়াইএস 2 রানটাইম সংস্করণে আপগ্রেড প্রক্রিয়া শুরু করেছিল started
mingw
: একটি এমএসওয়াইএস 2 রানটাইম v3.x দিয়ে বিল্ডিংয়ের অনুমতি দিন
সম্প্রতি গিট ফর উইন্ডোজ প্রকল্প সাইগউইন v3.x ভিত্তিক একটি এমএসওয়াইএস 2 রানটাইম সংস্করণে আপগ্রেড প্রক্রিয়া শুরু করেছে project
এটির খুব উল্লেখযোগ্য পরিণতি রয়েছে যা $(uname -r)
"2" দিয়ে আর কোনও সংস্করণ "3" দিয়ে আর রিপোর্ট করে না।
এটি df5218b হিসাবে আমাদের বিল্ডটিকে ভেঙে দেয় ( config.mak.uname
: সমর্থন MSys2, 2016-01-13, গিট v2.8.0-rc0) কেবল uname -r
অন্তর্নিহিত সাইগউইন সংস্করণের উপর নির্ভর করে রিপোর্ট করা সংস্করণটি প্রত্যাশা করেনি: এটি প্রত্যাশিত সংস্করণটির সাথে মিলবে বলে আশা করেছিল " "এমএসওয়াইএস 2" তে 2 "।
সুতরাং আসুন "1" (এমএসএসের জন্য) দিয়ে শুরু করা সংস্করণ ছাড়া অন্য যে কোনও কিছুর জন্য পরীক্ষা করার জন্য সেই পরীক্ষার কেসটি উল্টে দিন।
এটি ভবিষ্যতের জন্য আমাদের রক্ষা করা উচিত, এমনকি সাইগউইন 314.272.65536 এর মতো সংস্করণ প্রকাশের অবসান ঘটান।
গিট 2.22 (কিউ 2 2019) এমএসওয়াইএস 2 রানটাইম v3.x সিরিজের আপডেটের বিরুদ্ধে পরীক্ষার ভবিষ্যত-প্রমাণ হবে।
দেখুন c871fbe কমিট দ্বারা (07 মে 2019) জোহানেস Schindelin ( dscho
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে b20b8fe কমিট , 19 মে 2019)
t6500(mingw)
: শেলের উইন্ডোজ পিআইডি ব্যবহার করুন
উইন্ডোজের উইন্ডোজে আমরা এমএসওয়াইএস 2 ব্যাশ ব্যবহার করি যা সাইগউইনের পোসিএক্স এমুলেশন স্তর থেকে একটি অ-মানক পিআইডি মডেল উত্তরাধিকার সূত্রে প্রাপ্ত হয়: প্রতিটি এমএসওয়াইএস 2 প্রক্রিয়াটিতে একটি নিয়মিত উইন্ডোজ পিআইডি থাকে এবং এর সাথে এটিতে এমএসওয়াইএস 2 পিআইডি থাকে (যা একটি ছায়া প্রক্রিয়ার সাথে মিলিত করে যা অনুভূত হয়) ইউনিক্স-স্টাইলের সিগন্যাল হ্যান্ডলিং)।
MSYS2 রানটাইম v3.x আপগ্রেড সঙ্গে, এই ছায়া প্রক্রিয়া মাধ্যমে অ্যাক্সেস করা যাবে না OpenProcess()
আর কোনো, সেইজন্য এবং t6500 ভুল ভেবেছিলাম যে প্রক্রিয়ায় রেফারেন্সড gc.pid
(যা একটি বাস্তব আসলে নয় gc
আর এই প্রেক্ষাপটে প্রক্রিয়া, কিন্তু বর্তমান শেল) বিদ্যমান।
উইন্ডোজ পিআইডি gc.pid
এই পরীক্ষার স্ক্রিপ্টে লিখিত আছে তা নিশ্চিত করে এটি ঠিক করে ফেলুন
যাতে এটি git.exe
বুঝতে সক্ষম হয় যে প্রক্রিয়াটি এখনও বিদ্যমান রয়েছে।