এসভিএন থেকে মুছে ফেলা ফাইলটি পুনরুদ্ধার করার সঠিক উপায় কী?


119

আমি একটি রেপো থেকে একটি ফাইল মুছলাম এবং এখন এটি আবার রাখতে চাই। আমি যেটা সবচেয়ে ভাল বুঝতে পারি তা হ'ল:

  • মুছে ফেলার আগে পুনর্বিবেচনায় আপডেট করুন
  • অন্য কোথাও ফাইলগুলি অনুলিপি করুন
  • মাথায় আপডেট
  • ফাইলগুলি অনুলিপি করুন
  • তাদের যোগ করুন
  • সমর্পণ করা

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


4
নিশ্চয়ই টুকুশনের উত্তরটি আপনার প্রশ্নের সঠিক প্রত্যুত্তর, এবং তা গ্রহণ করা উচিত?
জেমস ম্যাককর্ম্যাক

@ জেমসম্যাককর্ম্যাক: তার উত্তরে এনবি দেখুন।
বিসিএস

2
একটি টিপ, যদি আপনি ফাইলটি মুছে ফেলে থাকেন এবং এখনও পর্যন্ত পরিবর্তনটি প্রতিশ্রুতিবদ্ধ না করেন, তবে কেবল রিই ক্লিক করুন এবং আপডেট এটি পুনরুদ্ধার করবে।
হামমাদ খান

উত্তর:


57

এসএনএন মার্জ ব্যবহার করুন:

svn merge -c -[rev num that deleted the file] http://<path to repository>

সুতরাং একটি উদাহরণ:

svn merge -c -12345 https://svn.mysite.com/svn/repo/project/trunk
             ^ The negative is important

কচ্ছপ এসভিএন এর জন্য (আমার মনে হয় ...)

  • এক্সপ্লোরারে ডান ক্লিক করুন, কচ্ছপ এসভিএন -> মার্জ করুন ... এ যান
  • নিশ্চিত হয়ে নিন যে "সংশোধনগুলির একটি ব্যাপ্তি মার্জ করুন" নির্বাচন করা হয়েছে, পরবর্তী ক্লিক করুন
  • "সংশ্লেষ করতে সংশোধন পরিসর" পাঠ্যবক্সে, ফাইলটি সরিয়ে দেওয়া সংশোধনটি নির্দিষ্ট করুন
  • "বিপরীত মার্জ" চেকবক্সটি পরীক্ষা করুন, পরবর্তী ক্লিক করুন
  • মার্জ ক্লিক করুন

এটি সম্পূর্ণরূপে অনির্ধারিত।


ওপি দ্বারা সম্পাদিত : এটি আমার টরটোইজএসভিএন সংস্করণে কাজ করে (পরবর্তী বোতাম ছাড়াই পুরানো ধরণের)

  • যে ফোল্ডারে জিনিসটি নির্বিঘ্নিত হয়েছিল সেটিতে যান
  • এক্সপ্লোরারে ডান ক্লিক করুন, কচ্ছপ এসভিএন -> মার্জ করুন ... এ যান
  • মধ্যে থেকে অধ্যায় সংস্করণ যে ডিলিট করলেন লিখুন
  • মধ্যে করতে অধ্যায় ডিলিট করার আগে রিভিশন লিখুন।
  • "মার্জ" ক্লিক করুন
  • সমর্পণ করা

কৌশলটি পিছনের দিকে মার্জ করা । আমাকে সঠিক দিকে নির্দেশ করার জন্য শান.ব্রাইট থেকে কুদোস !


সম্পাদনা করুন: আমরা বিভিন্ন সংস্করণ ব্যবহার করছি। আমি যে পদ্ধতিটি বর্ণনা করেছি তা আমার টরটোইজএসভিএন এর সংস্করণটির সাথে পুরোপুরি কাজ করেছিল।

