আপনি কীভাবে সাম্প্রতিক এসভিএন লগ এন্ট্রিগুলি দেখতে পাচ্ছেন?


194

টাইপিং svn log একটি কমান্ড লাইনে একটি অবিশ্বাস্যরূপে দীর্ঘ, অকেজো তালিকা ছড়িয়ে দেয়। কেন এটি ডিফল্ট তা আমার কোনও ধারণা নেই। আমি যদি টার্মিনালে 300 টি এন্ট্রি পড়তে (বা এমনকি পড়তেও) চাইতাম তবে টাইপিং svn log --fullবা অনুরূপ কিছু মনে করবো না ।

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

যাইহোক, কীভাবে পরিবর্তন হয়েছে তা দেখতে আমি গত 5 বা 10 এন্ট্রির মতো কিছু সাম্প্রতিক ক্রিয়াকলাপটি কীভাবে দেখছি?


9
হ্যাঁ, এটি সত্যিই উম্ম, এর মতো কাজ করা উচিত git log
পল ড্রাগার

উত্তর:



127

এছাড়া কি বার্ট এফ বলেন সহ অনেক আদেশ, logহয়েছে -r(অথবা --revision) বিকল্প। নীচে কয়েকটি সংশোধনী সীমা দেখানোর জন্য এই বিকল্পটি ব্যবহার করে ব্যবহারিক উদাহরণ দেওয়া হয়েছে:

আরোহী ক্রমে সমস্ত তালিকাতে:

svn log -r 1:HEAD

উতরান ক্রমে সমস্ত তালিকাতে:

svn log -r HEAD:1

ত্রয়োদশ থেকে বর্তমান চেক-আউট সংশোধনের গোড়ার দিকে সমস্ত কিছুর উপরে ক্রম তালিকাভুক্ত করতে:

svn log -r 13:BASE

প্রদত্ত তারিখগুলির মধ্যে সমস্ত কিছু পেতে:

svn log -r {2011-02-02}:{2011-02-03}

উপরের সমস্ত এক্সপ্রেশনটি আপনি --limitবিকল্পের সাথে একত্রিত করতে পারেন , যাতে কী মুদ্রিত হয় তার উপর আপনার বেশ দানাদার নিয়ন্ত্রণ থাকতে পারে। এই -rএক্সপ্রেশন সম্পর্কে আরও তথ্যের জন্য পড়ুন svn help logবা সাবভারশন সহ সংস্করণ নিয়ন্ত্রণ বইয়ের সম্পর্কিত অধ্যায়টি দেখুন


8
এই ব্যাখ্যাটির জন্য অনেক ধন্যবাদ, @ ড্যানিয়েল ডিনাইজস - আমার প্রায়শই ওপি থেকে বিপরীত সমস্যা হয়: svn log .আমার পক্ষে কেবলমাত্র প্রাথমিক পুনর্বিবেচনা (একইভাবে svn log --limit 4 .) ফিরে আসতে পারে ; তবে যদি আমি কল svn log -r HEAD:1 .করি তবে অবশেষে আমি সমস্ত এন্ট্রি তালিকাভুক্ত পেয়েছি ... আবারও ধন্যবাদ - চিয়ার্স!
sdaau

এটি আরও ভাল, যেহেতু svn log কেবল বর্তমান পথের পরিবর্তনের ইতিহাস দেখায়।
নিনজা

41

আমি -vভার্বোজ মোডের জন্য ব্যবহার করতে চাই ।
এটি আপনাকে কমিট আইডি, মন্তব্য এবং সমস্ত প্রভাবিত ফাইল দেবে।

svn log -v --limit 4

আউটপুট উদাহরণ:

I added some migrations and deleted a test xml file
------------------------------------------------------------------------
r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1 line Changed
paths: 
A /trunk/java/App/src/database/support    
A /trunk/java/App/src/database/support/MIGRATE    
A /trunk/java/App/src/database/support/MIGRATE/remove_device.sql
D /trunk/java/App/src/code/test.xml

2
ভার্বোস বিকল্পটি অত্যন্ত দরকারী
জেসন জর্জ

এবং যদি ডেভ-টিমটি সত্যিই মিষ্টি হয় তারা এসভিএন মন্তব্যে ইস্যু আইডি রাখে এবং আপনি সহজেই এই সমস্যাটি কমিটের সাথে সংযুক্ত করতে পারেন।
জোনাস সডারস্টারম

11

আউটপুটটি পাইপ lessবা অন্য পেজারের মাধ্যমে :

svn log | less

1
আপনার যদি> 23 কে রিভিশন থাকে তবে প্রথম এন্ট্রিগুলি দেখতে (এবং ভার্বোজ লগটি ব্যবহার না করার সময়) আপনি এখনও 20 সেকেন্ড অপেক্ষা করতে পারেন। তবে এটি দুর্দান্ত - শীর্ষে শীর্ষস্থানীয় দেখায় shows এবং কচ্ছপ এসভিএন এর 100-এ-এ-টাইম পেজিংয়ের চেয়ে ভাল! আপনি যখন আরও পিছনে যেতে চান।
টমাসজ গ্যান্ডার

