গেট ডিফ সঙ্গে তুলনা করা


111

আমি ডিফ ডিভাইস হিসাবে তুলনা 3 ছাড়িয়ে গিট পেতে সাফল্য পেয়েছি তবে আমি যখন ডিফ করি তখন যে ফাইলটির সাথে আমি তুলনা করছি তাতে লোড হচ্ছে না। কেবলমাত্র ফাইলের সর্বশেষ সংস্করণটি লোড করা হয়েছে এবং অন্য কিছুই নয়, তাই তুলনা ছাড়িয়ে ডান ফলকে কিছুই নেই।

আমি সিগউইনের সাথে তুলনা ছাড়াই ৩.6.৩.১ গিট চালিয়ে যাচ্ছি 3.. আমি তুলনার বাইরেও সেট আপ করেছি কারণ তারা তাদের ওয়েবসাইটের সমর্থন অংশে এই জাতীয় স্ক্রিপ্ট সহ পরামর্শ দেয়:

#!/bin/sh  
# diff is called by git with 7 parameters:  
# path old-file old-hex old-mode new-file new-hex new-mode  
"path_to_bc3_executable" "$2" "$5" | cat

অন্য কেউ কি এই সমস্যার মুখোমুখি হয়েছেন এবং এর সমাধান জানেন?

সম্পাদনা:
আমি ভনকের পরামর্শ অনুসরণ করেছি তবে এখনও আমার আগের মতোই সমস্যা রয়েছে। আমি গিতের প্রতি খুব নতুন তাই সম্ভবত আমি ভিন্নতাটি সঠিকভাবে ব্যবহার করছি না।

উদাহরণস্বরূপ, আমি একটি ফাইলের মধ্যে যেমন কমান্ডের সাথে
পৃথকটি দেখতে চেষ্টা করছি: git diff main.css

তুলনার বাইরেও তখন খোলা হবে এবং কেবলমাত্র আমার বর্তমান মেইন সিএসএস বাম ফলকে প্রদর্শিত হবে, ডান ফলকে কিছুই নেই p আমি মূলত যা শেষ প্রতিশ্রুতিবদ্ধ করেছি তার তুলনায় বাম ফলকটিতে আমার বর্তমান মেইন সিএসএস দেখতে চাই।

আমার গিট-ডিফ-র‍্যাপার.শ

#!/bin/sh  
# diff is called by git with 7 parameters:  
# path old-file old-hex old-mode new-file new-hex new-mode  
"c:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat

আমার গিট কনফিগারেশনটি ডিফের মতো দেখায়:

[diff]  
external = c:/cygwin/bin/git-diff-wrapper.sh

উত্তর:


140

আমি অতিরিক্ত মোড়ক .sh ফাইল ব্যবহার করি না। আমার পরিবেশটি উইন্ডোজ এক্সপি, সাইগউইনে 1.7.1 গিট এবং 3 এর বাইরে তুলনা করুন Following নিম্নলিখিতটি আমার .git / কনফিগারেশন ফাইল is

[diff]
    tool = bc3
[difftool]
    prompt = false
[difftool "bc3"]
    #use cygpath to transform cygwin path $LOCAL (something like /tmp/U5VvP1_abc) to windows path, because bc3 is a windows software
    cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$(cygpath -w $LOCAL)" "$REMOTE"
[merge]
    tool = bc3
[mergetool]
    prompt = false
[mergetool "bc3"]
    #trustExitCode = true
    cmd = \"c:/program files/beyond compare 3/bcomp.exe\" "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

তারপর, আমি ব্যবহার $ Git difftool তুলনা করতে এবং $ Git mergetool একত্রীকরণ।

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


12
আমি উইন্ডোজ in তে একটি মিংগট গিট শেল নিয়ে ছুটে চলেছি। এর পরিবর্তে আমাকে একটি লিনাক্স স্টাইলের পাথ /c/program filesব্যবহার করতে হয়েছিল c:/program files। এছাড়াও আমি সরিয়েছি "$(cygpath -w $LOCAL)"এবং সবেমাত্র ব্যবহার করেছি "$LOCAL"। যে কৌশলটি মনে হয়েছিল।
ল্যান্ডন পোচ

5
যেমন @ পিসি ক্লাস নীচে উল্লেখ করেছে, "বিসি 3" এখন গিটের নতুন সংস্করণগুলিতে একটি অভ্যন্তরীণ সরঞ্জাম। আপনার একটি অনন্য নাম ব্যবহার করা উচিত, যেমন "পরাপার কম্পিউটার 3"
স্কট ওয়েগনার

