সাবভারশন স্থিতি প্রতীক "~" এর অর্থ কী?


110

আমি একটি টিলড প্রতীক পাচ্ছি যখন আমি এটি করি svn status

এক্সকোডে এটি সম্পাদনা করার পরে প্রকল্পের আউটপুট এখানে।

svn status
M      build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M      build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M      build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~      build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M      main.m
//more changed files

কোন ধারণা কি এর মানে? এটি গুগল বা এসভিএন চিট শিটগুলির কোনওটিতে খুঁজে পাওয়া যায় না।

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

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


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

উত্তর:


88

SVN বইয়ের বলেছেন:

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

সুতরাং সম্ভবত এটি মূলত একটি একক ফাইল ছিল, তবে আপনি কি এটি একটি ডিরেক্টরিতে পরিবর্তন করেছেন, বা সেই লাইনগুলি বরাবর কিছু?


1
দেখে মনে হচ্ছে আপনি ঠিক আছেন। .Svn ফাইল ছাড়াই এটি এখন ডিরেক্টরি। কীভাবে এটি ঠিক করবেন? আমার কি এটিকে সাবস্ট্রেশন থেকে মুছে ফেলা এবং আবার যুক্ত করার দরকার আছে?
জারগ্যাসন

এই সমস্যাটি সমাধান করার কোনও উপায় আপনি খুঁজে পেয়েছেন?
ফিল প্যাফোর্ড

48
নতুন সমাধানটির নতুন নামকরণের ক্ষেত্রে সেরা সমাধান হ'ল (আপনার ক্ষেত্রে ডিরেক্টরিটি); সংগ্রহস্থল থেকে "এসএনএন অপসারণ" অবজেক্টটি যা সংঘর্ষের কারণ হয়ে উঠছে (সম্ভবত আপনি মুছে ফেলা একটি ফাইল), প্রতিশ্রুতিবদ্ধ করুন, তারপরে নতুন বস্তুর নাম পরিবর্তন করুন এবং এটি "এসভিএন অ্যাড" সংরক্ষণ করুন। আবার প্রতিশ্রুতিবদ্ধ। আপনার কাছে 3 টি পুনর্বিবেচনার ক্রম থাকবে যেখানে পুরানো বস্তুটির অস্তিত্ব ছিল, সরানো হয়েছিল এবং যথাক্রমে নতুন বস্তুটি যুক্ত করা হয়েছিল।
ব্রায়ান লেসি

8
এই থ্রেডটি পড়ার ক্ষেত্রে যদি একই সমস্যা হয়: আমার সাথে এটি ঘটেছিল এবং '~' স্থিতির কারণ হ'ল আমার কাছে ভান্ডারটিতে কিছু প্রতীকী লিঙ্ক ছিল, যা একটি 'সেড-আই' অপারেশন দ্বারা স্ট্যান্ডার্ড ফাইল দ্বারা ওভাররাইট করা হয়েছিল । আমি প্রতীকী লিঙ্কগুলি পুনরায় তৈরি করেছি এবং '~' চলে গেল।
জবি

5
আজ জ্যামিবুলকেরও একই কারণে আমার একই ঘটনা ঘটেছে। সমস্যাটি কী তা জানার আগেও আমি এই আদেশটি চেষ্টা করেছি: svn status | grep ^~ | grep -o [^[:space:]]\*\$ | xargs svn revertযা সমস্ত সিমলিংকগুলি পুনরুদ্ধার করতে সক্ষম হয়েছিল।
পল

34

আমি যা করেছি তা এখানে:

যদি ফোল্ডারটি টেস্ট হয়

  1. এমভি টেস্ট টেস্ট 1
  2. svn পরীক্ষা সরান
  3. এমভি টেস্ট 1 টেস্ট