এছাড়াও লক্ষণীয় বিষয় হ'ল যদি প্রতিশ্রুতিতে যদি আপনি বিপরীত মার্জ হয়ে যাচ্ছেন তবে একাধিক পরিবর্তন ঘটেছিল, আপনি প্রতিশ্রুতি দেওয়ার আগে মার্জ হয়ে যাওয়ার পরে আপনি এই অন্যান্য পরিবর্তনগুলি ফিরিয়ে নিতে চাইবেন। যদি আপনি এটি না করেন তবে এই অতিরিক্ত পরিবর্তনগুলিও বিপরীত হবে।


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

কচ্ছপের ডান ক্লিক মেনুতে "মার্জ" হয়েছে। রেভের জন্য এটি পূরণ করার বাক্স রয়েছে। এটি সঠিকভাবে সেট হয়ে গেছে কিনা তা দেখতে "শুকনো চালান"। এবং মনে রাখবেন, আপনি এটি সম্পাদন না করা পর্যন্ত ফলাফল গণনা করা হয় না। সব কিছু হাইওয়ে হয়ে গেলে আপনি ফিরে যেতে পারেন।
gberry

আমি বলতে চাই যে ওপিতে টরটোজের একটি পুরানো সংস্করণ রয়েছে। নতুনটির একটি আলাদা (নিকৃষ্ট) মার্জ সংলাপ রয়েছে
1800 তথ্য

আমি এখনও এমন কোনও মার্জ সিস্টেম দেখেছি যা চুষেনি। পাঠ্য, ফাইল, ডায়ার্স, ওয়ার্ড ডক্স, ইয়াক। আমি মনে করি এটি সমাধানযোগ্য সমস্যা নয়। OTOH জিনিস কমবেশি চুষতে পারে। :)
বিসিএস

1
যদি আপনি বেশ কয়েকটি ফাইলকে রিভার্ট করেন এবং তারপরে রিভার্টগুলির মধ্যে একটি রিভার্ট করেন তা হ'ল আনরেভার্টিং। সেকি! আমি জিনিস আমি কিছু আঘাত।
বিসিএস

176

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

কচ্ছপ এসভিএন ব্যবহার করে আপনি এমন কোনও ফাইল পুনরুত্থিত করতে পারেন যা আপনার ওয়ার্কিং কপি ডিরেক্টরি থেকে মুছে ফেলা হয়েছে এবং পরে এসভিএন সংশোধনগুলি থেকে একটি এসএনএন কপির মাধ্যমে নীচে লিখেছেন:

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

মুছে ফেলা ফাইলটি এখন ওয়ার্কিং কপি ফোল্ডারে থাকবে। এটিকে আবার এসভিএন-এ যুক্ত করতে, পুনরুদ্ধার করা ফাইলটিতে ডান ক্লিক করুন এবং এসভিএন কমিট নির্বাচন করুন।

নোট: এই পদ্ধতিটি পুনরুদ্ধার করা ফাইলটির পূর্ববর্তী ইতিহাস সংরক্ষণ করবে, তবে কচ্ছপ এসভিএন লগের পূর্ববর্তী ইতিহাসটি দেখতে আপনাকে লগ বার্তাগুলির ডায়ালগটিতে "অনুলিপি / পুনর্নবীকরণের উপর থামানো" চেক করা আছে কিনা তা নিশ্চিত করতে হবে।


26
এটি সরাসরি সার্ভারেও সঞ্চালিত হতে পারে, যদি মুছে ফেলা ফাইল বা ফোল্ডারটি বেশ বড় ছিল তবে কার্যকর হবে: svn cp -r 1993 http://example.com/svn/trunk/path@1993 http://example.com/svn/trunk/path
ক্রেগ

এটি করার সঠিক উপায় এটি। কেবল কচ্ছপ এসভিএন ১.৮.১ দিয়ে চেষ্টা করেছি এবং এটি পরামর্শ অনুযায়ী কাজ করে।
ডাঃ জিয়ানলুইগি জেন ​​জানেটিটিনি

