এসভিএন: কিছু ডিরেক্টরি পুনরাবৃত্তভাবে উপেক্ষা করুন


105

আমি নামের কোনও ডিরেক্টরি চাই না buildবা distআমার এসভিএনে goুকতে চাই না কেন তা গাছের মধ্যে কত গভীর।

এটা কি সম্ভব? গিট ইন আমি ঠিক করা

build
dist

আমার .gitignoreমূলে এবং এটি পুনরাবৃত্তি উপেক্ষা করে। আমি কিভাবে এসএনএন দিয়ে এটি করব? দয়া করে আমাকে প্রতিটি পিতা বা মায়ের একটি প্রোপসেট করতে বলবেন না ...


যদি আপনি সাবভারশন 1.8 ব্যবহার করেন তবে একটি স্থানীয় সমাধানের জন্য এই উত্তরটি পরীক্ষা করে দেখুন ।
ফ্র্যাঙ্ক কুষ্টার্স

উত্তর:


56

সাব্ভারশন ১.৮ অনুসারে, এখন এমন svn:global-ignoresসম্পত্তি রয়েছে যা svn:ignoreপুনরাবৃত্তির মতো কাজ করে (সুতরাং এটি আপনার শীর্ষ-স্তরের ডিরেক্টরিতে সেট করুন)


3
আমি একটি বাচ্চা বিভ্রান্ত নই - আছে global-ignoresমধ্যে~/.subversion/config ফাইল, কিন্তু উত্তরাধিকারসূত্রে svn:global-ignores একটি SVN রেপো মধ্যে একটি ডিরেক্টরি উপর সম্পত্তি সেট, সেইসাথে svn:ignore- আপনি এই বিভিন্ন বিকল্প একটি সারসংক্ষেপ প্রদান করতে পারেন এবং কিভাবে তুলনা? কীভাবে --recursiveপতাকা তাদের প্রভাব ফেলবে?
ডাই

2
আমি আমার নিজস্ব গবেষণা করেছি এবং এই অনুসন্ধানের উত্তরটিতে আমার অনুসন্ধানগুলি প্রকাশ করেছি: stackoverflow.com/a/86052/159145
দাই

[আমি চেষ্টা করেছি কিন্তু ব্যর্থ হয়েছি, objফোল্ডারটি এখনও প্রদর্শিত হয়েছে] ( stackoverflow.com/questions/50960188/… ), আপনি কি আমাকে এটি দেখার জন্য সাহায্য করতে পারেন?
লুক

আমি কি "বিল্ড / *" বলতে পারি প্রতিটি বিল্ড ফোল্ডারের মধ্যে নীচের বিল্ডটি উপেক্ষা করে যান?
জোহানেস স্কাউব -

45

svn propset--recursiveবিকল্প হিসাবে গ্রহণ করে , সুতরাং আপনি দুটি ডাউনসাইড সহ এটি করতে পারেন:

  1. আপনাকে পুরো সংগ্রহস্থলটি পরীক্ষা করতে হবে (বা এতে অন্তত সমস্ত ডিরেক্টরি), এবং
  2. আপনি svn:ignoreযখনই কোনও নতুন ডিরেক্টরি যুক্ত করবেন তখন আপনাকে সম্পত্তি সেট করতে হবে remember

41

এটি করা সম্ভব নয়। সাবভারশন-এ কেবল দুটি উপেক্ষা করার ব্যবস্থা রয়েছে, svn:ignore(যা নিরঙ্কুশক) এবং global-ignores(যা কোনও সংগ্রহস্থলের জন্য নির্দিষ্ট নয়)।


7
svn propset --recursive svn: svn_ignore_rules উপেক্ষা করুন। যেখানে svn_ignore_rules একটি ফাইল যা উপেক্ষা নিয়মগুলি থাকে - প্রতি লাইনে একটি
জর্জি

3
'এসএনএন প্রপসেট - রিসার্সিভ এসএনএন: উপেক্ষা করুন - ফাইল এসএনএন_গাইনোর_রুলস' ' আমার জন্য এসএনএন-১..6..6 নিয়ে অন্যথায় আপনি 'এসএনএন_গাইনোর_রুলেস' নামক ফাইলগুলিকে বারবার উপেক্ষা করছেন [সম্পাদনা করুন: নীচে একটি মন্তব্যে 'উইটেন' অনুসারে]
এলবার্ডমোরজ

9
মন্তব্যকারীদের কাছে: যেমন প্রশ্নকর্তা বলেছিলেন, "দয়া করে আমাকে প্রতিটি পিতা বা মাতার একটি প্রসেট করতে বলবেন না ..."।
কেভিন রেড

5
সাবসার্শন ১.৮
কাঠবিড়ালি

17

এটি আমার পক্ষে কাজ করে:

 svn propset --recursive svn:ignore *.zip <dir_tree_with_no_zips>

2
এটির জন্য ধন্যবাদ, দুর্দান্ত কাজ করে ... উপায় হিসাবে আমি কেবলমাত্র * .txt এবং * .pdf উভয়কেই একটি ফাইলটিতে উপস্থাপন করতে পেলাম এবং পরে সেই পদ্ধতিগুলিকে একটি ফাইলে রাখি এবং তারপরে 'এসএনএন প্রসপেট
ফাইল

