এসভিএন চেকআউট ফোল্ডার উপেক্ষা করুন


98

আমি কি এসএনএন চেকআউটে কোনও ফোল্ডারটিকে উপেক্ষা করতে পারি? আমার বিল্ড সার্ভারে চেকআউটে আমাকে DOCs ফোল্ডারটি উপেক্ষা করতে হবে।

সম্পাদনা: বাহ্যিক উপেক্ষা কোনও বিকল্প নয়। আমার কিছু এক্সটার্নাল রয়েছে যা আমার দরকার।


: এই পরীক্ষা করে দেখুন stackoverflow.com/questions/116074/...
hephestos

উত্তর:


104

আপনি সরাসরি চেকআউটে ফোল্ডারগুলিকে উপেক্ষা করতে পারবেন না, তবে আপনি এসএনএন 1.5 এ স্পর্স চেকআউট ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:

$ svn co http://subversion/project/trunk my_checkout --depth immediates

এটি আপনার প্রকল্পের ট্রাঙ্ক থেকে 'আমার_চেকআউট'-তে ফাইল এবং ডিরেক্টরিগুলি পরীক্ষা করবে, তবে সেই ডিরেক্টরিগুলিতে পুনরাবৃত্তি হবে না। যেমন:

$ cd my_checkout && ls
bar/ baz foo xyzzy/

তারপরে 'বার' এর বিষয়বস্তুগুলি নীচে নামাতে:

$ cd bar && svn update --set-depth infinity

দ্রষ্টব্য: কিছু 1.5 সংস্করণে উপস্থিত একটি বাগের সাথে এই আটকানো হয়েছেsvn: Shallowing of working copy depths is not yet supported
gcb

79

হ্যাঁ আপনি এসভিএন 1.6 ব্যবহার করতে পারেন। আপনাকে প্রথমে একটি চেকআউট করতে হবে তারপরে বাদ পড়ার জন্য ফোল্ডারটি চিহ্নিত করে তারপরে অযাচিত ফোল্ডারটি মুছতে হবে।

svn checkout http://www.example.com/project
cd project
svn update --set-depth=exclude docs
rm -fr docs

এখন থেকে ওয়ার্কিং কপির কোনও আপডেট ডক্স ফোল্ডারটিকে পুনরায় তৈরি করবে না।

দেখুন http://blogs.collab.net/subversion/2009/03/sparse-directories-now-with-exclusion/ এবং http://subversion.apache.org/docs/release-notes/1.6.html#sparse- আরও তথ্যের জন্য ডিরেক্টরি-বর্জন

টম


4
উত্সাহিত হয়েছে কারণ এটি আমার কাজের সাথে প্রাসঙ্গিক নয় এমন একটি বিশাল ফোল্ডার চেকআউট করা থেকে আমাকে বাঁচিয়েছে।
dohpaz42

4
এটি দুর্দান্ত, এসএনএন ক্লিনআপের সাথে এটি আমাকে 12 জিআইবি বাঁচিয়েছে।
জনি জেডি

4
এটি এখনও কি প্রাথমিকভাবে সবকিছু চেকআউট করে না?
হুয়াংিজম

9

1.5 এর পূর্ববর্তী সংস্করণগুলির সাথে আমি খুঁজে পেয়েছি যে আপনি যদি সর্বাধিক সর্বাধিক ফোল্ডারটি চেকআউট করেন এবং তারপরে নির্বাচিতভাবে আপডেট করেন তবে তারপরে আপডেটগুলি কেবলমাত্র আপনি যা চেক করেছেন তা কার্যকর করে। অর্থাৎ।

svn co -N foo
cd foo
svn up -N bar
svn up

-N পতাকা অপারেশনটিকে পুনরাবৃত্ত করে তোলে। উপরেরগুলি foo স্তরে অন্য কিছু পরীক্ষা করে না, যেমন। বলুন এখানে একটি ফোল্ডার রয়েছে lala, চূড়ান্ত এসএনএন আপ সেই ফোল্ডারটি পরীক্ষা করবে না, তবে এটি আপডেট হবে bar

তবে পরবর্তী সময়ে আপনি svn up lalaএবং এইভাবে চেকআউটটিতে যুক্ত করতে পারেন।

সম্ভবত এটি 1.5 এর সাথেও কাজ করে।


6

এটি টরটোইজএসভিএন ক্লায়েন্ট 1.7.1 এ রয়েছে (কিছু পুরানো সংস্করণেও এটি উপলভ্য থাকতে পারে):

  • এসভিএন চেকআউট -> সংগ্রহস্থলের URL নির্বাচন করুন

  • "চেকআউট আইটেম" ক্লিক করুন (চেকআউট গভীরতার অধীনে) এবং শুধুমাত্র প্রয়োজনীয় ফোল্ডারগুলি নির্বাচন করুন!