4
গিটহাব শেল (উইন্ডোজ 8 এ) আমাকে বলেছিল bcompare: command not found- যতক্ষণ না আমি সরঞ্জামটির bc3নামটি অন্য কোনও জিনিস থেকে পছন্দ করি (যেমন abc3)। আমার ধারণা, কিছু অভ্যন্তরীণ গিথুব সেটিংস হস্তক্ষেপ করেছে। এছাড়াও, আমি সেই "$(cygpath -w $LOCAL)"অংশটি সরিয়ে নিয়ে প্রতিস্থাপন করেছি "$LOCAL"। এখন এটি ঠিক কাজ করে। ধন্যবাদ!
ফেলিক্স আলকালা

1
দুটি কমিটের মধ্যে পার্থক্য দেখার সময় এটি আমার পক্ষে বগী ছিল। এখানে একটি আরও ভাল সমাধান: blog.kifaru.be/2011/07/…
balajimc55

2
আমি এই নিবন্ধটিও পেয়েছি: scootersoftware.com/support.php?zz=kb_vcs
গাই অভ্রাহাম

28

পোশ- গিতের লেখক @ ডাহলবিইকে ধন্যবাদ , তার গিস্ট হিসাবে কনফিগারেশন পোস্ট করার জন্য । এটি আমার কনফিগারেশন সমস্যার সমাধান করতে সহায়তা করেছে।

[diff]
    tool = bc3
[difftool]
    prompt = false
[difftool "bc3"]
    cmd = \"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc3
[mergetool]
    prompt = false
    keepBackup = false
[mergetool "bc3"]
    cmd = \"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
    trustExitCode = true
[alias]
    dt = difftool
    mt = mergetool

আমি এই উত্তরটি চেষ্টা করেছি এবং পার্থক্য করতে পারিনি, সম্ভবত আমি এটি ভুল করে করছি।
এপু

1
@ ইপু আপনি কি নিশ্চিত করেছেন যে আপনার পাথগুলি আপনার মেশিনে একই রয়েছে? এবং এটি তুলনা 3 এর বাইরে, কোনও পুরানো ভি 2 বা কিছু নয়?
নিক জোসেভস্কি 22'12

আমি নিশ্চিত করেছি যে পথগুলি একই এবং এটি বিসি 3।
এপু

1
মজার বিষয় হ'ল, 'গিট ডিফ্টল ফাইল.টেক্সট' এবং 'গিট মার্জেটুল ফাইল.txt' ঠিকঠাক কাজ করছে, তাই আমি সেগুলিতে চলে এসেছি ched তবে 'গিট ডিফ ফাইল.টেক্সট' এখন পর্দা করা হয়েছে (এটি আমাকে ডিফল্ট কনসোল ডিফ দেখানোর আগে ব্যবহৃত হত)। এখন এটি আমাকে 'ত্রুটি দেয়: বিসি 3 স্প্যান করতে পারে না: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি x নৈসর্গিক পার্থক্য মারা যায় না, file.txt এ থামছে'
এপু

ঠিক তেমন ক্ষেত্রে যদি কেউ আমার একই সমস্যার মুখোমুখি হয় (এটি সম্পাদনা করার পরে অচেনা। গিটকনফিগ) আমাকে এই পথটি যোগ করতে হবে:cmd = 'C:\\Program Files\\Beyond Compare 4\\BCompare.exe' \"$LOCAL\" \"$REMOTE\"
সেবাগোমেজ

20

2 টি তুলনা করার জন্য এই আদেশগুলি চালান:

git config --global diff.tool bc2
git config --global difftool.bc2.cmd "\"c:/program files (x86)/beyond compare 2/bc2.exe\" \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

3 এর তুলনা ছাড়িয়ে এই আদেশগুলি চালান:

git config --global diff.tool bc3
git config --global difftool.bc3.cmd "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

তারপরে ব্যবহার করুন git difftool


1
4 এর তুলনায় কি সমর্থিত?
দানিজেল

2
@Danijel কর্মকর্তা ডক @Daniel Magnussons উত্তর রাজ্যে বিবৃতNote: Use bc3 on the command line for both BC version 3 and 4
bnt

9

অফিসিয়াল ডকুমেন্টেশন আমার জন্য কাজ করে


আমাকে অফিসিয়াল ডকের দিকে দেখানোর জন্য ধন্যবাদ মানুষ !!! কমপক্ষে এটি জিআইটি বনাম গিটহাবের জন্য কি কনফিগার কনফিগার প্রয়োজন তা নির্দিষ্ট করে
শ্রীদত্ত কোঠারি

6

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

[user]
        name = PeteW
        email = petew@petew.com
[diff]
        tool = bc3
[difftool]
        prompt = false
[difftool "bc3"]
        path = /c/Program Files (x86)/Beyond Compare 3/BComp.exe
[merge]
        tool = bc3
[mergetool]
        prompt = false
        keepBackup = false
