"স্থানীয় সম্পাদনা, আপডেটের পরে আগত মুছে ফেলা" বার্তাটি কীভাবে সমাধান করবেন


293

যখন আমি একটি করি svn status ., আমি এটি পাই:

!     C auto-complete-config.elc
      >   local edit, incoming delete upon update
!  +  C auto-complete.elc
      >   local edit, incoming delete upon update
!  +  C popup.elc
      >   local edit, incoming delete upon update
!  +  C fuzzy.elc
      >   local edit, incoming delete upon update

মূলত, এই ফাইলগুলি সংগ্রহস্থলে থাকা উচিত নয়। একজন বিকাশকারী এগুলি সরিয়ে দিয়েছেন। তারপরে, আমি মনে করি svn rm ...ভুল করে সত্যের পরে আমি একটি কাজ করেছি ( svn update .পরিবর্তে এটি করা উচিত ছিল )।

সুতরাং এখন, আমি যখন করি তখন আমি svn status .এই গাছগুলির সংঘাতের বার্তা পাই।

আমি এখানে দস্তাবেজটি পেয়েছি কিন্তু কীভাবে ডক অনুযায়ী এটি "সংহত" করা যায় তা নিশ্চিত।

কীভাবে এগুলি থেকে মুক্তি পাবেন?

আমার মনে হয় আমার ওয়ার্কিং কপিটি সংগ্রহস্থলের সাথে সমলয় রয়েছে। কেন এই বার্তাগুলি দেখায় জানি না। এই ফাইলগুলি সরিয়ে ফেলা উচিত এবং যতদূর আমি জানি সর্বত্র সরিয়ে ফেলা উচিত। আমি চেষ্টা svn update .এবং svn revert .কিন্তু যখন আমি কি আমি এখনও এই বার্তা পেতে svn status .


1
লেসমানার উত্তরটি বার্তাটির জন্যও কাজ করে"local missing or deleted or moved away, incoming dir edit upon merge"
যুদ্ধের মতো শিম্পাঞ্জি

উত্তর:


434

সংক্ষিপ্ত সংস্করণ:

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
$ touch foo bar
$ svn revert foo bar
$ rm foo bar

যদি দ্বন্দ্ব ফাইলগুলির পরিবর্তে ডিরেক্টরি সম্পর্কে হয় তবে তার touchসাথে mkdirএবং rmসাথে প্রতিস্থাপন করুন rm -r


দ্রষ্টব্য: একই পদ্ধতি নিম্নলিখিত পরিস্থিতিতেও কাজ করে:

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update

দীর্ঘ সংস্করণ:

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

svn resolveকাজ করা উচিত নয়, যে কোনও কারণেই আপনি নিম্নলিখিতটি করতে পারেন:

প্রাথমিক পরিস্থিতি: স্থানীয় ফাইলগুলি অনুপস্থিত, আপডেটগুলি বিরোধী।

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

বিরোধী ফাইলগুলি পুনরুদ্ধার করুন:

$ touch foo bar

দ্বন্দ্ব ডিরেক্টরি সম্পর্কে হলে প্রতিস্থাপন touchসঙ্গে mkdir

নতুন পরিস্থিতি: স্থানীয় ফাইলগুলি ভাণ্ডারে যুক্ত করতে হবে (হ্যাঁ ঠিক আছে, এসএনএন, আপনি যাই বলুন), আপডেট করুন এখনও বিরোধী।

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update

ফাইলগুলিকে রাজ্যে ফিরিয়ে দিন এসএনএন তাদের পছন্দ করে (যার অর্থ মুছে ফেলা হয়েছে):

$ svn revert foo bar

নতুন পরিস্থিতি: স্থানীয় ফাইলগুলি এসএনএন-তে পরিচিত নয়, আপডেট আর বিরোধী নয়।

$ svn st
?       foo
?       bar

এখন আমরা ফাইলগুলি মুছতে পারি:

$ rm foo bar

দ্বন্দ্ব ডিরেক্টরি সম্পর্কে হলে প্রতিস্থাপন rmসঙ্গে rm -r

এসএনএন আর অভিযোগ করে না:

$ svn st

সম্পন্ন.


8
দ্বন্দ্ব কোনও ডিরেক্টরিতে থাকলে এটি কাজ করে। পরিবর্তে স্পর্শ foo বিন্যাস বার না mkdir, foo বিন্যাস এবং mkdir, বার । অন্য সব কিছুই এক রকম।
বিপিন জন্নি

svn st | grep ! | cut -f 7 -d' ' | xargs touchসমস্ত নিখোঁজ ফাইলগুলিকে স্পর্শ করার জন্য আপনি একটি লাইনার হিসাবে ব্যবহার করতে পারেন
টিবোর ব্লেনেসি

ডিরেক্টরিগুলির জন্যও মনে রাখবেন rm -r foo bar(বা rmdir foo barউইন্ডোজে বা আপনি উইন্ডোজ পছন্দ করেন)।
ট্রাইসিস

এই উত্তর আমার বিচক্ষণতা বাঁচিয়েছে। ধন্যবাদ.
স্যাম

159

ব্যবহার করে দ্বন্দ্ব সমাধানের চেষ্টা করুন