পারফেক্ট !! সহজ এবং কার্যকর। সমাধানের জন্য ধন্যবাদ
হান্টার

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

৩ য় ধাপে "ঠিক আগে" গুরুত্বপূর্ণ। চতুর্থ ধাপে, টর্টোইস অভিযোগ করে চলেছে যে ফাইলটি ইতিমধ্যে রয়েছে, যদিও আমি এটি একটি উইন্ডোজ মুছার ব্যবহার করে মুছে ফেলেছিলাম। আমাকে প্রথমে আমার ওয়ার্কিং কপি আপডেট করতে হয়েছিল। (আমার সহকর্মী কচ্ছপ মোছা ব্যবহার করে বেশ কয়েকটি ফাইল মুছে ফেলেছিল এবং তারপরে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ)) কচ্ছপ এসভিএন ১.৮.১।
লিবিড

27

সম্পূর্ণতার জন্য, আপনি কী সন্ধান করবেন তা যদি আপনি জানতেন তবে আপনি এসএনএন বইতে এটি খুঁজে পেতে পারেন। এটি আপনি ইতিমধ্যে আবিষ্কার করেছেন:

পূর্বাবস্থায় ফিরে আসা

মোছা আইটেমগুলি পুনরুদ্ধার করা হচ্ছে

একই জিনিস, বইটির আরও সাম্প্রতিক (এবং বিস্তারিত) সংস্করণ থেকে:

পূর্বাবস্থায় ফিরে আসা

মোছা আইটেমগুলি পুনরুদ্ধার করা হচ্ছে


3
সর্বাধিক সমস্যা দেখাতে চলেছে কী কী সন্ধান করা উচিত তা জেনে।
বিসিএস 18

16

প্রত্যাবর্তিত পরিবর্তনগুলি ফিরিয়ে আনতে কচ্ছপ এসভিএন কপি কার্যকারিতাটি ব্যবহার করুন:

  1. মুছে ফেলা ফাইল / ফোল্ডার ধারণ করে এমন প্যারেন্ট ফোল্ডারে ডান ক্লিক করুন
  2. "প্রদর্শন লগ" নির্বাচন করুন
  3. যে সংস্করণটি পরিবর্তন / মোছা হয়েছিল তার আগে নির্বাচন করুন এবং ডান ক্লিক করুন
  4. "ব্রাউজ সংগ্রহস্থল" নির্বাচন করুন
  5. ফাইল / ফোল্ডারটি নির্বাচন করুন যা পুনরুদ্ধার করতে হবে এবং ডান ক্লিক করুন
  6. "অনুলিপি করুন" নির্বাচন করুন যা ফাইল / ফোল্ডারগুলি প্রধান পুনর্বিবেচনায় অনুলিপি করবে

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


13

আমি সর্বদা সার্ভার অপারেশন হিসাবে এসএনএন কপি ব্যবহার করি বলে মনে হয় যাতে এটি দুটি কার্যপথের সাথে কাজ করে কিনা তা নিশ্চিত নয়।

প্রকল্পের স্থানীয় ওয়ার্কিং কপির সাথে মুছে ফেলা ফাইলটি পুনরুদ্ধারের উদাহরণ এখানে রয়েছে:

svn copy https://repos/project/modules/module.js@3502 modules/module.js

প্রকল্প ডিরেক্টরি ভিতরে থাকা অবস্থায়। এটি পুরো ডিরেক্টরি পুনরুদ্ধার করার জন্য পাশাপাশি কাজ করে।


2
+1 অনুলিপি @ কাজ করেছে। অনুলিপি -আর ম্যাক ওএসএক্স এর অধীনে কোলাবনেট এসএনএন 1.6.17 ব্যবহার করার জন্য কাজ করছে বলে মনে হচ্ছে না।
ধূসর

2
এছাড়াও ব্যবহৃত পুনর্বিবেচনাটি মোছার ঠিক আগে সংশোধন হওয়া উচিত ।
ধূসর

