গিট ত্রুটি বার্তাটি কী "সার্ভার অবচলিত বস্তুর জন্য অনুরোধের অনুমতি দেয় না" এর অর্থ কী?


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। তবে আমি মনে করি না এটি এখানে সমস্যা।


আমি একই কমান্ড চেষ্টা করেছি এবং কোন ত্রুটি ছিল না। আপনার এখনও সমস্যা আছে? Submodule path 'src/http-parser': checked out '6b05cce82da5c4d407e5576ab892bc20a17b0394'
বিটিডব্লিউ

ইস্যু চলে গেছে। আমি মনে করি যে এর অর্থ এই যে সাবমডিউল রেফারেন্সটি একটি চেকআউটের জন্য ছিল যা বিদ্যমান নেই। কিন্তু আমি নিশ্চিত না.
vy32

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

সমস্যাটি দেখে মনে হচ্ছে যে আমি সাবমডিউলটি আপডেট করেছি, প্যারেন্ট রেপো আপডেট করেছি, প্যারেন্ট রেপোকে ধাক্কা দিয়েছি, তবে সাবমোডিয়ালটি ধাক্কা দিচ্ছি না। আক্ষরিক অর্থে, পিতামাতা রেপো এমন একটি প্রতিশ্রুতি উল্লেখ করেছিলেন যা গিথুবের সাবমডিউলের রেপোতে ছিল না।
vy32

উত্তর:


8

jgit - গিট এর বিজ্ঞাপনী রেফস কি? - স্ট্যাক ওভারফ্লো :

আনার সময়, সার্ভারটি উল্লেখ রয়েছে যে এটিতে রয়েছে এবং ক্লায়েন্টটি আনতে ইচ্ছুক হতে পারে list এগুলি হ'ল বিজ্ঞাপনযুক্ত রেফারেন্স।

  • দেখে মনে হচ্ছে আপনি সরাসরি সার্ভার থেকে কোনও একক নির্দিষ্ট প্রতিশ্রুতি পেতে পারেন না, কেবল রেফ (অর্থাত্ শাখা এবং ট্যাগ)। বা বরং, গিথুব সার্ভারগুলি এই জাতীয় অনুরোধগুলি অস্বীকার করার জন্য কনফিগার করা হয়েছে।
  • সুতরাং, আপনি যদি একটি নির্দিষ্ট প্রতিশ্রুতিটি পেতে চান তবে এটি আনতে হবে রেফার রেফ থেকে --depthঅবশ্যই <depth>-1কমিটসটি দূরে থাকতে হবে (যা সাবমডিউলের মেটাডেটাতে উল্লিখিত শাখা / ট্যাগ)

    সাধারণত, ভাবেন শুধু সেটে পরামর্শ depthমত - কিছু সংখ্যা যুক্তিসঙ্গতভাবে বড় কিন্তু এখনও রেপো তে কমিট মোট সংখ্যার চেয়ে অনেক ছোট করার 50বা 100। যেমন 50ট্র্যাভিস প্রকল্পের প্রাথমিক ক্লোন করার সময় যা ব্যবহার করে uses

আপনি যদি সাবমডিউলটি সাথে আপডেট না করে থাকেন তবে প্রতিশ্রুতি সন্ধানে --depthব্যর্থ হওয়ার অর্থ এর অর্থ:

  • সাবমডিউলের গাছটি "অগভীর" অবস্থায় রয়েছে এবং উপরেরটি প্রযোজ্য (কেবল তখনই সম্ভব যখন এটি আগে আপডেট করা হয়েছিল --depthবা এর প্রবেশের সাথে .gitmodulesরয়েছেshallow = true )
  • প্রতিশ্রুতিটি সেই শাখায় নেই যা সাবমডিউলটি ব্যবহার করছে
  • প্রতিশ্রুতি মোটেই সাবমডিউলের রেপোতে নেই:
    • হয় কেউ ভুল করেছে,
    • বা এটি একবার সেখানে ছিল তবে জোর করে ধাক্কা দিয়ে মুছে ফেলা হয়েছিল

রেকর্ডের জন্য, আপনার নির্দিষ্ট ক্ষেত্রে এটি শেষ কেস: প্রতিশ্রুতি রেপোতে 5bbcdc5df9d01b521e8da011bab0da70bdec3653মোটেই নেই https://github.com/simsong/http-parser.git


কী depth?
vy32

আপনি যখন আপডেট করবেন না তখন @ vy32 কেসের জন্য তথ্য যুক্ত করে --depth
আইভান_পোজদেদেব

"এটি একবার সেখানে ছিল কিন্তু জোর করে ধাক্কা দিয়ে মুছে ফেলা হয়েছিল" - এই পরিস্থিতিতে কি কোনও অবদান রয়েছে?
স্কলস্পার

1
@ এস্কলসপার পুনরুদ্ধার করার জন্য একটি পৃথক প্রতিশ্রুতি চয়ন করুন। উদাহরণস্বরূপ যদি এটি একটি সাবমডিউল ছিল, এটি সুপারপোজায় একটি পৃথক প্রতিশ্রুতিতে স্যুইচ করুন।
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...
সিবিহে

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