মার্চুরিয়াল রিপোজিটরি দুর্নীতি


14

এটি কিছুটা এই প্রশ্নের সাথে সম্পর্কিত তবে এটি একটি আলাদা প্রশ্ন।

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

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

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


আমি এখানে একটি সমাধান পেয়েছি: davidherron.com/blog/topics/… যা সমস্ত ক্লায়েন্টদের উপর করা দরকার। তবে কারও কাছে যদি আরও ভাল সমাধান থাকে যা কেন্দ্রীয় রেপো নিজেই করতে পারে তবে আরও ভাল।
বোবিনবটল

দয়া করে আমাদের আরও বিশদ দিন: আপনি সার্ভারে এবং ক্লায়েন্টগুলির প্রতিটিতে মুরচুরিয়ালের কোন সংস্করণ ব্যবহার করছেন?
মার্টিন গিজার

2
এছাড়াও, এটি আমাদের (মर्कুরিয়াল বিকাশকারী) পক্ষে অত্যন্ত কার্যকর হবে যদি আপনি এটি পুনরুত্পাদন করতে পারেন। দয়া করে এই জাতীয় সমস্যাগুলি আমাদের আমাদের মেলিংলিস্টের মাধ্যমে সরাসরি আমাদের কাছে রিপোর্ট করুন: mercurial.selenic.com/wiki/ মেলিংলিস্ট বা বাগ ট্র্যাকার: সেলেনিক. com/ mercurial / bts যা এখানে পোস্ট করার চেয়ে অনেক বেশি উত্পাদনশীল :-)
মার্টিন গিসার

উত্তর:


4

মার্চুরিয়াল এর সাম্প্রতিক সংস্করণগুলি (১.২০ থেকে) আগত ডেটার বৈধতা সমর্থন করে। যোগ

[server]
validate = True

আপনার সার্ভারের এইচজি কনফিগারেশনে (হয় .hg/hgrcবা hgwebdir কনফিগার ঠিকঠাক কাজ করা উচিত) যাতে সার্ভারটি ইনকামিং ডেটা যাচাই করে এবং অবৈধ পুশগুলি প্রত্যাখ্যান করে। ক্লায়েন্ট তারপরে একটি ত্রুটি দেখতে পাবে:

remote: abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify

আশা করি এইটি কাজ করবে!


2

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

আমি যখন এসভিএন থেকে মার্কুরিয়ালে স্থানান্তরিত হচ্ছিলাম, তখন এটি আমার একটি বন্ধু আমাকে দেওয়া কমপক্ষে একটি পরামর্শ।

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


এইচজি-তে চাপ না দেওয়া তার পুরো উদ্দেশ্যকে হারাতে পারে - একাধিক ব্যবহারকারী একসাথে কাজ করছেন
অ্যানোনিমাস

0

আপনি কি ডেভিড হেরনের ব্লগের মতো একই কাজটি করতে পারবেন না , তবে এটি পূর্বনির্ধারিত করার পরিবর্তে, কেন্দ্রীয় রেপোতে পূর্ববর্তী হুকটি করতে চান?


নাপ :-( আমি চেষ্টা করেছিলাম তবে এটি একটি অচলাবস্থার মধ্যে শেষ হয় a যখন কোনও ক্লায়েন্ট এটি চাপ দেওয়ার চেষ্টা করে সংগ্রহস্থলটিতে একটি লক সংরক্ষণ করে। একটি 'এইচজি যাচাইকরণ' চালানোর জন্য একটি লকও প্রয়োজন হয়, তাই এটি কেবল চিরকাল অপেক্ষা করতে হবে একটি অন্তহীন লুপ।
বোবিনবটল

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

(চেঞ্জগ্রুপ হুক ব্যবহার করে এখনও অচলাবস্থার ফলাফল হয়)
ববিনবটল

আকর্ষণীয় - হুকগুলি অজগর ভিত্তিক বলে মনে হচ্ছে। আপনি কি জানেন যে ভান্ডারটি কলুষিত করছে? প্রতিবার কি একই জিনিস?
রায়ান গিবনস

0

একটি সম্ভাব্য বিকল্প হ'ল:

  1. পুশ করার পরে ভান্ডারটি ক্লোন করুন।
  2. এটি যাচাই করুন।
  3. যদি রেসপোসিটরি ভাল হয় তবে এটি সর্বশেষ ভাল হিসাবে সংরক্ষণাগারভুক্ত করুন
  4. যদি রেসপোসিটরিটি দূষিত হয় তবে একটি অ্যালার্ম উত্থাপন করুন
  5. অ্যালার্মের সময়, সর্বশেষতম পরিচিত ভাল রিসোসিটোরিটি পুনরুদ্ধার করুন।

এই সমাধানটি আপনার যা প্রয়োজন তা নয়, তবে কমপক্ষে, দুর্নীতির ক্ষেত্রে আপনার ভাণ্ডারটি রোলব্যাক করার উপায় পাবেন।

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