Mercurial: স্বয়ংসম্পূর্ণতা মধ্যে শাখা কিভাবে প্রদর্শন


3

এটি একটি নির্দিষ্ট ট্যাগ বা শাখায় আপডেট করা সম্ভব hg update <branch-or-tag> কমান্ড। যাইহোক, অন্তর্নির্মিত সমাপ্তি শুধুমাত্র আমাকে ট্যাগ (শাখা দেখায়) দেখায়। তাই যখন আমি টাইপ hg update এবং ট্যাব হিট, আমি ট্যাগ একটি তালিকা পেতে, কিন্তু কোন শাখা। এই তালিকায় শাখা যোগ করা সম্ভব?

অথবা এই এমনকি Mercurial একটি বাগ হতে পারে?

আমি হোমব্রু মাধ্যমে ইনস্টল Mercurial সঙ্গে zsh এবং oh-my-zsh ব্যবহার করছি।

উত্তর:


3

বর্তমান কোড _hg (Zsh 5.0.2) শুধুমাত্র ট্যাগ সঙ্গে সম্পন্ন করে:

একটি সংক্ষিপ্ত চেহারা সূত্র _hg (mercurial জন্য সমাপ্তি ফাংশন) যে জন্য সমাপ্তি দেখায় hq update (ফাংশন দ্বারা বাস্তবায়িত _hg_cmd_update সত্যিই শুধুমাত্র সংশোধন এবং ট্যাগ ফেরত:

_hg_cmd_update() {
  _arguments -s -w : $_hg_global_opts \
  '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
  ':revision:_hg_tags'
}

অবস্থান: আমি মনে করি সবচেয়ে সহজ জিনিস কল করতে হবে locate _hq, কিন্তু সাধারণত আমি ফাংশন হতে হবে আশা করি /usr/share/zsh/5.0.2/functions। ইনস্টলেশনের বিকল্পগুলির কারণে সঠিক সাব-ফোল্ডার পরিবর্তন হতে পারে। নিরাপদ জিনিস 5.0.2 টার বল ডাউনলোড করুন, এবং তাকান zsh-5.0.2/Completion/Unix/Command/_hg


কি দয়ালু :( ধন্যবাদ, এতদূর!
Patrick Oscity

1
আমি zsh সমাপ্তি ফাংশন খুঁজে পেতে তাই আমি এটা প্যাচ করতে পারেন? আমি শুধুমাত্র ব্যাশ সমাপ্তি খুঁজে পেতে পারে ...
Patrick Oscity

1

উবুন্টু 16.04 ডিফল্টের সাথে একই সমস্যা ছিল zsh 5.1.1

এটি প্রায় পেতে আমি ম্যানুয়ালি ম্যানুয়াল /usr/share/zsh/functions/Completion/Unix/_hg

প্রতিস্থাপন _hg_tags() সঙ্গে কাজ

_hg_tags() {
  local expl
  typeset -a hglabels
  hglabels=( ${(f)"$(_hg_cmd debugnamecomplete -q 2>/dev/null)"} )
  _wanted labels expl 'labels' compadd -a - hglabels
}

সম্পাদনা: উল্লেখ করছি উল্লেখ করছি আমি ব্যবহার করছি Mercurial (version 3.7.3) যেমন debugnamecomplete Mercurial এর সব সংস্করণে হয় না। আপনি যে সংস্করণ ব্যবহার করছেন সেটি সহজেই পরীক্ষা করে দেখতে পারেন hg debugnamecomplete। যদি সমর্থিত না হয় ঠিক যেমন mercurial আপডেট।


এই আমার কাছ থেকে এটি সমাধান। এই পরিবর্তন zsh আপডেট পরে ফিরে প্রত্যাবর্তন করবে?
Nebojsac

1
আমি এটা overwritten পেতে সন্দেহ। এটি clobbering zsh আপডেট এড়াতে একটি বিকল্প ইনস্টল করা হবে oh-my-zsh এবং পরিবর্তন পরিবর্তে /usr/share/zsh/functions/Completion/Unix/_hg শুধু এটা কপি ~/.oh-my-zsh/custom/plugins/hg/_hg তারপর এটা সংশোধন করুন। যে পরিবর্তনের পরে ~/.zshrc কাস্টম zsh প্লাগইন লোড plugins=(... hg)। আমি আসলে OSX এর জন্য এটি করতে হয়েছে কারণ /usr/share সিস্টেম ফাইল পরিবর্তন সংশোধন অতিরিক্ত নিরাপত্তা আছে।
mattyboy

1

আমি সমস্যা সমাধান hg up নিম্নলিখিতগুলি সহ _hg_tags () ফাংশনটি পুনঃলিখন করে শাখা স্বয়ংসম্পূর্ণ করুন:

_hg_tags() {
  typeset -a tags
  local tag rev

  _hg_cmd tags 2> /dev/null | while read tag
  do
    tags+=(${tag/ #    [0-9]#:*})
  done
  _hg_cmd branches 2> /dev/null | while read tag
  do
    tags+=(${tag/ #    [0-9]#:*})
  done
  (( $#tags )) && _describe -t tags 'tags' tags
}

0

Mercurial জন্য ট্যাব সমাপ্তি স্ক্রিপ্ট সংস্করণ যে zsh সঙ্গে জাহাজের তারিখ বিট আউট (বুকমার্ক বা শাখা সমর্থন করে না)। Mercurial উত্স একটি আপ টু ডেট সংস্করণ আছে। homebrew এই স্ক্রিপ্টটি ইনস্টল করার মতো মনে হচ্ছে না তাই আমি সেরা জিনিসটি মারিওরিয়াল উত্স ডাউনলোড করতে এবং zsh fpath এ zsh_completion স্ক্রিপ্ট যোগ করতে পেয়েছি।

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