সাবভার্সন পরিচালিত ফাইলের নামগুলিতে @ অক্ষরগুলি কীভাবে পালানো যায়?


191

অনেক সাবভারশন অপারেশনের জন্য, '@' চিহ্নটি কোনও ফাইলের শেষে বা URL টি যুক্তির সাথে যুক্ত করা আপনাকে সেই ফাইলটির একটি নির্দিষ্ট সংশোধন লক্ষ্যবস্তু করতে দেয় target উদাহরণস্বরূপ, "এসএনএন তথ্য পরীক্ষা.টেক্সট@1234" পরীক্ষা 12. সংশোধনটিতে বিদ্যমান থাকায় টেস্ট.টেক্সট সম্পর্কিত তথ্য দেবে।

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

এসএনএন তথ্য 'পরীক্ষা @ .txt' এসএনএন: সংশোধন ত্রুটি সংশোধন পার্সিং '.txt'

আমি '/', '\', এবং '@' দিয়ে পালানোর পাশাপাশি ডাবল এবং একক উদ্ধৃতি চেষ্টা করেছি। আমি কীভাবে সাবভার্সনকে ফাইলের নামের অংশ হিসাবে @ চিহ্নগুলি ব্যবহার করতে বলতে পারি?


3
পৃথিবীতে কেন আপনার সাথে @ ফাইল ফাইল রয়েছে? সমস্যার জন্য জিজ্ঞাসা করুন, আপনি যদি আমাকে জিজ্ঞাসা করেন ... :-)
জেস্পের ই

খুব ভাল প্রশ্ন! :) আমি এমন একটি প্রকল্প গ্রহণ করছি যেখানে এই চরিত্রটি ফাইল নামকরণ কনভেনশনের একটি মৌলিক উপাদান এবং দুর্ভাগ্যক্রমে নিকট ভবিষ্যতে এটি পরিবর্তন করা যায় না।
ওয়েস্টন

57
অ্যাপল আইওএস 4+ এর মতো সমস্ত আইওএস বিকাশকারীদের জন্য এই সম্মেলনটি তৈরি করেছে। সমস্ত সম্পদ যদি উচ্চ রেজাল্ট প্রদর্শনের জন্য হয় তবে @ 2x নামকরণ করা উচিত ...
দিমিত্রিস

2
ঘেটো পুরানো-শৈলীর মতলব
ওওর

এছাড়াও, যদি আপনি থান্ডারবার্ডের এনিগমেল থেকে আপনার ব্যক্তিগত কী বা প্রত্যাহার কীটি সংরক্ষণ করেন, এটি একটি ফাইলের নাম তৈরি করে - অযৌক্তিকভাবে নয়, অ্যাপ্লিকেশনটি দিয়ে - এতে একটি চিহ্ন রয়েছে
পিটার ফ্ল্লেন

উত্তর:


283

থেকে SVN বই (জোর দেওয়া যোগ):

বোধগম্য পাঠক সম্ভবত এই মুহূর্তে ভাবছেন যে পেগ রিভিশন সিনট্যাক্সের কাজকর্মের অনুলিপি তৈরির URL বা ইউআরএলগুলির প্রকৃত লক্ষণগুলিতে সমস্যা সৃষ্টি করে কিনা। সর্বোপরি, এসএনএন কীভাবে জানতে পারে যে news@11আমার গাছের কোনও ডিরেক্টরির নাম বা " সংবাদের 11 টি পুনর্বিবেচনা" কেবল একটি বাক্য গঠন আছে কিনা ? কৃতজ্ঞ, যখন এসএনএন সর্বদা উত্তরোত্তর ধরে নিবে, তবুও একটি তুচ্ছ কাজ রয়েছে। পথের শেষের দিকে আপনার কেবলমাত্র একটি সংকেত যুক্ত করা দরকার , যেমন news@11@এসএনএন আর্গুমেন্টে কেবলমাত্র সর্বশেষ স্বাক্ষরের বিষয়ে যত্নশীল এবং সাইন ইন করার পরে এটি আক্ষরিক পেগ রিভিশন স্পেসিফায়ার বাদ দেওয়া অবৈধ হিসাবে বিবেচিত হবে না। এমনকি এই চিহ্নটি এমন পাথগুলিতে প্রযোজ্য যা কোনও চিহ্নে শেষ হয় — আপনি ব্যবহার করবেনfilename@@@ ফাইল নামের একটি ফাইল সম্পর্কে কথা বলতে ।