13

আপনার ~ / .subversion / config বা / etc / subversion / config ফাইলটিতে যুক্ত করুন:

[miscellany]
global-ignores = build dist

আমি
পারলে

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

1
কী বিল্ড Dist মানে?
ইগোরগানাপলস্কি

9

সংস্করণ নিয়ন্ত্রণ থেকে ডিরেক্টরিগুলি সরিয়ে বিল্ড এবং ডিস্ট ডায়ারগুলিকে উপেক্ষা করা সম্ভব। কৌশলটি ওয়ার্কিং কপির মধ্যে ডিরেক্টরিটি রেখে যাওয়ার জন্য - সংরক্ষণ-স্থানীয় বিকল্পটি ব্যবহার করতে হবে। উদাহরণ স্বরূপ:

svn rm dist --keep-local
svn ci -m'removed build directory from version control'

ডিরেক্টরিটি আর সাবভারশন দ্বারা ট্র্যাক করা হবে না তবে এটি এখনও আপনার কার্যকরী অনুলিপিটিতে সংকলক আউটপুট আটকানোর জন্য থাকবে etc.

চিয়ার্স, জো


7

উদাহরণস্বরূপ ফোল্ডার কাঠামো:

Project/
Project/dist/

cd Project
svn propset svn:ignore '*' dist/
svn ci -m "content of dist ignored"

আদেশ উপেক্ষা করার আগে ডিস্ট কনটেন্টের একটি এসএনএন ডিলিট করা ভাল, সুতরাং শাখাগুলির জন্য ফাঁকা থাকবে।

আমার জন্য কাজ করেছেন, আজ পরীক্ষা করেছেন। এখানে পৃষ্ঠাটি এটি কিছুটা ব্যাখ্যা করছে


6

সমস্ত সংগ্রহস্থলের মধ্যে এই জাতীয় সমস্ত ফাইল উপেক্ষা করার জন্য, আপনি global-ignoresআপনার প্রতি ব্যবহারকারী কনফিগারেশন ফাইলটিতে একটি যুক্ত করতে পারেন ।

ইউনিক্স-মতো সিস্টেমে এই অঞ্চলটি ব্যবহারকারীর হোম ডিরেক্টরিতে .subversion নামে একটি ডিরেক্টরি হিসাবে উপস্থিত হয়। উইন 32 সিস্টেমে সাবভার্সন সাবভার্সিয়ন নামে একটি ফোল্ডার তৈরি করে, সাধারণত ব্যবহারকারীর প্রোফাইল ডিরেক্টরিতে অ্যাপ্লিকেশন ডেটা অঞ্চলের অভ্যন্তরে

কনফিগারেশন বিকল্পগুলি দেখুন

দুর্ভাগ্যক্রমে, এটি করার জন্য প্রতি-সংগ্রহের বিকল্প নেই। এটি মূলত প্রতি ব্যবহারকারী, বা প্রতি ডিরেক্টরি, তাই একাধিকটি svn:ignoresসম্ভবত যাওয়ার উপায়, যতটা বিরক্তিকর হতে পারে।


1
আমি
পারলে

ওহ, তাহলে আপনি ভাগ্যের বাইরে। যেমন @ কেভিন রেড বলেছেন - আপনি প্রতি ডিরেক্টরি বা প্রতি-ব্যবহারকারী পেয়ে গেছেন।
ব্লেয়ার কনরাড

6

আপনাকে প্রথমে আপনার ওয়ার্কিং কপির শীর্ষ ফোল্ডারে চলে যেতে হবে এবং সেখানে একটি ফাইল তৈরি করতে হবে (.svnignore বলুন) যেখানে আপনি যে সমস্ত নিদর্শন উপেক্ষা করতে চান সেগুলি স্থাপন করা উচিত, উদাহরণস্বরূপ (একটি Android প্রকল্পের জন্য):

bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex

তারপরে আপনি নিম্নলিখিত কমান্ডটি চালনা করুন (মনে রাখবেন যে আপনাকে অবশ্যই আপনার ওয়ার্কিং কপির শীর্ষ ফোল্ডারে থাকতে হবে):

svn propset svn:ignore -R -F .svnignore .

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

svn rm --keep-local <path>

এই দুর্দান্ত নিবন্ধ থেকে এগুলি পেয়েছেন যা এটির সমস্ত ব্যাখ্যা করে: http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/


এটি অত্যন্ত সহায়ক ছিল। এসএনএন-তে গিট-এর মতো আচরণ এড়ানোর জন্য এটিই সেরা উপায়। অনেক ধন্যবাদ.
জোনাথন উইলসন

6

১.৮ ওভারের অধীনতায়, বর্তমান সংগ্রহস্থলের জন্য গ্লোবাল-উপেক্ষা সেট করা সম্ভব।

svn propset svn:global-ignores build .
svn propset svn:global-ignores dist .

এছাড়াও আপনি .svnignore নামে একটি ফোল্ডার তৈরি করতে পারেন এবং শর্ত লিখতে পারেন।