5
এটি আমার পক্ষে ততদিন কাজ করেছে যতক্ষণ আমি অপসারণ এবং যোগ করার মধ্যে প্রতিশ্রুতিবদ্ধ। 1. এমভি টেস্ট টেস্ট 1 2. এসএনএন টেস্ট ৩. এসএনএন কমিট-এম "রিমোটড টেস্ট" ৪. এমভি টেস্ট ১ টেস্ট ৫। এসএনএন টেস্ট 6.. এসএনএন কমিট-এম "অ্যাডেড টেস্ট"
ব্র্যান্ডন ব্রডজেস্কি

1
@ স্যানস্লট এর উত্তর আরও ভাল; যদি ব্যবহার করে থাকেন তবে আপনার নতুন নামকরণের দরকার নেই svn delete --keep-local fileName
ডনসং

15

থেকে

svn help status

'~' সংস্করণযুক্ত আইটেমটি কোনও ভিন্ন ধরণের কিছু আইটেম দ্বারা বাধা

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

আশাকরি এটা সাহায্য করবে.


12

এটির সমাধানের সবচেয়ে সহজ উপায় হ'ল ব্যাকআপ করা, তারপরে এই ফোল্ডার বা ফাইলটি মুছে ফেলুন এবং তারপরে "এসএনএন আপ" করুন: এটি কোনও ফোল্ডার কোনও ফাইল দ্বারা পুনরায় প্রতিস্থাপন করা প্রয়োজন নয়, এটি কেবলমাত্র .svn ফোল্ডারটি অনুপস্থিত বা দূষিত রয়েছে be ।


11
svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"

নতুন নামকরণের দরকার নেই। আপনি সেরা উত্তর দিয়েছেন।
ডনসং

সর্বোত্তম উত্তর! এটি সমস্যার সমাধান করে। আমার ক্ষেত্রে এটি নিয়মিত ফাইল হিসাবে প্রতিশ্রুতিবদ্ধ একটি নরম লিঙ্ক ছিল।

10

আপনি যখন কোনও ফোল্ডারে .svn ফোল্ডারটি মুছে ফেলেন তখন এটি ঘটতে পারে (উদাহরণস্বরূপ আপনি যখন কোনও ডিরেক্টরি মুছে ফেলেন এবং তারপরে আপনি আবার একই ডিরেক্টরিটি তৈরি করেন) বা আপনি যখন কোনও ডিরেক্টরিকে প্রতীকী লিঙ্ক, বা একই নামের সাথে একটি ফাইল প্রতিস্থাপন করেন তখন ।

মনে করুন এটি একটি ফোল্ডারটিকে একটি ফোল্ডার বলে, আপনি প্যারেন্ট ফোল্ডারে নিম্নলিখিত আদেশগুলি জারি করে এটি ঠিক করতে পারেন:

$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E    a-folder
...
Updated to revision n.

এবং তারপরে এটি এসএনএন এর পরিবর্তনগুলি যুক্ত / অপসারণ এবং কমিট করার বিষয়


3

অনুরূপ সমস্যা ছিল, এসভিএন একটি লক সম্পর্কে অভিযোগ করছিল। আমরা যা করেছি তা এখানে:

  • ফাইলগুলি ব্যাক আপ
  • আরএম-আর (লিনাক্স) দিয়ে প্রশ্নে থাকা ডিরেক্টরিটি সরানো হয়েছে
  • ডিরেক্টরিতে এসএনএন ক্লিনআপ রান করুন
  • দৌড়ে --force আপ SVN ডিরেক্টরি

3

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

mv foo foo-bak
svn up foo
svn revert foo

# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo

mv foo-bak foo
svn add foo

2

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


1
সুতরাং আপনি এই ঠিক কিভাবে?

2

জুমলা !, ওয়ার্ডপ্রেস বা দ্রুপালের অধীনে মডিউলগুলি আপগ্রেড করার সময় আমার প্রায়শই এটি ছিল। কখনও কখনও .svn ডিরেক্টরি আপগ্রেডিং প্রক্রিয়া দ্বারা সরানো হয়।

# rename updated directory
mv foo foo.new

# restore the old directory
svn up foo

# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo

# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"

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