6

যদি কেউ এই পুরানো প্রশ্নটির দিকে তাকাচ্ছে, আপনার শেষ আপডেটের পরে থেকে পরিবর্তনগুলি দেখার জন্য একটি সহজ আদেশ:

svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v

এলই (মন্তব্যের জন্য গ্যারিকে ধন্যবাদ জানাই)
একই জিনিস, তবে আরও খাটো এবং আরও যুক্তিযুক্ত:

svn log -r BASE:HEAD -v


8
বা কেবলsvn log -r BASE:HEAD -v
গ্যারি

5

অন্যেরা যা বলেছে তাতে যুক্ত করতে, আপনি আপনার .bashrc বা .bash_aliases ফাইলে একটি উপনাম তৈরি করতে পারেন:

alias svnlog='svn log -l 30 | less'

বা আপনি যা চান তা আপনার ডিফল্ট হিসাবে


4

যেমন আপনি ইতিমধ্যে লক্ষ্য করেছেন যে svn logকোনও আর্গুমেন্ট ছাড়াই কমান্ডটি চালানো হয়েছে এমন সমস্ত লগ বার্তা দেখায় যা আপনার নির্দিষ্ট URL টি সম্পর্কিত বা ওয়ার্কিং কপি ফোল্ডারের সাথে সম্পর্কিত যেখানে আপনি কমান্ডটি চালাচ্ছেন।

আপনি সর্বদা svn logফলাফলগুলিকে পরিমার্জন / সীমাবদ্ধ করতে পারেন:

  • svn log --limit NUM কেবলমাত্র প্রথম NUM টি সংশোধনী প্রদর্শিত হবে,
  • svn log --revision REV1(:REV2) REV1 সংশোধন বা REV1 - REV2 পরিসরের জন্য লগ বার্তা প্রদর্শন করবে,
  • svn log --searchআপনার নির্দিষ্ট করা অনুসন্ধানের সাথে মেলে এমন সংশোধনগুলি দেখাবে (কমান্ডটি সাবভার্সন 1.8 এবং আরও নতুন ক্লায়েন্টে উপলব্ধ)। আপনি অনুসন্ধান করতে পারেন
    • সংশোধনের লেখক (যেমন প্রতিশ্রুতিবদ্ধ ব্যবহারকারী নাম),
    • তারিখটি যখন সংশোধন করা হয়েছিল,
    • পুনর্বিবেচনা মন্তব্য পাঠ্য (লগ বার্তা),
    • সংশোধনীতে পরিবর্তিত পাথের তালিকা list

4

এই উত্তরটি সাবভার্সন সাব কম্যান্ডস বিকল্পগুলি সম্পর্কিত আরও প্রশ্নে নির্দেশিত। প্রতিটি উপলভ্য সাবকম্যান্ডের জন্য (যেমন যোগ করুন, লগ করুন, স্থিতি ...), আপনি কেবলমাত্র --helpআপনার সাবকম্যান্ডের সাথে ব্যবহার করতে পারেন এমন উপলব্ধ বিকল্পগুলির সম্পূর্ণ তালিকা এবং সেগুলি কীভাবে ব্যবহার করবেন তার উদাহরণগুলি প্রদর্শন করতে বিকল্পটি যুক্ত করতে পারেন। নিম্নলিখিত svn log --helpউদাহরণগুলি সরাসরি "উদাহরণগুলি" বিভাগের অধীনে কমান্ড আউটপুট থেকে নেওয়া হয় :

Show the latest 5 log messages for the current working copy
directory and display paths changed in each commit:
  svn log -l 5 -v

3

কিন্তু এসএনএন লগটি এখনও বিপরীত ক্রমে রয়েছে, অর্থাৎ বেশিরভাগ সাম্প্রতিক এন্ট্রিগুলি প্রথমে আউটপুট হয়, আমার টার্মিনালের উপরের দিকে স্ক্রোল করে চলে গেছে। আমি সত্যিই শেষ এন্ট্রিগুলি দেখতে চাই , বাছাই করার ক্রমটি কালানুক্রমিক হতে হবে। একমাত্র কমান্ড যা এটি করে বলে মনে হয় svn log -r 1:HEADতবে এটি প্রায় 10000 এন্ট্রি সহ একটি সংগ্রহস্থলটিতে অনেক বেশি সময় নেয়। আমি এটি এ এসেছি:

কালানুক্রমিক ক্রমে শেষ 10 সাবভার্সন এন্ট্রি প্রদর্শন করুন:

svn log -r $(svn log -l 10 | grep '^r[0-9]* ' | tail -1 | cut -f1 -d" "):HEAD
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.