সংস্করণ নিয়ন্ত্রণ থেকে কোনও ফাইল মোছা না করে কীভাবে সরিয়ে ফেলবেন?


132

যদি আমি চালনা করি svn rm fileতবে স্থানীয় ওয়ার্কিং কপি থেকে ফাইলটি সরানো হবে।

আমি এখন যা করি তা হ'ল:

$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file

আমি কীভাবে এসএনএন ব্যবহার করে স্থানীয় ফাইল মুছে ফেলা এড়াতে পারি svn rm?


উত্তর:


277

আপনি --keep-localকমান্ড-লাইন বিকল্পটি চান। এটি আপনার ফাইল সিস্টেম থেকে অপসারণ না করে সংস্করণ নিয়ন্ত্রণ থেকে ফাইলটিকে সরিয়ে দেয়।

$ svn rm --keep-local my_important_file

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


4
এটি আপডেট হয়ে যাওয়ার পরেও কি অন্য ব্যক্তির সিস্টেমগুলি থেকে এটি মুছে ফেলা হবে না?
নাইয়ারগডস

1
@ নায়ারগডস এটি সঠিক, কারণ এসএনএন আরএম সংগ্রহস্থল থেকে ফাইলগুলি সরিয়ে ফেলছে। ইভেন্টটি আপনি রেপো থেকে ফাইলগুলি সরাতে চান, তবে সেগুলি স্থানীয়ভাবে আপনার মেশিনে রাখুন তবে আপনি উপরের পতাকাটি ব্যবহার করতে পারবেন।
গ্রেগ হিলস্টন

6
@ গ্রেগহিলস্টন যেমনটি আমি বলেছি, যদিও এটি সত্যিকারের বহুবিধ-প্রোগ্রামার প্রকল্পগুলিতে সহায়তা করে না। ফাইলটি যে কোনও জায়গায় সরিয়ে আনার একটি উপায় থাকা উচিত। এখানে সর্বাধিক সাধারণ ঘটনাটি হ'ল স্থানীয় সেটিংস ফাইলগুলি দুর্ঘটনাক্রমে প্রতিশ্রুতিবদ্ধ (জাভা প্রকল্পগুলিতে খুব সাধারণ), তবে সেগুলি রূপান্তরিত করা অন্য ব্যবহারকারীর সেটিংস ফাইলগুলি মুছা উচিত নয়।
নাইয়ারগডস

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

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

13

স্থানীয়ভাবে স্থানীয়ভাবে মোছা না করে কোনও ফাইল এসভিএন থেকে অপসারণ করা এখন সাধারণ সমস্যা নেই। এর একটি বিশিষ্ট উদাহরণ হল একটি Eclipse প্রকল্পের .classpath ফাইল। এই কনফিগারেশন ফাইলটি এসভিএন-এর অধীনে রাখা যতক্ষণ না প্রকল্পে ব্যবহৃত সমস্ত মেশিনের একই গ্রহ এবং জাভা ইনস্টলেশন সমাপ্ত হয়। এই শর্তটি লঙ্ঘন হয়ে গেলে কমিটগুলি অন্যান্য গ্রহন প্রকল্প ভাঙতে শুরু করে। এই বিন্দুটি হ'ল কোথাও আইএসটি মোছা না করে এসভিএন থেকে একটি ফাইল সরিয়ে ফেলতে হবে।

svn rm --keep-local .classpath

কাজটি একটি মেশিনে এবং সেই সময়ে সঠিকভাবে কাজ করে।

সমস্যা হ'ল অন্য মেশিনগুলি সেই ফাইলটি (আপডেটে) হারিয়ে ফেলতে পারে বা পুনরায় জীবিত করতে পারে (প্রতিশ্রুতিবদ্ধভাবে)। এসভিএন এর ত্রুটিটি না হয় --keep-localসংগ্রহস্থলটিতে পরিচালনা করা বা অন্যান্য কার্যকরী অনুলিপিগুলিতে প্রচার করা। সুতরাং উপরের অন্যান্য সমস্ত মেশিনে কমান্ডটি কার্যকর করতে হবে - কোনও কমিট বা আপডেটের আগে সেরা before

এটি অবশ্যই 90% কার্যকর করবে। মুছে ফেলা এবং পুনরায় সংস্করণগুলি হঠাৎ করেই ঘটবে। আমার সমাধানটি হ'ল প্রতিটি মেশিন রয়েছে, আমার কাছে প্রত্যক্ষ বা পরোক্ষ অ্যাক্সেস আছে, করতে হবে

svn rm --keep-local .classpath
copy .classpath .classpath-nameOfTheMachine
svn add .classpath-nameOfTheMachine

এটিকে একেবারেই কুৎসিত বলা যায় না কেন তাকে খুব সম্ভবত "সমাধান" বলা হয় called তবুও এটি সর্বদা পরবর্তী যে কোনও দুর্ঘটনা দ্রুত মেরামত করার অনুমতি দেয়।


-3

এই সুনির্দিষ্ট প্রশ্নের উত্তর আমার কাছে নেই, তবে আমার কাছে সম্পর্কিত প্রশ্নের উত্তর রয়েছে, যা স্থানীয়ভাবে মুছে না ফেলে সংস্করণ নিয়ন্ত্রণ থেকে সমস্ত ডিরেক্টরি (যেমন একটি নির্দিষ্ট নয়) ডিরেক্টরিতে সরিয়ে ফেলতে হয়। এই সমাধানটি একটি বৈজ্ঞানিক লিনাক্স বাস্তবায়ন থেকে আসে।

ls -a .svn

নিয়ন্ত্রণকারী ডেটা সঞ্চয় করে এমন এসএনএন ডিরেক্টরি প্রদর্শন করা উচিত। কেবল:

rm -r .svn

এই ডিরেক্টরি থেকে মুক্তি পাবেন। তারপরে টাইপ করুন:

svn status

একটি 'সতর্কতা তৈরি করবে: এই ডিরেক্টরিটি কোনও ওয়ার্কিং কপি নয়' ত্রুটি তৈরি করে, কারণ এটি আর সংস্করণ নিয়ন্ত্রণে নেই।

আশা করি এটা কাজে লাগবে.


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