আমি কেবল এসভিএন ব্যবহার শুরু করেছি এবং আমার একটি ক্যাশে ডিরেক্টরি রয়েছে যা আমার উত্স নিয়ন্ত্রণের প্রয়োজন নেই। কীভাবে আমি এসভিএন দিয়ে পুরো ডিরেক্টরি / ফোল্ডারটিকে উপেক্ষা করতে পারি?
আমি ওএস এক্স এবং কমান্ডলাইনে ভার্সন এবং টেক্সটমেট ব্যবহার করছি ।
আমি কেবল এসভিএন ব্যবহার শুরু করেছি এবং আমার একটি ক্যাশে ডিরেক্টরি রয়েছে যা আমার উত্স নিয়ন্ত্রণের প্রয়োজন নেই। কীভাবে আমি এসভিএন দিয়ে পুরো ডিরেক্টরি / ফোল্ডারটিকে উপেক্ষা করতে পারি?
আমি ওএস এক্স এবং কমান্ডলাইনে ভার্সন এবং টেক্সটমেট ব্যবহার করছি ।
উত্তর:
svn:ignoreপ্যারেন্ট ডিরেক্টরিটির সম্পত্তি সেট করুন :
svn propset svn:ignore dirname .
আপনার যদি উপেক্ষা করার মতো একাধিক জিনিস থাকে তবে সম্পত্তি মানটিতে নতুন লাইনের দ্বারা পৃথক করুন। সেক্ষেত্রে বাহ্যিক সম্পাদক ব্যবহার করে সম্পত্তি মান সম্পাদনা করা আরও সহজ:
svn propedit svn:ignore .
svn rm --keep-local dirnameপ্রথম। (আমার এসএনএন স্ট্যাটাস আউটপুটটি বিশাল ছিল এবং আমি কিছুক্ষণের জন্য
svn propset svn:ignore -F file.txt .
svn:ignoreএবং svn::ignoreআমার মতো নয় সেদিকে খেয়াল রাখুন। আপনি নির্বিচারে বৈশিষ্ট্য সেট করতে পারেন, সুতরাং আধুনিকটি ঠিক করা হবে, এবং আপনি সম্পত্তিটি দেখতে এবং সম্পাদনা করতে পারবেন, তবে এটি আপনার তালিকাভুক্ত ফাইলগুলিকে এসভিএন উপেক্ষা করবে না।
এখানে ডিরেক্টরি কাঠামোর একটি উদাহরণ রয়েছে:
\project
\source
\cache
\other
আপনি যখন projectদেখেন যে আপনার ক্যাশে ডিরেক্টরিটি যুক্ত করা হয়নি এবং এটির মতো প্রদর্শিত হবে।
> svn st
M source
? cache
উপেক্ষা সম্পত্তি সেট করতে, না
svn propset svn: ক্যাশে উপেক্ষা করুন।
svn:ignoreআপনি যে সম্পত্তিটি সেট করছেন তার নাম কোথায় , সেই সম্পত্তির cacheমান এবং .আপনি এই সম্পত্তিটি সেট করছেন সেই ডিরেক্টরি is এটি সেই cacheডিরেক্টরিটির মূল ডিরেক্টরি হওয়া উচিত যা সম্পত্তি প্রয়োজন needs
কোন বৈশিষ্ট্য সেট করা আছে তা পরীক্ষা করতে:
> svn proplist
Properties on '.':
svn:ignore
এর মান দেখতে svn:ignore:
> svn propget svn:ignore
cache
পূর্বে সেট করা বৈশিষ্ট্যগুলি মুছতে:
svn propdel svn:ignore
dirname । উদাহরণস্বরূপ, টাইপ করার সময় svn propset svn:ignore dirname, আপনি যদি (ব্যাশ) শেলটি আপনার জন্য ডেরনামটি পূরণ করতে দিয়ে থাকেন তবে এটি আপনাকে এই আদেশটি ছেড়ে দেবে svn propset svn:ignore dirname/, ফলে ফোল্ডারটিকে উপেক্ষা করা হবে না। অন্তত আমার অভিজ্ঞতা ছিল।
উল্লেখ করা গুরুত্বপূর্ণ:
কমান্ডলাইনে আপনি ব্যবহার করতে পারবেন না
svn add *
এটি উপেক্ষা করা ফাইলগুলিকেও যুক্ত করবে, কারণ কমান্ড লাইনটি প্রসারিত হয় *এবং তাই svn addবিশ্বাস করে যে আপনি সমস্ত ফাইল যুক্ত করতে চান। সুতরাং পরিবর্তে এটি ব্যবহার করুন:
svn add --force .
svn add --force *কাজ করবে না। ডটটি ব্যবহার করুন, তারা নয়।
যেহেতু আমি এটি কাজ করার চেষ্টা করার জন্য কিছুটা সময় ব্যয় করেছি, এটি লক্ষ্য করা উচিত যে যদি ফাইলগুলি ইতিমধ্যে এসভিএন-এ বিদ্যমান থাকে তবে আপনার svn deleteসেগুলি দরকার , এবং তারপরে svn:ignoreসম্পত্তিটি সম্পাদনা করুন ।
আমি জানি যে এটি সুস্পষ্ট বলে মনে হয়, তবে তারা ?আমার svn statusতালিকায় যেমন প্রদর্শন করে চলেছে , যখন আমি ভেবেছিলাম এটি কেবল স্থানীয়ভাবে তাদের উপেক্ষা করবে।
কিছুটা প্রসারিত করতে, আপনি যদি এসএনএন কমান্ড-লাইন সরঞ্জাম দিয়ে এটি করছেন তবে আপনি টাইপ করতে চান:
svn propedit svn:ignore path/to/dir
যা আপনার পছন্দের পাঠ্য-সম্পাদকটি খুলবে, তারপরে এর ভিতরে থাকা সমস্ত কিছু উপেক্ষা করার জন্য '*' টাইপ করুন এবং + প্রস্থান করুন - এটি ডিরেক্টরিটি নিজের মধ্যে এসএনএন-তে অন্তর্ভুক্ত করবে তবে ডিরেক্টরিটিকে উপেক্ষা করার জন্য এটির ভিতরে থাকা সমস্ত ফাইলকে উপেক্ষা করবে পিতামাতার পথ এবং তারপরে ফাইলটিতে ডিরেক্টরিটির নাম টাইপ করুন। সংরক্ষণের পরে, একটি আপডেট চালান ('এসএনএন আপ'), এবং তারপরে যথাযথ পথে চেক করুন।
svn:ignoreপ্যারেন্ট ডিরেক্টরিতে সম্পত্তি সেট করুন :
$ cd parentdir
$ svn ps svn:ignore . 'cachedir'
এটি কোনও বর্তমান মানকে ওভাররাইট করবে svn:ignore। আপনি এর সাথে মানটি সম্পাদনা করুন:
$ svn pe svn:ignore .
যা আপনার সম্পাদক খুলবে। আপনি প্রতি লাইনে একাধিক নিদর্শন যুক্ত করতে পারেন।
আপনি বর্তমান মানটি এর সাথে দেখতে পারেন:
$ svn pg svn:ignore .
আপনি যদি কোনও জিইউআই ব্যবহার করেন তবে এটি করার জন্য একটি মেনু বিকল্প থাকা উচিত।
svn ps svn:ignore . 'cachedir'ফলাফল cachedir is not under version control। svn ps svn:ignore 'cachedir' .আমার জন্য কাজ করে পরিবর্তন করা
উপরের সমস্ত অবদানের জন্য ধন্যবাদ। আমি ফাইলগুলি উপেক্ষা করার সময় আমার অভিজ্ঞতা থেকে কিছু অতিরিক্ত তথ্য ভাগ করতে চাই।
যখন ফোল্ডারগুলি ইতিমধ্যে সংশোধন নিয়ন্ত্রণের অধীনে রয়েছে
পরে SVN আমদানি ও SVN সহ ফাইল, কি আমরা সাধারণত প্রথমবারের না।
সমস্ত রানটাইম ক্যাশে, সংযুক্তি ফোল্ডারগুলি সংস্করণ নিয়ন্ত্রণে থাকবে। সুতরাং, এসএনএন পিএস এসএনএন এর আগে : উপেক্ষা করুন , আমাদের এটি সংগ্রহস্থল থেকে মুছতে হবে।
উপরে এসভিএন সংস্করণ 1.5 এর সাথে আমরা ব্যবহার করতে পারি svn del --keep-local your_folderতবে আগের সংস্করণের জন্য আমার সমাধানটি হ'ল:
.svnলুকানো ফোল্ডার ছাড়াই )যখন আমাদের একাধিক ফোল্ডার উপেক্ষা করা দরকার need
svn:ignoresvn peপাঠ্য ফাইলটি সম্পাদনা করতে হবে, এবং vi ব্যবহার করে আপনার পাঠ্য সম্পাদককে সেট করার প্রয়োজন হলে আপনি এই আদেশটি ব্যবহার করতে পারেন :
export SVN_EDITOR=vi
ফাইলটি কিছু সহজভাবে দেখায়:
runtime
cache
attachments
assets
svn propset svn:ignore -F .ignorethesefiles ., যা ফাইলের বিষয়বস্তু ব্যবহার করবে। আমি এটি প্রায় রাখার পছন্দ করি যাতে আপনি জানেন যে কি উপেক্ষা করা হয়। সম্পাদনাগুলির জন্য ফলোআপ প্রস্যাপ প্রয়োজন।
যদি আপনার ডিরেক্টরিটি fooইতিমধ্যে সংস্করণ নিয়ন্ত্রণে থাকে তবে প্রথমে এটি সরিয়ে ফেলুন:
svn rm --keep-local foo
svn propset svn:ignore foo .
... এবং যদি আপনি একাধিক ডিরেক্টরি উপেক্ষা করতে চান (বলুন build/ temp/এবং *.tmpফাইলগুলি), আপনি এটি দুটি পদক্ষেপে করতে পারেন (প্রথমটিকে উপেক্ষা করে বৈশিষ্ট্য উপেক্ষা করুন (এখানে অন্যান্য উত্তর দেখুন) বা কেউ এর মতো কিছু লিখতে পারেন
svn propset svn:ignore "build
temp
*.tmp" .
কমান্ড লাইনে।
আপনি যদি নির্দিষ্ট এসভিএন ক্লায়েন্ট টরটোইজএসভিএন ব্যবহার করে থাকেন তবে কমিট করার সময় আপনার কাছে আইটেমগুলিতে ডান ক্লিক এবং "তালিকাকে উপেক্ষা করার জন্য যুক্ত করুন" নির্বাচন করার বিকল্প রয়েছে।
একাধিক এন্ট্রি উপেক্ষা করার কমান্ডটি কিছুটা জটিল এবং ব্যাকস্ল্যাশগুলির প্রয়োজন।
svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .
এই কমান্ডের নামে কিছু উপেক্ষা করা হবে cache, tmp, null, এবং and_so_onবর্তমান ডিরেক্টরির মধ্যে।
svn propset svn:ignore -F .ignorethesefiles .আপনাকে একটি ফাইল ব্যবহার করার অনুমতি দেবে। এবং যেমনটি উল্লেখ করা হয়েছে, আপনি সর্বদা উপকৃত হন।
নেস্টেড ডিরেক্টরিগুলি উপেক্ষা করার জন্য আমার সমস্যা হয়েছিল; আমি যে শীর্ষ ডিরেক্টরিটি উপেক্ষা করতে চেয়েছিলাম তা 'এসএনএন স্ট্যাটাস' দিয়ে দেখাবে না তবে সমস্ত সাবডিডাররা তা করেছিল। এটি সম্ভবত অন্য সবার কাছে স্বতঃস্ফূর্ত, তবে আমি ভেবেছিলাম এটি ভাগ করে নিই:
উদাহরণ:
/ ট্রাঙ্ক
/ ট্রাঙ্ক / ক্যাশে
/ ট্রাঙ্ক / ক্যাশে / subdir1
/ ট্রাঙ্ক / ক্যাশে / subdir2
cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci
"ধন্যবাদ আপনাকে" এসভিএন যেমন একটি ঘৃণ্য, জালিয়াতি এবং ফাইল উপেক্ষা করার জন্য কঠিন উপায়।
সুতরাং আমি একটি স্ক্রিপ্ট লিখেছিলাম এসএনএন-উপেক্ষা-সমস্ত :
#!/bin/sh
# svn-ignore-all
# usage:
# 1. run svn status to see what is going on at each step
# 2. add or commit all files that you DO want to have in svn
# 3. remove any random files that you don't want to svn:ignore
# 4. run this script to svn:ignore everything marked '?' in output of `svn status`
svn status |
grep '^?' |
sed 's/^? *//' |
while read f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
এছাড়াও, ফাইল / পাথের নামগুলির নির্দিষ্ট তালিকা উপেক্ষা করতে, আমরা এই রূপটি এসএনএন-উপেক্ষা করতে পারি । আমার ধারণা এসএনএন-উপেক্ষা- সবই সত্যই xargs এসএনএন-উপেক্ষা করার মতো হওয়া উচিত।
#!/bin/sh
# svn-ignore
# usage:
# svn-ignore file/to/ignore ...
for f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
আরও একটি জিনিস: আমি অনেক এলোমেলো ফাইল সহ আমার এসএনএন চেকআউটগুলিকে কলুষিত করি। যখন প্রতিশ্রুতিবদ্ধ হওয়ার সময় হয়ে যায়, তখন আমি সেই ফাইলগুলিকে একটি 'পুরানো' উপ-ডিরেক্টরিতে স্থানান্তর করি এবং এসএনএনকে 'পুরাতন' উপেক্ষা করতে বলি।
একাধিক উপেক্ষা করার জন্য ব্যাশ অনিলাইনার:
svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"
যদি আপনার প্রকল্প ডিরেক্টরিটির নাম / প্রকল্প রাখা হয় এবং আপনার ক্যাশে ডিরেক্টরিটির নাম / প্রকল্প / ক্যাশে রাখা হয়, তবে আপনাকে / প্রোজেক্টে একটি বিবর্তন সম্পত্তি সেট করতে হবে। সম্পত্তির নাম "এসএনএন: উপেক্ষা" হওয়া উচিত এবং সম্পত্তির মান "ক্যাশে" হওয়া উচিত।
বৈশিষ্ট্য সম্পর্কে আরও জানার জন্য সাবভার্সন ম্যানুয়ালটিতে এই পৃষ্ঠাটি দেখুন।
SVN ইগনোর করবে যে নির্দেশাবলী রাখা
এসএনএন মুছে ফেলুন - কিপ-লোকাল পাথ / ডিরেক্টরি_টি_কিপ / *
এসএনএন প্রপসেট এসএনএন: "*" পথ / ডিরেক্টরি_পোক্তিকে অগ্রাহ্য করুন
আপনি যদি এসটিএন যেমন টরটোইজএসভিএন, বা কোনও ধরণের আইডিই ইন্টিগ্রেশন ব্যবহার করে থাকেন তবে কমিট / অ্যাড অপারেশন হিসাবে একই মেনুতে একটি উপেক্ষা বিকল্প থাকতে হবে।
যেহেতু আপনি সংস্করণগুলি ব্যবহার করছেন এটি আসলেই সহজ:
আপনার পিছনের স্ল্যাশগুলিও দেখুন। আমি দেখতে পেলাম যে images/*আমার এড়ানো সেটিং ফাইল সহ এড়ানো হবে না ./images/। আমি যখন দৌড়েছি svn status -uতখনও এটি প্রদর্শিত হয়েছে ? images। সুতরাং, আমি কেবল উপেক্ষা সেটিংটি কেবলমাত্র imagesকোনও স্ল্যাশে পরিবর্তন করেছি। একটি স্থিতি পরীক্ষা করুন এবং এটি এটি সাফ করে দিল।
পরবর্তী উপায়ে Eclipse দিয়ে সমাধান করা :
প্রথমত, প্রকল্পে আপনার ফোল্ডারটির একটি সিঙ্ক্রোনাইজেশন করুন:
দল -> সিঙ্ক্রোনাইজ করুন
পরবর্তী ভিউতে, টিম ভিউতে, আপনি এসভিএন সার্ভারে প্রতিশ্রুতিবদ্ধ করতে পারেন এমন সমস্ত সংস্থান দেখতে পাবেন।
সুতরাং, আপনি যে সংস্থানটি অগ্রাহ্য করতে চান তার সংস্থান ফোল্ডারটি নির্বাচন করুন এবং তারপরে আপনি এটি ব্যবহার করে উপেক্ষা করতে পারেন
দল -> যোগ করুন
svn:ignore।
এর পরে, কনফার্মেশন উইন্ডোতে, প্রথম বিকল্পটি নির্বাচন করুন: "নাম দ্বারা উপেক্ষা করুন"।
উদাহরণস্বরূপ, আমি যদি লক্ষ্য ফোল্ডার এবং তাদের। ক্লাস সংস্থানগুলি উপেক্ষা করতে চাই, আমি সিঙ্ক্রোনাইজ করব এবং সিঙ্ক্রোনাইজ ভিউতে আমি লক্ষ্য ফোল্ডারটি নির্বাচন করব। এর পরে, আমি নির্বাচন করব
team-> যুক্ত করুন
থেকে svn:ignoreএবং তারপর আমি নিশ্চিত উইন্ডোতে প্রথম বিকল্প নিশ্চিত করব।
এই সহজ ক্রিয়াকলাপটি কীভাবে করা যায় তা সন্ধান করার জন্য অনেক সময় হারাবার পরে, আমি সিদ্ধান্ত নিলাম যে এটি উপযুক্ত ব্যাখ্যা খুঁজে পাওয়া শক্ত নয় post
প্রথমে নমুনা কাঠামো দিন let
$ এসএনএন স্টেট? প্রকল্প / ট্রাঙ্ক / লক্ষ্য? প্রকল্প / ট্রাঙ্ক / myfile.x
1 - প্রথমে মাইকেস ভিএম এক্সপোর্ট SVN_EDITOR = vim এ সম্পাদক কনফিগার করুন
2 - "এসএনএন প্রোপিডিট এসএনএন: প্রজেক্ট / ট্রাঙ্ক উপেক্ষা করুন" একটি নতুন ফাইল খুলবে এবং আপনি আমাদের ফাইলগুলিতে এবং সাব-ডিরেক্টরী যুক্ত করতে পারেন "লক্ষ্য" সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন এবং কাজ করুন
$ এসএনএন স্টেট? প্রকল্প / ট্রাঙ্ক / myfile.x
ধন্যবাদ।