এসভিএন যখন দুটি শাখায় ফাইল যুক্ত করা হয় তখন নতুন গাছের বিরোধগুলি কীভাবে সমাধান করবেন


95

কয়েকটি শাখা মার্জ করার সময় (এসভিএন ১..1.১ ব্যবহার করে) যেখানে উভয় শাখায় একটি ফাইল যুক্ত করা হয়েছে (এবং তারপরে separate পৃথক শাখায় কাজ করা হয়েছিল) আমি নতুন গাছের দ্বন্দ্বগুলির মধ্যে একটি পাচ্ছি:

      C foo.txt
  >   local obstruction, incoming add upon merge

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

আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি? এসভিএন রেডিয়েন বইটি (১.6 এর জন্য) এই পরিস্থিতিটি অন্তর্ভুক্ত করে না।

উত্তর:


40

যেমন "ট্রি কনফ্লিক্ট" ডিজাইন ডকুমেন্টের একটি পুরানো সংস্করণে (২০০৯) উল্লেখ করা হয়েছিল :

সংস্করণযুক্ত ফাইলের সংশ্লেষ থেকে এক্সএফএআইএল বিবাদ

এই পরীক্ষাটি একত্রিত করে যা বিদ্যমান সংস্করণযুক্ত ফাইলটিতে ইতিহাস ছাড়াই একটি ফাইল সংযোজন নিয়ে আসে
এটি ' local obstruction, incoming add upon merge' জাতের ফাইলে একটি গাছের সংঘাত হওয়া উচিত । R35341 এ স্থির প্রত্যাশা।

(একে একে ক্লিয়ার কেসে "দুষ্ট যমজ "ও বলা হয়):
একটি ফাইল দুটি পৃথক শাখায় দু'বার (এখানে" যোগ "করা হয়েছে) তৈরি করা হয়, দুটি ভিন্ন উপাদানের জন্য দুটি পৃথক ইতিহাস তৈরি করে, তবে একই নামের সাথে।

তাত্ত্বিক সমাধান হ'ল গন্তব্য শাখায় সেই ফাইলগুলি (একটি বাহ্যিক ডিফ সরঞ্জাম সহ) ম্যানুয়ালি মার্জ করা B2

আপনি যদি এখনও উৎস ডালে কাজ করেন, তাহলে আদর্শ দৃশ্যকল্প উৎস শাখা থেকে যে ফাইল মুছে ফেলার জন্য হবে B1থেকে একত্রীকরণ ফিরে B2যাও B1অর্ডার যে ফাইল দৃশ্যমান করার জন্য B1(আপনি হবে তারপর একই উপাদান কাজ)।
কারণ মার্জ শুধুমাত্র থেকে ঘটে মার্জ ফিরে সম্ভব না হয়, তাহলে B1করতে B2, তারপর একটি ম্যানুয়াল একত্রীকরণ প্রত্যেকের জন্য প্রয়োজন হবে B1->B2মার্জ।