[mergetool "bc3"]
        path = /c/Program Files (x86)/Beyond Compare 3/BComp.exe
        trustExitCode = true
[alias]
        dt = difftool
        mt = mergetool

4

বিয়ন্ড তুলনা সমর্থন পাতা একটু সংক্ষিপ্ত হয়।

আমার বিবিধ উত্তর পরীক্ষা করুন (সঠিক বাক্য গঠন সম্পর্কে)

নির্যাস:

$ git config --global diff.external <path_to_wrapper_script>

কমান্ড প্রম্পটে, " git-diff-wrapper.sh" এর পথে প্রতিস্থাপন করে , যাতে আপনার ~/.gitconfigথাকে

-->8-(snip)--
[diff]
    external = <path_to_wrapper_script>
--8<-(snap)--

মোড়ক স্ক্রিপ্ট এবং ডিফ সরঞ্জামের জন্য পাথ নির্দিষ্ট করার জন্য সঠিক বাক্য গঠনটি ব্যবহার করতে ভুলবেন না, যেমন ব্যাকস্ল্যাশের পরিবর্তে ফরোয়ার্ড স্ল্যাশ ব্যবহার করুন। আমার ক্ষেত্রে, আমি আছে

[diff]
    external = c:/Documents and Settings/sschuber/git-diff-wrapper.sh

ইন .gitconfigএবং

"d:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat

মোড়ক স্ক্রিপ্ট এ।


দ্রষ্টব্য: আপনি ব্যবহার করতে পারেন git difftool



3

দয়া করে লক্ষ্য করুন আপনি you 2 এর একটি ভুল পথ করেছেন make কারণ আপনি সাইগউইনের অধীনে কিন্তু বিসি 3 নন, সুতরাং আপনার এটির জন্য একটি সম্পূর্ণ পথ নির্দিষ্ট করা উচিত। যেমন "ডি: / সাইগউইন $ 2"

দয়া করে এখানে আমার গিট-ডিফ-র‍্যাপার.শ উল্লেখ করুন:

$ cat ~/git-diff-wrapper.sh
#!/bin/sh
echo $2
echo $5
/cygdrive/c/Program\ Files\ \(x86\)/Beyond\ Compare\ 3/BCompare.exe "d:/programs/cygwin$2" "$5"

শুভকামনা।


3
আপনার সত্যিকার অর্থে এই জন্য চক্রপথ ব্যবহার করা উচিত; যেমন bcompare.exe $(cygpath -w $2)। চিয়ার্স।
ড্যান মোল্ডিং

3

যদি আপনি উইন্ডোজ 7 (পেশাদার) এবং উইন্ডোজের জন্য গিট (v 2.15 বা ততোধিক) চালিয়ে যাচ্ছেন তবে আপনি উইন্ডোজের জন্য গিট দ্বারা সমর্থিত বিভিন্ন পৃথক সরঞ্জামগুলি কী কী তা জানতে কেবল কমান্ডের নীচে রান করতে পারেন can

git difftool --tool-help

আপনি এটির অনুরূপ আউটপুট দেখতে পাবেন

git difftool --tool = 'নিম্নলিখিতগুলির মধ্যে একটিতে সেট করা যেতে পারে:
vimdiff vimdiff2 vimdiff3

এর অর্থ হ'ল আপনার গিটটি এখনই ডিফ্টল হিসাবে তুলনা করার বাইরে সমর্থন করে না (খুঁজে পাচ্ছে না)।

গিটের বৈধ ডিফ্টল হিসাবে তুলনা করার চেয়ে বেশি খুঁজে পাওয়ার জন্য, আপনার সিস্টেমের প্যাথ এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে আপনার ইন্সটলেশন ডিরেক্টরী তুলনা করা উচিত । আপনি শেল (সিএমডি, গিট ব্যাশ বা পাওয়ারশেল। আমি গিট ব্যাশ ব্যবহার করছি) থেকে বিসিএমপিয়ার চালিয়ে এটি পরীক্ষা করতে পারেন। তুলনার বাইরে যদি লঞ্চ না হয় তবে এটির ইনস্টলেশন ডিরেক্টরিটি (আমার ক্ষেত্রে, সি: \ প্রোগ্রাম ফাইলগুলি 4 তুলনা 4 ছাড়িয়ে) আপনার সিস্টেমের পাথের ভেরিয়েবলটিতে যুক্ত করুন। এর পরে, আপনার শেলটি পুনরায় চালু করুন। গিট সম্ভাব্য ডিফ্টল বিকল্প হিসাবে তুলনা ছাড়িয়ে দেখায়। ডিফ্টটিওল হিসাবে তুলনা ছাড়াই চালু করতে আপনি নীচের যে কোনও আদেশ ব্যবহার করতে পারেন (উদাহরণস্বরূপ, কোনও স্থানীয় ফাইলের সাথে অন্য কোনও শাখার সাথে তুলনা করতে)

