"त्रुटि सर्वर अनजान वस्तु के लिए अनुरोध की अनुमति नहीं देता है" का क्या मतलब है?


23

मैं गितुब से चेकआउट करने की कोशिश कर रहा हूं, और मुझे यह त्रुटि संदेश मिला:

[user@arch ~]$ git clone --recursive https://github.com/simsong/tcpflow.git
Cloning into 'tcpflow'...
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
remote: Counting objects: 4190, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 4190 (delta 21), reused 29 (delta 12), pack-reused 4146
Receiving objects: 100% (4190/4190), 50.27 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (2954/2954), done.
Submodule 'src/be13_api' (https://github.com/simsong/be13_api.git) registered for path 'src/be13_api'
Submodule 'src/dfxml' (https://github.com/simsong/dfxml.git) registered for path 'src/dfxml'
Submodule 'src/http-parser' (https://github.com/nodejs/http-parser.git) registered for path 'src/http-parser'
Cloning into '/home/user/tcpflow/src/be13_api'...
remote: Counting objects: 1203, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 1203 (delta 2), reused 5 (delta 1), pack-reused 1194
Receiving objects: 100% (1203/1203), 477.47 KiB | 1.96 MiB/s, done.
Resolving deltas: 100% (821/821), done.
Cloning into '/home/user/tcpflow/src/dfxml'...
remote: Counting objects: 1929, done.
remote: Total 1929 (delta 0), reused 0 (delta 0), pack-reused 1929
Receiving objects: 100% (1929/1929), 572.09 KiB | 2.89 MiB/s, done.
Resolving deltas: 100% (1294/1294), done.
Cloning into '/home/user/tcpflow/src/http-parser'...
remote: Counting objects: 1487, done.
remote: Total 1487 (delta 0), reused 0 (delta 0), pack-reused 1487
Receiving objects: 100% (1487/1487), 667.24 KiB | 2.46 MiB/s, done.
Resolving deltas: 100% (916/916), done.
Submodule path 'src/be13_api': checked out 'c81521d768bb78499c069fcd7c47adc8eee0350c'
Submodule path 'src/dfxml': checked out 'c31224626cf5f6678d42cbcfbfcd4e6191c9a864'
error: Server does not allow request for unadvertised object 5bbcdc5df9d01b521e8da011bab0da70bdec3653
Fetched in submodule path 'src/http-parser', but it did not contain 5bbcdc5df9d01b521e8da011bab0da70bdec3653. Direct fetching of that commit failed.
[user@arch ~]$

तो मैं इन रेपो का अनुरक्षक हूँ। Src / http-parser एक और रेपो का एक कांटा है, और उस रेपो के अनुरक्षकों ने लगातार मेरे पुल अनुरोधों को स्वीकार नहीं किया है (बिना किसी कारण के) .gitignoreफ़ाइल में कुछ ऑटो-जेनरेट की गई फ़ाइलों को जोड़ने के लिए । लेकिन मुझे नहीं लगता कि यहां यह मुद्दा है।


मैंने एक ही कमांड की कोशिश की है और कोई त्रुटि नहीं थी। क्या आपके पास अभी भी एक मुद्दा है? Btw मेरे मामले में यह अलग प्रतिबद्ध जाँच की:Submodule path 'src/http-parser': checked out '6b05cce82da5c4d407e5576ab892bc20a17b0394'
ge0rdi

मसला दूर हो गया। मुझे लगता है कि इसका मतलब यह है कि सबमॉड्यूल संदर्भ एक चेकआउट के लिए था जो मौजूद नहीं है। लेकिन मुझे यकीन नहीं।
vy32

दूसरों के लिए एक नोट के रूप में उलझन में है लेकिन यह संदेश है, यह तब पैदा हो सकता है जब आप एक सबमॉड्यूल को अपडेट करते हैं, एक पेरेंट मॉड्यूल को नई कमेटी में अपडेट करते हैं, और कभी भी नए कमिट को सबमॉड्यूल में पुश नहीं करते हैं। फिर, निश्चित रूप से, आपको एक कमिट की जांच करने में परेशानी होगी जो सबमॉड्यूल के रिमोट पर मौजूद नहीं है!
पैट्रिक सानन

समस्या यह प्रतीत होती है कि मैंने सबमॉडल को अपडेट किया, पैरेंट रेपो को अपडेट किया, पेरेंट रेपो को पुश किया, लेकिन सबमॉडल को पुश नहीं किया। तो शाब्दिक रूप से, माता-पिता रेपो ने एक ऐसी प्रतिबद्धता का उल्लेख किया था जो गीथब पर सबमॉड्यूल के रेपो में नहीं थी।
v3232

जवाबों:


8

jit - git का विज्ञापित refs क्या है? - ढेर अतिप्रवाह :

एक भ्रूण के दौरान, सर्वर उन संदर्भों को सूचीबद्ध कर सकता है जो उसके पास हैं और ग्राहक को लाने की इच्छा हो सकती है। ये विज्ञापित संदर्भ हैं।

  • ऐसा लगता है कि आप सर्वर से सीधे कोई एकल विशिष्ट प्राप्त नहीं कर सकते, केवल refs (यानी शाखाएं और टैग)। या यों कहें, कि Github सर्वर ऐसे अनुरोधों को अस्वीकार करने के लिए कॉन्फ़िगर किए गए हैं।
  • इसलिए, यदि आप एक विशिष्ट कमिटमेंट प्राप्त करना चाहते हैं--depth<depth>-1 , तो यह सबसे अधिक परिश्रम से दूर होना चाहिए (जो कि सबमॉड्यूल के मेटाडेटा में निर्दिष्ट शाखा / टैग है)

    आमतौर पर, लोग बस depthकुछ संख्या को यथोचित रूप से बड़े पर सेट करने की सलाह देते हैं लेकिन फिर भी रेपो की कुल संख्या की तुलना में बहुत कम है - 50या 100। जैसे 50कि ट्रैविस परियोजना के लिए प्रारंभिक क्लोन करते समय ट्रैविस का उपयोग करता है।

यदि आप सबमॉड्यूल को अपडेट नहीं कर रहे हैं --depth, तो कमिटमेंट खोजने में असफल होने का मतलब यह होगा:

  • submodule के पेड़ (तभी संभव है जब यह पहले से अद्यतन किया गया था "उथले" अवस्था में है और इसके बाद के संस्करण पर लागू होता है --depthया में अपने प्रवेश .gitmodulesकिया हैshallow = true )
  • कमिटमेंट उस शाखा पर नहीं है जिसका उपयोग सबमॉड्यूल कर रहा है
  • यह सबमॉडल के रेपो में प्रतिबद्ध नहीं है:
    • या तो किसी ने गलती की,
    • या यह एक बार वहां था लेकिन एक जबरन धक्का द्वारा हटा दिया गया था

रिकॉर्ड के लिए, अपने विशिष्ट मामले में, यह पिछले मामला था: प्रतिबद्ध 5bbcdc5df9d01b521e8da011bab0da70bdec3653में नहीं है https://github.com/simsong/http-parser.gitसब पर रेपो।


क्या है depth?
v32 32

@ vy32 ने केस के लिए जानकारी जोड़ी जब आप अपडेट नहीं कर रहे हैं --depth
ivan_pozdeev

"यह एक बार वहां था लेकिन एक जबरन धक्का द्वारा हटा दिया गया था" - क्या इस स्थिति में कोई सहारा है?
स्कॉलसुपर

1
@skolsuper को पुनः प्राप्त करने के लिए एक अलग प्रतिबद्ध चुनें। उदाहरण के लिए, अगर यह एक सबमॉड्यूल था, तो इसे सुपरप्रोजेक्ट में एक अलग कमिट पर स्विच करें।
ivan_pozdeev

3

किसी अनजाने ऑब्जेक्ट तक पहुंचने का एक तरीका सिंक करना है। तब एक सबमॉड्यूल अपडेट को काम करना चाहिए, जैसे:

git submodule sync --recursive
git submodule update

1
सादगी के लिए +1। मेरे लिए git submodule updateएक और सबमॉडल पर विफल रहा, लेकिन जब मैंने अपने सभी सबमॉडल्स को सही क्रम में इन दो लाइनों को लागू किया , तो आखिरकार काम किया।
बिशन

2
संभावित रूप से बड़े सुपर-प्रोजेक्ट्स के लिए, आपको वास्तव में $ git submodule sync --recursive; git submodule updateOR ले जाने की सलाह दी जाएगी , अगर यह रिमोट के क्लोनिंग के बाद है, तो बस $ git submodule update --init --recursive। यह प्रभावी रूप से आपके प्रोजेक्ट फ़ाइल-ट्री को /project/root/नीचे से निकाल देगा , जो कि अंदर है /project/root/.gitmodules। बहुत अधिक $ git submodule --help...
Cbhihe

धन्यवाद @ Cbhihe मैं --recursiveध्वज को शामिल करने के लिए उत्तर को संपादित करूँगा ।
कार्वर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.