4
মনে রাখবেন যে "এসএনএন ডিফ" ব্যবহারের জন্য আপনাকে পুনর্বিবেচনা প্যারামিটার যুক্ত করতে হবে। "এসএনএন আপ @ ফাইল @" কাজ করে, তবে "এসএনএন ডিফ @ ফাইল ফাইল @" কাজ করে না। আপনাকে "এসএনএন ডিফিড-হেড @ ফাইল @" ব্যবহার করতে হবে
বিশ্লেষণ

এসভিএন বইয়ের জন্য দ্রষ্টব্য: ফাইলগুলি এক্সটেনশন ছাড়াই, উইন্ডোতেও news@11থাকতে পারে , তাই ফাইলও হতে পারে।
trysis

1
মনে রাখবেন যে কিছু কমান্ডের জন্য, যেমন নাম পরিবর্তন করা হয়, একটি আর্গুমেন্ট হয় কোনও রূপান্তরিত আইটেম বা স্থানীয় ফাইলের নাম হতে পারে। নাম পরিবর্তনের ক্ষেত্রে, লক্ষ্যটি পিনযুক্ত পুনর্বিবেচনার জন্যও স্ক্যান হয়ে যায় তবে পরে এটি একটি সাধারণ নাম হিসাবে গণ্য হতে পারে। উদাহরণস্বরূপ, যদি আপনি নামান্তর করতে চান তাহলে @fooকরতে @bar, svn rename @foo@ @barসম্পর্কে অভিযোগ করবে @bar; তবে আপনি যদি এটি তৈরি করেন svn rename @foo@ @bar@তবে নতুন নামটি আক্ষরিক হবে @bar@। এই সমস্যা এড়ানোর জন্য, যোগ করুন ./(অথবা .\ Windows এ) এটি পরিষ্কার কোনো স্থানীয় পাথ করতে: svn rename @foo@ ./@bar
জাস্টাই

82

মূল উত্তরটি সঠিক, তবে সম্ভবত যথেষ্ট পরিমাণে স্পষ্ট নয়। নির্দিষ্ট ইউনিক্স কমান্ড লাইন বিকল্পগুলি নিম্নরূপ:

svn info 'image@2x.png@'

অথবা

svn info "image@2x.png@"

অথবা

svn info image\@2x.png\@

আমি কেবল তিনটিই পরীক্ষা করেছি।


4
আমি পরীক্ষাও করেছি svn info icon@2x.png@এবং এটিও কাজ করেছে। হ্যাঁ, কোন উদ্ধৃতি বা স্ল্যাশ নেই!
নাট

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

হাঁ। আমার মাইলেজটি bashহাইওয়েতে ছিল :)
নট

1
@ নাট এখন আমি এটিকে ব্যর্থ করতে পারি না - কেএসএসের উদ্ধৃতিগুলি ছাড়া এটি কাজ করে। আমি জানি না কেন আমি তাদের কেন প্রয়োজন বলে মনে করেছি - সম্ভবত অন্য কোনও সমস্যা - এটি 2 বছর আগে আমি পোস্ট করেছি ...
ডেভিড এইচ

14

বিভিন্ন সাব-ফোল্ডারে একাধিক ফাইল যুক্ত করার সমাধান:

for file in $(find ./ -type f -name "*@*.png"); do svn add $file@; done

আপনি যে ধরণের ফাইল যুক্ত করতে চান তার জন্য " @ .png" তে "পিএনজি" প্রতিস্থাপন করুন।