4
"গাছের সংঘাত" ডিজাইনের ডকটি লিঙ্কটি পচা হয় :(
হোয়াইট04

4
মজার বিষয় হ'ল উভয় যুক্ত ফাইলগুলি একই হলেও তারা এখনও বিরোধী হিসাবে দেখায়। এটি সত্যই কোনও বিরোধ হিসাবে চিহ্নিত করা উচিত নয়।
সান্টিবাইলর্স

4
সান্তিবাইলার্স @ মজাদার আমি এখনই মারা যাচ্ছি। আমার পুরানো বন্ধুত্বের জন্য মারা যাচ্ছে ...
শীতের

164

আমি একটি পোস্ট পেয়েছি তার সমাধানের পরামর্শ দিচ্ছি । এটি চলতে চলেছে:

svn resolve --accept working <YourPath>

যা স্থানীয় সংস্করণ ফাইলগুলিকে ঠিক হিসাবে দাবি করবে।
আপনি এটি একক ফাইল বা পুরো প্রকল্প ক্যাটালগের জন্য চালাতে পারেন।


4
ধন্যবাদ, এটিও সমাধান করে: সি foo.txt> লোকাল অ্যাড,
ইনডামিং

4
ধন্যবাদ এটি আমার পক্ষেও কাজ করেছে তবে আমাকে এটি করতে হয়েছিল: এসএনএন রেজলিউশন
ফাইল ফাইল গ্রহণ করুন

4
হ্যাঁ আপনার একটি ফাইলের নাম দরকার। এটা 'গ্রহণ করে।' (বর্তমান ডিরেক্টরি) আমার এটিকে পুনরাবৃত্তভাবে করার দরকার ছিল: "এসএনএন রেজলিউশন - কাজ করা - রিসিভারসিভ গ্রহণ করুন।" আপনার কার্যকরী অনুলিপিটির পক্ষে সমস্ত কিছু সমাধান করুন (বিপজ্জনক! আপনি যখন এটি করছেন তখন আপনি অন্য ব্যক্তির পরিবর্তনগুলি বয়ে আনতে পারেন, বরাবরের মতো সমস্যার সমাধান করার সময়)
হ্যারি উড

আমি গাছের সাথে দ্বন্দ্বযুক্ত ফাইলগুলির তালিকা তৈরি করার জন্য আমার তৈরি একটি নাম ব্যবহার করেছি: alias mtc='stat | awk "BEGIN { FS=\" \" } /^.{6}C/ { print \$NF }"' তারপরে আমি এটিকে সমাধান কমান্ডের যুক্তি হিসাবে এটি ব্যবহার করতে পারি: svn resolve --accept working $(mtc)
আর্ল জেনকিনস

4
প্রকৃতপক্ষে আপনারও উত্সটি নির্দিষ্ট করতে হবে যেমন: svn resolve --accept working path/index.html
টমাসজ কুটার

9

আগত পরিবর্তনগুলি যদি আপনি চান তবে কী হবে? আমি এসএনএন রেজলিউশন চালাতে পারছি না - তাদের পুরোপুরি গ্রহণ করুন

এসএনএন রেজলিউশন - গ্রহণ বেস


4
আমি মনে করি আমি প্রশ্নটি ভুল বুঝেছি। 'বেস' আসলে 'এসএনএন রেজোলিউশন' ব্যবহার করার সময় 'তাদের সম্পূর্ণ' সমতুল্য তবে এটি আপনার সমস্যার সমাধান করে না। পরিবর্তে আমি যা করেছি, তা ছিল এটি দুটি ভাগে বিভক্ত: 1) আমার স্থানীয় বিরোধী ডিরেক্টরি মুছে ফেলুন (বা ফাইল), 2) মার্জ করুন। এটি দ্বন্দ্ব ছাড়াই চলতে হবে এবং যেহেতু 'আগত পরিবর্তনগুলি আপনি যা চান এটিই', তাই আমি মুছে ফেলা আইটেমগুলির বিষয়ে চিন্তা করব না
গ্যাব্রিয়েল এফটি গোমেস

3

আমি উপরের ইউজার 19১৯৩৩ এর পরামর্শ অনুসরণ করার চেষ্টা করে নিজেকে পুরোপুরি আটকে রেখেছি। পরিস্থিতিটি ছিল: (1): আমি আমার প্রাথমিক শাখা, শাখা 1 এ কাজ করার সময় কিছু ফাইল যুক্ত করেছি; (২) আমি আরও উন্নয়নের জন্য একটি নতুন শাখা, শাখা 2 তৈরি করেছি, এটি ট্রাঙ্ক থেকে বন্ধ করে শাখা 1 থেকে আমার পরিবর্তনগুলিতে মার্জ করে (3) একজন সহকর্মী আমার মোডগুলি শাখা 1 থেকে নিজের শাখায় অনুলিপি করেছিলেন, আরও মোডগুলি যুক্ত করেছিলেন, এবং তারপরে আবার ট্রাঙ্কে মিশে গেল; (4) আমি এখন ট্রাঙ্ক থেকে সর্বশেষ পরিবর্তনগুলি আমার বর্তমান কার্যকারী শাখা, শাখা 2 এ একীভূত করতে চেয়েছি। এটি এসএনএন 1.6.17 এর সাথে।