svn resolve --accept=working PATH

ধন্যবাদ। এটি সঠিক সমাধান বলে মনে হচ্ছে। ("সমাধান" বিকল্পটি আগে জানতাম না। আমি এটি উত্তর হিসাবে চিহ্নিত করেছি Though যদিও কোনও কারণে আমার পক্ষে কাজ হয়নি, সম্ভবত আমার ওয়ার্কিং অনুলিপিটি নষ্ট হয়ে গেছে বা কি নয় ... শেষ পর্যন্ত আমি এটি সমাধান করেছি) শুধু Dir একটি আপডেট মোছা এবং না দ্বারা।
Xah লি

1
এটি আমার পক্ষে প্রথম দিকে কাজ করে না, তাই আমি অস্থায়ী ফোল্ডারে এসএনএন শাখার আর একটি অনুলিপি পরীক্ষা করে দেখলাম। তারপরে আমি সংঘাত সৃষ্টিকারী PATH মুছলাম এবং পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ। এর পরে আমি আমার মূল অনুলিপিটিতে ফিরে গিয়ে এই আদেশটি চালিয়েছি। এটি "পথের বিরোধিত রাষ্ট্রের সমাধান" বার্তাটি নিয়ে কাজ করেছে এটি কাজ করে, ধন্যবাদ :)
ডুরিন

আমার বোধগম্যতা হ'ল মূল মুছে ফেলা হয়েছে বা সংগ্রহস্থলটিতে না থাকলে এটির কোনও ব্যাপার ছিল না, কারণ "সমাধান" কেবলমাত্র ওয়ার্কিং কপির উপর কাজ করে।
govi

আমার জন্য নিখুঁত সমাধান
সের্জিও আলভারেজ

20

আমি ঠিক এই একই সমস্যা পেয়েছি এবং আমি এটি খুঁজে পেয়েছি

$ svn revert foo bar

সমস্যার সমাধান।

এসএনএন রেজলিউশন আমার পক্ষে কাজ করে নি:

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working
svn: Try 'svn help' for more info
svn: Not enough arguments provided

$ svn resolve --accept working .

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working foo
Resolved conflicted state of 'foo'

$ svn st
!  +    foo
!  +  C bar
      >   local edit, incoming delete upon update

2

আপনি যদি বিরোধিত ডিরেক্টরিতে কোনও পরিবর্তন না করেন তবে আপনি rm -rf conflicts_in_here/এবং তারপরেও করতে পারেন svn up। এটি আমার পক্ষে কমপক্ষে কাজ করেছিল।


1

আপনি আপনার স্থানীয় ডিরেক্টরিকে এসএনএন-তে ফিরিয়ে দিতে বাধ্য করতে পারেন।

 svn revert -R your_local_path

ধন্যবাদ, সমাধান করতেও আমাকে সহায়তা করেছে A + C path/to/dirএবং> local dir edit, incoming dir delete or move upon update
রম 237

0

সুতরাং আপনি মুছে ফেলা ফাইলটি কেবল পুনরায় ফেরাতে পারেন তবে মনে রাখবেন, আপনি যদি কোনও সেট প্রকল্প ফাইলের (আইওএসের মতো) কোনও প্রজেক্টে কাজ করে থাকেন তবে ফাইলটি পুনরায় ফেরাতে এটি আপনার সিস্টেম ফোল্ডারের কাঠামোতে যুক্ত হবে তবে আপনার প্রকল্পের কাঠামো নয়। আপনি যদি এই ক্ষেত্রে থাকেন তবে অতিরিক্ত পদক্ষেপের প্রয়োজন হতে পারে


0

আমরা যখন মার্জ করার চেষ্টা করি তখন এই সমস্যাটি প্রায়শই ঘটে একটি ভুল ডিরেক্টরি থেকে অন্য একটি শাখা পরিবর্তনকে ।

উদা:

Branch2\Branch1_SubDir$ svn merge -rStart:End Branch1
         ^^^^^^^^^^^^
   Merging at wrong location

একটি দ্বন্দ্ব যা তার মৃত্যুদন্ড কার্যকর করা হয় তা হ'ল:

Tree conflict on 'Branch1_SubDir'
   > local missing or deleted or moved away, incoming dir edit upon merge

আর আপনি যখন নির্বাচন কুই করতে রেজল্যুশন প্রস্থান , আপনি অবস্থা পাবেন:

 M      .
!     C Branch1_SubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge
!     C Branch1_AnotherSubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge

যা স্পষ্টভাবে এর মানে হল যে একত্রীকরণ এর সাথে সম্পর্কিত পরিবর্তন রয়েছে Branch1_SubDirএবং Branch1_AnotherSubDir, এবং এই ফোল্ডার ভিতরে খুঁজে পাওয়া যাবে নাBranch1_SubDir (স্পষ্টত কোনও ডিরেক্টরি নিজের ভিতরে থাকতে পারে না)।

কীভাবে এই সমস্যাটি প্রথম স্থানে এড়ানো যায়:

Branch2$ svn merge -rStart:End Branch1
 ^^^^
Merging at root location

সবচেয়ে সহজ ফিক্স এই সমস্যা যে আমার জন্য কাজ করুন:

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