git difftool -t bc branchnametocomparewith -- path-to-file
or 
git difftool --tool=bc branchnametocomparewith -- path-to-file

নীচের কমান্ডগুলি ব্যবহার করে আপনি তুলনা ছাড়িয়ে ডিফল্ট ডিফ্টল হিসাবে কনফিগার করতে পারেন

   git config --global diff.tool bc

PS মনে রাখবেন যে উপরের কমান্ডে বিসি ইন বিসি 3 বা বিসি হতে পারে তার ভিত্তিতে গিট আপনার পাথ সিস্টেম ভেরিয়েবল থেকে কী খুঁজে পেতে সক্ষম হয়েছিল।


2

বিসি 4 bit৪ বিবিটের জন্য আপডেট: এটি উইন্ডোজ v.2.16.2 এর জন্য গিট এবং 4 এর তুলনায় 4 - v.4.2.4 (64 বিট সংস্করণ) এর জন্য কাজ করে

আমি নিজেই আমার ব্যবহারকারী মূল "সি: \ ব্যবহারকারী \ মাইউজারনেম" এ অবস্থিত। গিটকনফিগ ফাইলটি সম্পাদনা করে ডিফ / ডিফ্টল এবং প্রতিস্থাপন / মার্জেটুল ট্যাগগুলির সাথে সংযুক্ত করেছি

[diff]
  tool = bc
[difftool "bc"]
  path = 'C:/Program Files/Beyond Compare 4/BComp.exe'
[difftool "bc"]
  cmd = \"C:/Program Files/Beyond Compare 4/BComp.exe\" \"$LOCAL\" \"$REMOTE\"
[difftool]
  prompt = false
[merge]
  tool = bc
[mergetool "bc"]
  path = 'C:/Program Files/Beyond Compare 4/BComp.exe'
[mergetool "bc"]
  cmd = \"C:/Program Files/Beyond Compare 4/BComp.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\"


1

পার্থক্যটি এক্সিকে বলা হচ্ছে: এটি বেকম্প্প.এক্সই কল করতে সেট আপ করুন এবং এটি ঠিকঠাক কাজ করবে। আপনার পরিবেশকে bcompare.exe কল করতে কনফিগার করুন এবং আপনি আপনার সংশোধন সিস্টেমটি থেকে খালি তুলনায় তুলনা করার দিকটি শেষ করবেন।


1

3 এর চেয়ে বেশি তুলনা করার জন্য এই আদেশগুলি চালান (যদি বিসিম্পার.এক্সে পাথটি আপনার সিস্টেমে আলাদা হয় তবে দয়া করে আপনার অনুযায়ী এটি প্রতিস্থাপন করুন):

git config --global diff.tool bc3
git config --global difftool.bc3.cmd "\"c:/program files (x86)/beyond compare 3/BCompare.exe\" \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false

তারপরে ব্যবহার করুন git difftool


1

উইন্ডোজ 10, গিট ভি 2.13.2

আমার .gitconfig। '\' এবং '"' এর জন্য পালানোর চরিত্রটি যুক্ত করতে ভুলবেন না।

[diff]
    tool = bc4
[difftool]
    prompt = false
[difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\BCompare.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = bc4
[mergetool "bc4"]
    path = C:\\Program Files\\Beyond Compare 4\\BCompare.exe

আপনি উল্লেখ করতে পারে স্থাপনের পরেও difftool যেমন তুলনা এটা কনফিগ করার Git কমান্ড ব্যবহার করার জন্য।


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

0

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

cp -r $2 "/cygdrive/c/temp$2"
cygstart /cygdrive/c/Program\ Files\ \(x86\)/Beyond\ Compare\ 3/BCompare.exe "C:/temp$2" "$5"

0

ম্যাকের জন্য অনেক গবেষণা করার পরে এটি আমার পক্ষে কাজ করে ..! 1. তুলনা ছাড়িয়ে ইনস্টল করুন এবং এটি নীচের অবস্থানে ইনস্টল করা হবে

/ অ্যাপ্লিকেশন / এর বাইরে are তুলনা.এপ / সামগ্রী / ম্যাকোস / বিসিপি

গিটটিতে বিসিফ / মার্জ টুল হিসাবে বিসি তৈরি করতে দয়া করে এই পদক্ষেপগুলি অনুসরণ করুন


0

গিটার সংস্করণের জন্য বিসি 2.এক্সই সহ 2.15.1. উইন্ডো ২.২

নীচের কনফিগারেশনটি শেষ পর্যন্ত আমার মেশিনে কাজ করে।

[difftool "bc2"] cmd = \"c:/program files/beyond compare 2/bc2.exe\" ${LOCAL} ${REMOTE}

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