আপনার ফাইলের নামগুলি উদ্ধৃত করা বা এড়াতে ভুলবেন না (এবং কেস-সংবেদনশীল মিলটি করুন)। সাথে আচরণ ফাইলগুলিতে দরকার নেই @বিশেষ স্থান ধার্য তাদের নামটি দিয়ে আপনি নিরাপদে সংযুক্ত করতে পারবেন @সব ফাইলের নাম সম্মুখের প্রতীক: for file in $(find ./ -type f -iname "*.png"); do svn add "$file@"; done। এছাড়াও, এই পন্থাটি আপনার স্থানীয় এসপিএন রেপোকে কোনও ফাইল / ডিরেক্টরি কাঠামোর সাথে কাজের লোকাল অনুলির সাথে সঙ্গতিপূর্ণ রাখে না?
ardnew

ব্যবহার exec: খুঁজে পেতে eaiser হতে পারেfind . -type f -name "*@*.png" -exec svn add {}@ \;
Walty Yeung

11

নিম্নলিখিত ফাইলটি যুক্ত করতে: image@2x.png নিম্নলিখিতটি করুন: এসএনএন চিত্র যুক্ত করুন \ @ 2x.png @



8

আমার ক্ষেত্রে আমার একটি এসভিএন রেপো থেকে ফাইলগুলি সরানোর দরকার ছিল যাতে একটি @ চিহ্ন রয়েছে:

এটি কাজ করবে না:

svn remove 'src/assets/images/hi_res/locales-usa@2x.png'

তবে এটি করেছে:

svn remove 'src/assets/images/hi_res/locales-usa@2x.png@'

6

একাধিক ফাইল যুক্ত করতে বিকল্প সমাধান রয়েছে:

svn status | grep \.png | awk '{print $2"@"}'| xargs svn add

আপনার উত্তর ব্যাখ্যা করুন।
হেমাং

3
আপনি svn status | awk '/\.png/ {print $2"@"}'| xargs svn add
গ্রেপের

1

"মুভ" এর মতো 2 টি আর্গুমেন্ট সহ এসএনএন কমান্ডের জন্য আপনার কেবল বাম (প্রথম) প্যারামিটারে "@" যুক্ত করতে হবে । উদাহরণ স্বরূপ:

$ svn add README@txt@
A         README@txt

$ svn move README@txt@ README2@txt
A         README2@txt
D         README@txt


$ svn status
A       README2@txt

$ svn commit -m "blah"
Adding         README2@txt
Transmitting file data .
Committed revision 168.

$ svn delete README2@txt@
D         README2@txt

$ svn commit -m "blahblah"
*Deleting       README2@txt

Committed revision 169.

এই লাইনটি গুরুত্বপূর্ণ: $ svn সরানো README @ txt @ README2 @ txt

আপনি দেখতে পাচ্ছেন যে, "README2 @ txt" এ আমাদের "@" যুক্ত করার দরকার নেই


0

@ ডেভিড এইচ

আমি @ চিহ্নগুলি এড়িয়ে চলা ছাড়া কেবল একটি অনুরূপ কমান্ড চেষ্টা করেছি এবং এটি এখনও ঠিক কাজ করে

svn ci splash.png splash@2x.png@

এটি জিএনইউ ব্যাশ, সংস্করণ 3.2.48 (1) -রেইলজ (x86_64-আপেল-ডারউইন 10.0) এবং এসএনএন 1.6.16


0

আমার পক্ষে একমাত্র সমাধানটি ছিল @ এনপাইক দ্বারা প্রস্তাবিত পরামর্শ

এসএনএন 'পাথ / টু / ফাইলনাম @ এক্সট @' রিভার্ট করুন


আপনি কি নিশ্চিত যে এটি মূল প্রশ্নের নতুন প্রতিক্রিয়া হওয়া উচিত ? এটি বরং উত্তোলন বা মন্তব্য হওয়া উচিত
নিকো হাজে

দুঃখিত, আমার খারাপ, আমি এখনও মন্তব্য যুক্ত করতে পারছি না
Jnyx4

0

ইমেল ঠিকানাগুলি থেকে প্রাপ্ত ফাইলের নামগুলি (খুব ভাল ধারণা নয়!) নিয়ে আমার আজ সমস্যা ছিল।

সমাধান, printfঅপশন findএবং শেল প্রসার ব্যবহার করে সমাধান

 svn add  $(find . -name "*@*.png" -printf "%p@ ")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.