6

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

  1. যেখানে আপনি ফাইলটি মোছা হয়েছে সেখানে ওয়ার্কিং কপির ফোল্ডারে ব্রাউজ করুন।
  2. রেপো-ব্রাউজারে যান।
  3. আপনি যেখানে ফাইলটি মুছলেন সেখানে পুনর্বিবেচনায় ব্রাউজ করুন।
  4. পরিবর্তন তালিকায় আপনার মুছে ফেলা ফাইলটি সন্ধান করুন।
  5. ফাইলটিতে ডান ক্লিক করুন এবং "এই পরিবর্তন থেকে পরিবর্তনগুলি ফিরে যান" এ যান "
  6. এটি ইতিহাস রেখে আপনার কার্যকরী অনুলিপিটিতে ফাইলটি পুনরুদ্ধার করবে।
  7. ফাইলটিকে পুনরায় আপনার ভাণ্ডারে যুক্ত করতে প্রতিশ্রুতিবদ্ধ।

ঠিক আছে সেক্ষেত্রে, প্রশ্নটি ছিল আপনি কীভাবে স্রেফ বর্ণনা করেছেন তা কীভাবে করবেন। (উত্তর: পিছনের দিকে মার্জ ব্যবহার করুন)
বিসিএস

1
আমি এটি কচ্ছপ এসভিএন-এ কীভাবে করব তা নিয়ে কথা বলছিলাম। আমি আরও বিশদ যুক্ত করব।
ডেভোগোনস

5

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

আমি এই উদাহরণে নিম্নলিখিতটি ব্যবহার করি এবং এটি বেশ ভালভাবে কাজ করে।

svn copy -m 'restoring file' -r <rev_number_file_to_restore> http://from/file.cs http://pathTo/file.cs

আমি সর্বদা svn copyএকটি সার্ভার অপারেশন হিসাবে ব্যবহার করি বলে মনে হয় তাই এটি নিশ্চিত নয় যে এটি দুটি কার্যপথের সাথে কাজ করে।


3
এসভিএন কপি হল প্রস্তাবিত পদ্ধতি approach সিনট্যাক্সটি খুব সহজ: এসভিএন অনুলিপি [এসভিএন ইউআরএল] @ [পুনর্বিবেশন # যেখানে ফাইল উপস্থিত রয়েছে] [স্থানীয় পাথ পুনরুদ্ধার করতে]] ভিজ্যুভসভন.কম / সাপোর্টব্যাক / ব্র্যাঙ্কারমেজ / বেসিকর্মিং থেকে । সবেমাত্র এটি আমি নিজেই ব্যবহার করেছি।
amit

এটি আমার কাছে সবচেয়ে বেশি
অর্থবোধ

4

সঙ্গে কচ্ছপের SVN :

আপনি যদি এখনও আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ না হন তবে আপনি যে ফর্মেন্ট বা ডিরেক্টরিটি মুছলেন সেখানে প্যারেন্ট ফোল্ডারে আপনি একটি রিভার্ট করতে পারেন।

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


সুন্দর। আমি পরের বার চেষ্টা করব।
বিসিএস

1

আপনি যে ফাইলটি পুনরুদ্ধার করতে চান তা কেবলমাত্র আপনার পরীক্ষা করতে সক্ষম হওয়া উচিত। সর্বশেষ সংশোধন svn co svn://your_repos/path/to/file/you/want/to/restore@revযেখানে revফাইলটির অস্তিত্ব ছিল এমন কিছু করার চেষ্টা করুন ।

কিছুক্ষণ আগে আমাকে ঠিক এটি করতে হয়েছিল এবং যদি আমি সঠিকভাবে মনে করি, কাজ না করার -rবিকল্পটি ব্যবহার করে svn; আমাকে :revসিনট্যাক্স ব্যবহার করতে হয়েছিল । (যদিও আমি এটি পিছনের দিকে মনে রেখেছিলাম ...)


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