हाल ही में Google रेपो टूल के लिए मास्टर ब्रांच को विंडोज ओएस को सपोर्ट करने के लिए अपडेट किया गया है। यह प्रतिबद्ध लॉग से स्पष्ट है: https://gerrit.googlesource.com/git-repo/ +लॉग

मैं विंडोज़ पर रेपो टूल का उपयोग करके रेपो इनिट और रेपो सिंक जैसे बुनियादी आदेश चलाने में सक्षम हूं (जो विंडोज़ पर मिनजीडब्ल्यू गिट का उपयोग करता है)। अपने काम में मुझे एक भंडार का स्थानीय दर्पण बनाना होगा और फिर उसका उपयोग करना होगा। मिरर रिपॉजिटरी बनाने के लिए रेपो टूल ठीक काम करता है।

विंडोज ओएस पर लोकल ड्राइव पर मिरर रिपोजिटरी बनाने के लिए यहां कमांड का इस्तेमाल किया गया है।

$ repo.cmd init -u <URL> -b <branch_name> -m <manifest_file_name> --mirror --no-repo-verify

$ repo.cmd sync --no-tags
  • --no-repo-verify का इस्तेमाल रेपो टूल की मास्टर ब्रांच को जबरदस्ती इस्तेमाल करने के लिए किया जाता है।
  • उपरोक्त आदेश स्थानीय ड्राइव C:\git-repo\test\mirror-testing\mirror में मिरर बनाते हैं

लेकिन जब मैं उपरोक्त दर्पण को अन्य ड्राइव में सिंक करने के लिए संदर्भित करता हूं तो यह त्रुटि दिखाता है।

Command:
$ repo.cmd init -u <URL> -b <Branch_name> -m <manifest_file_name> --reference="C:\git-repo\test\mirror-testing\mirror" --no-repo-verify

Error:
error: object directory C:/git-repo/test/mirror-testing/mirror/project/manifest.git/objects? does not exist; check .git/objects/info/alternates.

उपरोक्त आदेश C:/git-repo/test/mirror-testing/mirror/project/manifest.git/objects/info/ निर्देशिका में वैकल्पिक फ़ाइल बनाता है और उस फ़ाइल में पथ के नीचे है:

C:\git-repo\test\mirror-testing\mirror\project/manifest.git\objects

मैंने संदर्भ मूल्य प्रदान करने के लिए अन्य प्रारूपों का प्रयास किया है:

Git format: "/C/git-repo/test/mirror-testing/mirror"
Cygwin format: "/cygdrive/c/git-repo/test/mirror-testing/mirror"

संदर्भ में उपरोक्त स्वरूपों का उपयोग करने से ऑब्जेक्ट निर्देशिका में वैकल्पिक फ़ाइल नहीं बनती है।

उपरोक्त सभी मामलों में रेपो इनिट टाइम बस यह बताता है कि मिरर को रेफर नहीं किया जाता है और इनिट नेटवर्क से किया जाता है।

जब मैं सिग्विन गिट + Google रेपो टूल (स्थिर शाखा) के साथ एक ही परीक्षण दोहराता हूं तो मुझे कोई त्रुटि नहीं दिखाई देती है और दर्पण इनिट और सिंक समय की तुलना में सिंक समय और सिंक समय बहुत कम होता है, जो केवल यह बताता है कि दर्पण संदर्भित है .

  • रेपो.cmd अजगर के साथ रेपो टूल को लागू करने के लिए एक बैच फ़ाइल आवरण है। repo.cmd फ़ाइल में सिंगल लाइन है

    @ कॉल पायथन%~dp0\repo%*

  • मैं इन आदेशों को चलाने के लिए विंडोज 7 में सिगविन टर्मिनल का उपयोग कर रहा हूं।

  • स्पष्ट होने के लिए रेपो इनिट और रेपो सिंक मिरर का जिक्र करते समय त्रुटि दिखाता है लेकिन यह बाहरी नेटवर्क से सिंक करके सफलतापूर्वक पूरा हो जाता है। मुद्दा यह है कि दर्पण को संदर्भित नहीं किया जाता है।

क्या किसी ने संदर्भ के रूप में उपयोग करके अन्य ड्राइव में दर्पण बनाने और सिंक करने के लिए विंडोज़ पर Google रेपो का उपयोग किया है?

0
hsingh 30 नवम्बर 2018, 13:04

1 उत्तर

सबसे बढ़िया उत्तर

मैंने विंडोज 7 और विंडोज 10 पर मिनजीडब्ल्यू गिट के साथ Google रेपो टूल मास्टर शाखा का परीक्षण किया है। दोनों ओएस पर रेपो इनिट और रेपो सिंक काम करते हैं।

यहां तक ​​​​कि --mirror का उपयोग करके स्थानीय दर्पण बनाना काम कर रहा है, लेकिन यह संदर्भित करना कि अन्य ड्राइव में सिंक करने के लिए स्थानीय दर्पण काम नहीं करता है और त्रुटि प्रदर्शित करता है: "ऑब्जेक्ट निर्देशिका नहीं मिली"।

स्थानीय दर्पण के साथ --reference का उपयोग करके स्पष्ट होना त्रुटि दिखाता है, लेकिन यह अंततः नेटवर्क का उपयोग करता है और स्थानीय दर्पण की उपेक्षा करता है। अंततः आदेश सफलतापूर्वक पूरा होता है, लेकिन यह स्थानीय दर्पण का उपयोग नहीं करता है। मुझे अभी के लिए विंडोज़ पर इसके लिए कोई कामकाज नहीं दिख रहा है।

इस बीच विंडोज 10 किसी भी वीएम का उपयोग किए बिना मूल रूप से लिनक्स बैश का समर्थन करता है। WSL, Linux के लिए Windows सबसिस्टम, Windows 10 की एक निःशुल्क, वैकल्पिक विशेषता है जो Linux प्रोग्रामों को Windows पर चलने की अनुमति देता है। यह आपको बैश शेल का एक विंडोज संस्करण और एक संगतता परत प्रदान करता है जो कई लिनक्स प्रोग्रामों को आपके विंडोज मशीन पर मूल रूप से चलाने की अनुमति देता है। इस विकल्प का उपयोग करके आप Cygwin Git को Linux Git से बदल सकते हैं।

मैंने रेपो इनिट, सिंक, मिरर और रेफरेंस कमांड के लिए लिनक्स बैश (उबंटू वितरण स्थापित के साथ) पर रेपो टूल का परीक्षण किया है और यह काम करता है। वास्तव में हम लिनक्स बैश का उपयोग करते हैं, इसलिए बस गूले रेपो स्थिर शाखा काम करती है, आपको इसे काम करने के लिए मास्टर शाखा का उपयोग करने की आवश्यकता नहीं है।

1
hsingh 13 पद 2018, 07:02