মার্জটিতে নতুন ফাইলগুলির সাথে গাছের দ্বন্দ্ব ছিল, এবং আমি ট্রাঙ্কের মধ্যে নতুন সংস্করণটি চেয়েছি যেখানে তারা পৃথক হয়েছে, তাই শাখা 2 এর একটি পরিষ্কার কপি থেকে, আমি এই শাখা 2 পরিবর্তনগুলি সংঘবদ্ধ করেছিলাম, এই শাখা 2 পরিবর্তন করেছিলাম (এইভাবে একটি অস্থায়ী তৈরি করা হবে) প্রশ্নযুক্ত ফাইল ব্যতীত ব্রাঞ্চ 2 এর সংস্করণ) এবং তারপরে ট্রাঙ্ক থেকে আমার মার্জ হয়ে গেল। আমি এটি করেছি কারণ আমি ইতিহাসটি ট্রাঙ্কের সংস্করণটি মেলানোর চেয়েছিলাম যাতে ট্রাঙ্কে ফিরে একত্রীকরণের চেষ্টা করার পরে আমার আরও সমস্যা না হয়। মার্জটি ঠিকঠাক হয়ে গেল, আমি ফাইলগুলির ট্রাঙ্ক সংস্করণ পেয়েছি, এসএনএনএস সব ঠিক আছে, এবং তারপরে পরিবর্তনগুলি করার চেষ্টা করার সময় আমি আরও গাছের সংঘাতের শিকার হয়েছি, এর আগে আমি যে মুছে ফেলা হয়েছিল এবং মার্জটি থেকে যুক্ত করেছি from আমার কার্যকরী অনুলিপি (যা এখন ফাইলগুলির ট্রাঙ্ক সংস্করণ ছিল) এর পক্ষে বিরোধগুলির একটি এসএনএন সমাধান করেছে এবং এটি প্রতিশ্রুতিবদ্ধ হতে পেরেছিল।

ভাল, না। ব্রাঞ্চ 2 এর অন্য অনুলিপিটির আপডেটের ফলে ফাইলগুলির পুরাতন সংস্করণ (প্রাক ট্রাঙ্ক একীভূত) হয়েছিল। সুতরাং এখন আমার কাছে শাখা 2 এর দুটি পৃথক ওয়ার্কিং কপি রয়েছে, ধারণা করা হচ্ছে একই সংস্করণে আপডেট করা হয়েছে, ফাইলগুলির দুটি পৃথক সংস্করণ রয়েছে এবং উভয়ই জোর দিয়েছিলেন যে তারা সম্পূর্ণ আপডেট রয়েছে! ব্রাঞ্চ 2 এর একটি পরিষ্কার কপি চেক করার ফলে ফাইলগুলির পুরাতন (প্রাক ট্রাঙ্ক) সংস্করণ দেখা দিয়েছে। আমি এগুলি ম্যানুয়ালি ট্রাঙ্ক সংস্করণে আপডেট করি এবং পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করি, আমার প্রথম কার্যকরী অনুলিপিটিতে ফিরে যাই (যা থেকে আমি ট্রাঙ্কের পরিবর্তনগুলি মূলত জমা দিয়েছিলাম), এটি আপডেট করার চেষ্টা করুন, এবং এখন প্রশ্নযুক্ত ফাইলগুলিতে একটি চেকসাম ত্রুটি পেয়েছি। প্রশ্নে ডিরেক্টরি দূরে ফুঁকুন, আপডেটের মাধ্যমে একটি নতুন সংস্করণ পান এবং শেষ পর্যন্ত আমার কাছে ট্রাঙ্ক পরিবর্তনের সাথে ব্রাঞ্চ 2 এর একটি ভাল সংস্করণটি কী হওয়া উচিত। আমি আশা করি. গুহাত বিকাশকারী।

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