4

আপনি ডক্স ফোল্ডারটিকে একটি বাহ্যিক সংগ্রহস্থলে রেখে দিতে পারেন svn checkout --ignore-externals


আমরা আগের কাজটিতে কিছু প্রাক-নির্মিত উপাদানগুলি এড়িয়ে যাবার কাজটি শেষ করেছি।
মার্ক বেসে

4
আমি এর external repositoryঅর্থ বুঝতে পারছি না । তুমি কি এটা ব্যাখ্যা করতে পারবে?
ভিক্টর

4

হ্যাঁ, সাবভারশন 1.5 এর স্পারস চেকআউটস নামে একটি বৈশিষ্ট্য রয়েছে যা ঠিক এই ধরণের জিনিসটি করতে পারে।


4
এটি পড়ে, দেখে মনে হচ্ছে বিরল চেকআউটগুলি কেবলমাত্র একটি চেকআউটের গভীরতা সীমাবদ্ধ করে। তারা একটি নির্দিষ্ট ফোল্ডার উপেক্ষা করতে পারে না।
জন মিলিকিন

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

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

1.6+ সংস্করণগুলি ফোল্ডারগুলিকে উপেক্ষা করার অতিরিক্ত সংযোজন ক্ষমতা প্রদান করে এবং একটি কার্যকরী অনুলিপিতে (যেখানে v1.5 খুব সীমাবদ্ধ থাকে) কীভাবে
FruitBreak

3

এই প্রশ্নটি আমি রিগ্রেশন টেস্টগুলি বাদ দিয়ে ওয়েবকিট উত্সগুলি পরীক্ষা করার উপায় খুঁজছি looking আমি নিম্নলিখিতটি দিয়ে শেষ করেছি:

svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit \
  --depth immediates

cd WebKit
find . \
  -maxdepth 1 -type d \
  -not -name '.*' \
  -not -name '*Tests' \
  -not -name 'Examples' \
  -not -name 'Websites' \
  | (while read SUBDIR; do svn update --set-depth infinity "$SUBDIR"; done)

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


এই কি ভাষা?
পুতুল

এগুলি ইউনিক্স শেল কমান্ডগুলি (
এগুলিও

2

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

    # Path to the svn repository to be checked out
rpath=https://svn-repo.company.com/sw/trunk/ && \
    # This files are to be excluded (folders are ending with '/')
    # this is a regex pattern with OR ('|') between enties to be excluded
excludep='docs_folder/tests_folder/|huge_folder/|file1|file2' && \
    # Get list of the files/folders right under the repository path
filtered=`svn ls $rpath | egrep -v $excludep` && \
    # Get list of files out of filtered - they need to be 'uped'
files=`echo $filtered | sed 's| |\n|g' | egrep '^.*[^/]$'` && \
    # Get list of folders out of filtered - they need to be 'coed'
folders=`echo $filtered | sed 's| |\n|g' | egrep '^.*[/]$'` && \
    # Initial nonrecursive checkout of repository - just empty
    # to the current (./) working directory
svn co $rpath ./ --depth empty && \
    # Update the files
svn up $files &&\
    # Check out the all other folders finally.
svn co `echo $folders | sed "s|\<|$rpath|g"`

সোর্স ওয়ার্কিং ডিরেক্টরিতে পরিবর্তন করুন। কমান্ডগুলি অনুলিপি করুন। আটকান। উপযুক্ত ইউআরএল পরিবর্তন করুন এবং প্যাটার্ন বাদ দিন। কমান্ড চালান।

ধন্যবাদ,


4
আরে ডেভেলপারদের জন্য 6 বছর কি? আপনার শেষ লাইনে br উব্রপাথ have কোথায় সেট?
ডি-ক্লোটজ

4
@ ডি-ক্লোটজ, আপনাকে ধন্যবাদ, পরিবর্তে এটি p rpath হওয়া উচিত, যা ঘুরে দেখা যায় সংগ্রহস্থলের পথে। <br/> এক বছরের দেরিতে দুঃখিত
বিভি।

1

না, উপেক্ষা শুধুমাত্র ফাইল যুক্ত করার জন্য।
আপনি বিচ্ছিন্ন চেকআউটগুলি ব্যবহার করতে পারেন (যদি আপনি এসএনএন 1.5 ব্যবহার করেন)


1

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

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