build
dist

প্রতি লাইনে একটি শর্ত মনে রাখুন, বিল্ড / * বা ডিস্ট / ডিবাগ সেট করা বৃথা যায়। তারপরে আদেশটি করুন:

svn propset svn:global-ignores -F .svnignore .

নির্দোষভাবে কাজ করে! সদ্য চেক আউট করা রেপোতে কেবল প্রথম কমান্ডটি চালান।
গৌরব

3

একটি ফাইল তৈরি করুন এবং এতে আপনার উপেক্ষা যুক্ত করুন

ingore-তালিকা:

file1 
directory1
file2
etc...

তারপরে নিম্নলিখিত কমান্ডটি প্রয়োগ করুন

for n in directory; do svn propset svn:ignore -F ignore-list $n; done

ডিরেক্টরি আপনার ডিরেক্টরিটির নাম, আপনি ডিরেক্টরি / উপ-ডিরেক্টরিকেও শ্রেণিবদ্ধ করতে পারেন। অথবা আপনার অধীনস্থ বর্তমান ডিরেক্টরিটি নোট করতে * ব্যবহার করুন।

এটি ধরে নেওয়া হচ্ছে আপনি বাশকে আপনার শেল হিসাবে ব্যবহার করছেন


এখানে is n কী ?
ইগোরগানাপলস্কি

1
@ আইগর গণপলস্কি - $ n হ'ল লুপের পরিবর্তনশীল। আপনি যে ক্রমটি লুপ করছেন তার জন্য সূচক হিসাবে সেট করা হবে; এই ক্ষেত্রে ডিরেক্টরিটি উপরোক্ত উদাহরণে "ডিরেক্টরি" দ্বারা নির্দিষ্ট হিসাবে রয়েছে।
jncc99

3
svn propset --recursive svn:ignore svn_ignore_rules .

যেখানে svn_ignore_rules একটি ফাইল যা উপেক্ষা করার নিয়ম রয়েছে - প্রতি লাইনে একটি

অবশ্যই প্রতিবার আপনার রেপোতে একটি নতুন ডিরেক্টরি যুক্ত করার সময় আপনাকে এটিকে আবার চালাতে হবে

রেপোতে svn_ignore_rules এছাড়াও চেক করা বিবেচনা করা যেতে পারে, অন্য ব্যবহারকারীদের দ্বারা লেখার অ্যাক্সেস থাকা পুনরায় ব্যবহারযোগ্য হতে পারে


2
সিডি প্যারেন্ট_ডির # ফোল্ডার সম্বলিত ডিরেক্টরিটি পুনরাবৃত্তি করতে হবে
svn propedit svn: অগ্রাহ্য করুন। #Well খুলুন svn-prop.tmp
তালিকাভুক্ত ফোল্ডার (গুলি)
^ এক্স
ওয়াই
প্রতিশ্রুতিবদ্ধ -m 'লক্ষ্যযুক্ত নির্দেশনা উপেক্ষা'

আমাকে সাহায্য করেছে, ফোল্ডার প্যাটার্ন সেট করতে আমার সমস্যা হয়েছিল, এসভিএন সেই ফোল্ডারটি set EDITOR=notepadsvn propedit svn:ignore .
রেপোতে নয়

1

যেহেতু সম্ভবত এই সাধারণ সমস্যার কোনও সমাধান নেই বলে মনে হচ্ছে, তাই আমরা আমাদের সমাধানটি ভাগ করে নিতে চাই। যেহেতু অন্যরা ইতিমধ্যে পরিষ্কার করে দিয়েছে, আপনি হয় svn:ignoreসম্পত্তিটি ব্যবহার করতে পারেন , এটি একটি একক ডিরেক্টরিতে প্রযোজ্য (এবং তাই এটি নতুনের জন্য নয়), বা আপনি ব্যবহার করেন global-ignoresযা কোনও একক ব্যবহারকারীর ক্ষেত্রে প্রযোজ্য (তবে এটি রিপোজিটরির অন্তর্ভুক্ত নয়)।

জীবনকে আরও সহজ করার জন্য আমি একটি রেগ ফাইল তৈরি করেছি Settings.Svn.regএবং এটিকে সংগ্রহস্থলের গোড়ায় যুক্ত করেছি। এখন প্রত্যেকে একবারে এই পুনরায় ফাইলটি ডাবলিক্লিক করতে পারে এবং সেটিংস সম্পন্ন করে।

REGEDIT4

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"global-ignores"="obj *.suo *.bak *.pdb *.user *.Cache*"

আমি সত্যিই এসভিএন সংগ্রহস্থলের মধ্যে থাকা একটি সমাধানের প্রশংসা করব, তাই যদি কেউ জানে, আপনি কি এটি ভাগ করে নেওয়ার যত্ন নেবেন?


0

একটি উপায় হ'ল প্রাক- বা পোস্ট-কমিট হুকটিতে কোনও ধরণের চেক যুক্ত করা তবে আপনি রেপো সার্ভারের মালিক না হলে এটি সরাসরি নোট।

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