ফাইলগুলিতে খুঁজুন: টিম ফাউন্ডেশন সার্ভারে সমস্ত কোড সন্ধান করুন


102

নির্দিষ্ট স্ট্রিং বা রেজেক্সের জন্য টিএফএসের প্রতিটি ফাইলের সর্বশেষ সংস্করণটি অনুসন্ধান করার কোনও উপায় আছে কি? ভিজ্যুয়াল সোর্স নিরাপদ থেকে সম্ভবত এটিই আমি মিস করছি ...

বর্তমানে আমি পুরো কোডবেজে একটি সর্বশেষতম গতি সম্পন্ন করি এবং উইন্ডোজ অনুসন্ধান ব্যবহার করি তবে 75000 ফাইলে 1GB এরও বেশি কোড সহ এটি বেশ বেদনাদায়ক হয়ে পড়ে।

সম্পাদনা : উল্লিখিত পাওয়ারটুলগুলি ব্যবহার করে চেষ্টা করা হয়েছে, তবে "ওয়াইল্ডকার্ড অনুসন্ধান" বিকল্পটি কেবল ফাইলের নামগুলিতে অনুসন্ধান করবে এবং সামগ্রীগুলি নয়।

আপডেট : আমরা বিদ্যমান এমওএস (অনুসন্ধান সার্ভার) ইনস্টলেশনটিতে একটি কাস্টমাইজড অনুসন্ধান বিকল্পটি প্রয়োগ করেছি।

উত্তর:


57

টিম ফাউন্ডেশন সার্ভার 2015 (অন-প্রাঙ্গনে) এবং ভিজ্যুয়াল স্টুডিও টিম পরিষেবাদি (ক্লাউড সংস্করণ) আপনার সমস্ত কোড এবং কাজের আইটেম জুড়ে অনুসন্ধানের জন্য অন্তর্নির্মিত সমর্থন অন্তর্ভুক্ত করে।

আপনি সাধারণ স্ট্রিং অনুসন্ধানগুলি foo, বুলিয়ান ক্রিয়াকলাপ foo OR barবা আরও জটিল ভাষা-নির্দিষ্ট জিনিস পছন্দ করতে পারেনclass:WebRequest

কোড অনুসন্ধান ফিল্টার সিনট্যাক্সের স্ক্রিনশট

আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন: https://www.visualstudio.com/en-us/docs/search/overview


2
নীচে আমার উত্তর দেখুন, এবং এটি upvote;) Code Searchপ্লাগইন ব্যবহার করে এটি এখন টিএফএস 2015 হিসাবে সম্ভব । মার্কেটপ্লেস.ভিসুয়ালস্টুডিও.
com

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

কোড অনুসন্ধান এখন টিএফএস 2017 বা আরও নতুনতে উপলভ্য।
csrowell

আপনি যদি সেই দস্তাবেজের 2015 সংস্করণে স্যুইচ করার চেষ্টা করেন: "টিম ফাউন্ডেশন সার্ভার 2015 এর জন্য অনুরোধ করা পৃষ্ঠাটি উপলভ্য নয়" "
অ্যারোনএলএস

16

আমার ক্ষেত্রে, সি # তে একটি ছোট্ট ইউটিলিটি লেখা সাহায্য করেছে। যে লিঙ্কগুলি আমাকে সহায়তা করেছিল - http://pascallaurin42.blogspot.com/2012/05/tfs-quishes-searching-in-all-files-of.html

টিএফএস এপিআই ব্যবহার করে কোনও টিম প্রকল্পের ফাইলগুলি কীভাবে তালিকাভুক্ত করবেন?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.Framework.Client;
using System.IO;

namespace TFSSearch
{
class Program
{
    static string[] textPatterns = new[] { "void main(", "exception", "RegisterScript" };  //Text to search
    static string[] filePatterns = new[] { "*.cs", "*.xml", "*.config", "*.asp", "*.aspx", "*.js", "*.htm", "*.html", 
                                           "*.vb", "*.asax", "*.ashx", "*.asmx", "*.ascx", "*.master", "*.svc"}; //file extensions

    static void Main(string[] args)
    {
        try
        {
            var tfs = TfsTeamProjectCollectionFactory
             .GetTeamProjectCollection(new Uri("http://{tfsserver}:8080/tfs/}")); // one some servers you also need to add collection path (if it not the default collection)

            tfs.EnsureAuthenticated();

            var versionControl = tfs.GetService<VersionControlServer>();


            StreamWriter outputFile = new StreamWriter(@"C:\Find.txt");
            var allProjs = versionControl.GetAllTeamProjects(true);
            foreach (var teamProj in allProjs)
            {
                foreach (var filePattern in filePatterns)
                {
                    var items = versionControl.GetItems(teamProj.ServerItem + "/" + filePattern, RecursionType.Full).Items
                                .Where(i => !i.ServerItem.Contains("_ReSharper"));  //skipping resharper stuff
                    foreach (var item in items)
                    {
                        List<string> lines = SearchInFile(item);
                        if (lines.Count > 0)
                        {
                            outputFile.WriteLine("FILE:" + item.ServerItem);
                            outputFile.WriteLine(lines.Count.ToString() + " occurence(s) found.");
                            outputFile.WriteLine();
                        }
                        foreach (string line in lines)
                        {
                            outputFile.WriteLine(line);
                        }
                        if (lines.Count > 0)
                        {
                            outputFile.WriteLine();
                        }
                    }
                }
                outputFile.Flush();
            }
        }
        catch (Exception e)
        {
            string ex = e.Message;
            Console.WriteLine("!!EXCEPTION: " + e.Message);
            Console.WriteLine("Continuing... ");
        }
        Console.WriteLine("========");
        Console.Read();
    }

    // Define other methods and classes here
    private static List<string> SearchInFile(Item file)
    {
        var result = new List<string>();

        try
        {
            var stream = new StreamReader(file.DownloadFile(), Encoding.Default);

            var line = stream.ReadLine();
            var lineIndex = 0;

            while (!stream.EndOfStream)
            {
                if (textPatterns.Any(p => line.IndexOf(p, StringComparison.OrdinalIgnoreCase) >= 0))
                    result.Add("=== Line " + lineIndex + ": " + line.Trim());

                line = stream.ReadLine();
                lineIndex++;
            }
        }
        catch (Exception e)
        {
            string ex = e.Message;
            Console.WriteLine("!!EXCEPTION: " + e.Message);
            Console.WriteLine("Continuing... ");
        }

        return result;
    }
}
}

13

আরও একটি বিকল্প সমাধান আছে, এটি আরও আকর্ষণীয় বলে মনে হচ্ছে।

  1. অনুসন্ধান সার্ভার সেটআপ - কোনও উইন্ডোজ মেশিন / সার্ভার হতে পারে
  2. একটি টিএফএস বিজ্ঞপ্তি পরিষেবা সেটআপ করুন * প্রতিবার একটি চেকইন ঘটলে ফাইলগুলি পেতে, মুছতে এবং আপডেট করতে (বিসসক্রাইব) । সুতরাং এটি একটি ওয়েব সার্ভিস যা টিএফএস সার্ভারে শ্রোতার মতো কাজ করে এবং অনুসন্ধান সার্ভারে ফাইল এবং ফোল্ডারগুলি আপডেট / সিঙ্ক করে। - এটি নাটকীয়ভাবে নির্ভুলতা (লাইভ অনুসন্ধান) উন্নত করবে এবং পর্যায়ক্রমিক প্রাপ্তির এক-সময় বোঝা এড়াবে
  3. রুট ফোল্ডারের জন্য অনুসন্ধান সার্ভারে একটি সূচক পরিষেবা / উইন্ডোজ সূচিত অনুসন্ধান সেটআপ করুন
  4. অনুসন্ধানের ফলাফলগুলি ফিরে পেতে কোনও ওয়েব পরিষেবা উন্মুক্ত করুন

উপরের সমস্ত সেটআপ দিয়ে এখন আপনার কাছে ক্লায়েন্টের জন্য কয়েকটি বিকল্প রয়েছে:

  1. অনুসন্ধান পরিষেবাটিতে কল করতে একটি ওয়েব পৃষ্ঠা সেটআপ করুন এবং ফলাফলগুলি ওয়েবপৃষ্ঠায় দেখানোর জন্য ফর্ম্যাট করুন - আপনি এই ওয়েবপৃষ্ঠাটি ভিজ্যুয়াল স্টুডিওর অভ্যন্তরে সংহত করতে পারেন (ম্যাক্রো বা অ্যাড-ইন এর মাধ্যমে)
  2. অনুসন্ধান পরিষেবাটিতে কল করার জন্য এবং উইন্ডোজ ক্লায়েন্ট ইন্টারফেস (উইনফরম / ডাব্লুপিএফ) তৈরি করুন এবং ফলাফলগুলি ফর্ম্যাট করে এবং ইউআইতে দেখান - আপনি এই ক্লায়েন্ট সরঞ্জামটি ভিএসপ্যাকেজ বা অ্যাড-ইন এর মাধ্যমে ভিজ্যুয়াল স্টুডিওতে অভ্যন্তরীণ করতে পারেন can

আপডেট : আমি এই রুটে গিয়েছিলাম, এবং এটি দুর্দান্তভাবে কাজ করছে। শুধু এই যোগ করতে চেয়েছিলেন।

রেফারেন্স লিঙ্ক:

  1. বিসসবসক্রাইব.এক্সের পরিবর্তে এই সরঞ্জামটি ব্যবহার করুন
  2. টিএফএস ইভেন্টগুলি পরিচালনা করা
  3. টিম সিস্টেম বিজ্ঞপ্তি

12

আপনি যদি টিএফএস 2008 পাওয়ারটুলগুলি ইনস্টল করেন তবে আপনি টিম এক্সপ্লোরার রাইট ক্লিক মেনুতে একটি "ফাইন্ড ইন সোর্স কন্ট্রোল" ক্রিয়া পাবেন।

TFS2008 পাওয়ার সরঞ্জামগুলি


4
@ মজার এটি মজার বিষয় যে তাদের 'বিদ্যুৎ সরঞ্জাম' বলা হয়। কেউ কেউ বলবেন যে রোলব্যাকের মতো কিছু করা 'বেসিক কার্যকারিতা'। :-)
আইয়েন ধারক

ভাল, আপনি অবশ্যই ম্যানুয়ালি একটি রোলব্যাক করতে পারেন, এটি কেবল একটি ক্লিকের অপারেশন নয়। সম্ভবত এটি হওয়া উচিত ..
জেফ আতউড

3
ভাল উত্তর মৃত লিঙ্ক: microsoft.com/downloads/...
wcm

15
আমি মনে করি কেবল ফাইল / ফোল্ডারের নাম অনুসন্ধান করুন
কিড্ডো

9
-1 পাওয়ার সরঞ্জামগুলি ফাইলের বিষয়বস্তুগুলি অনুসন্ধান করে না , কেবল ফাইল / ফোল্ডারের নাম।
ইউজিন বেরেসভস্কি

6

অনুদানের পরামর্শ অনুসারে আমরা টিম ফাউন্ডেশন সার্ভার সোর্স কন্ট্রোলের (যেমনটি উল্লেখ করেছি উত্সস্যাফ নয়) জন্য একটি সমাধান প্রস্তুত করেছি; নির্ধারিত টিএফ পান, সার্ভার এক্সপ্রেস অনুসন্ধান করুন। তবে সি # ফাইল (পাঠ্য) এর জন্য ব্যবহৃত আইফিল্টারটি আমরা চাইলে ফলাফল দিচ্ছিল না, তাই আমরা উত্স ফাইলগুলিকে .htm ফাইলগুলিতে রূপান্তর করি। আমরা এখন ফাইলগুলিতে অতিরিক্ত মেটা-ডেটা যুক্ত করতে পারি:

  • লেখক (আমরা এটিকে সেই ব্যক্তি হিসাবে সংজ্ঞায়িত করেছি যা ফাইলটিতে সর্বশেষে পরীক্ষিত হয়েছিল)
  • রঙিন কোডিং (আমাদের করণীয় তালিকায়)
  • সম্ভাব্য নকশা সমস্যাগুলি নির্দেশ করে এমন পরিবর্তনগুলির সংখ্যা (আমাদের করণীয় তালিকায়)
  • কোডার স্মার্ট অনুসন্ধান বৈশিষ্ট্যের মতো ভিএসটিএস আইডিইয়ের সাথে সংহত করুন
  • প্রভৃতি

তবে আমরা টিএফএস সোর্স কন্ট্রোলের জন্য একটি প্রোটোকল হ্যান্ডলার এবং আরও একটি লক্ষ্যযুক্ত সমাধানের জন্য উত্সর্গীকৃত উত্স কোড আইফিল্টারটিকে পছন্দ করব।


1
Htm রূপান্তরটি উত্স খোলার কোনও পরিকল্পনা?
টেকনোমোলজিকাল

6

ঠিক আছে,

  1. TFS2008 শক্তি সরঞ্জাম না না একটি খোঁজ-ইন-ফাইল ফাংশন আছে। "সোর্স কন্ট্রোল সরঞ্জামগুলি অনুসন্ধান করে আইটেমের স্থিতি দ্বারা বা ওয়াইল্ডকার্ড এক্সপ্রেশন দিয়ে উত্স নিয়ন্ত্রণে ফাইল এবং ফোল্ডারগুলি সনাক্ত করার ক্ষমতা সরবরাহ করে।"

  2. কোডপ্লেক্সে এই কার্যকারিতা সহ একটি উইন্ডোজ প্রোগ্রাম রয়েছে । আমি এটি ইনস্টল করে পরীক্ষা করেছি এবং এটি ভালভাবে কাজ করে।


এটি আঠালো এবং ধীর গতির, তবে টিনে যা বলেছে তা করার জন্য মনে হচ্ছে
পল মাইকেলস

এই লোকেরা নীচের লিঙ্কটিতে পেয়েছে এমনভাবে আমি একটি ত্রুটি পেয়েছি। অন্য কেউ এই অভিজ্ঞতা? tfssearchcode.codeplex.com/workitem/32475
strider

6

Code Searchপ্লাগইনটি ব্যবহার করে এটি এখন টিএফএস 2015 হিসাবে সম্ভব । https://marketplace.visualstudio.com/items?itemName=ms.vss-code-search

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


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

3

আর একটি সমাধান হ'ল "সিটিআরএল + শিফট + এফ" ব্যবহার করা। সমাধান বা প্রকল্পের পরিবর্তে আপনি অনুসন্ধানের অবস্থান স্থানীয় ডিরেক্টরিতে পরিবর্তন করতে পারেন। এটি কেবলমাত্র ডেস্কটপ অনুসন্ধানের স্থান নেবে এবং আপনার এখনও সর্বশেষতম কোডটি নেওয়া দরকার তবে এটি আপনাকে ভিজ্যুয়াল স্টুডিওতে আপনার অনুসন্ধানের জন্য থাকতে দেয়।


4
টিএফএস কোড সংস্করণগুলির মাধ্যমে অনুসন্ধানের বিষয়টি সম্বোধন করে না।
ক্রেগ

তারা যা চেয়েছিল তা নয়।
ডেভ

আপনি ডাউনলোড করেন নি এমন সামগ্রী অনুসন্ধানের জন্য অকেজো। গ্রেপ / ফাইন্ডস্টার ব্যবহার করতে পারে।
জেমি

2

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


1

এই অ্যাড-ইনটি এমন কার্যকারিতা রয়েছে যা আমি বিশ্বাস করি যে আপনি অনুসন্ধান করেছেন:

টিম ফাউন্ডেশন সাইডকিক্স


দুঃখিত, আমি এটি দেখতে পাচ্ছি না যেখানে এটি ফাইলের ভিতরে অনুসন্ধানের প্রস্তাব দেয়?
মার্ক গ্লোরি

4
এই প্লাগ-ইন সেটটি আমি আগে ডাউনলোড করেছিলাম এবং এটি আপনাকে কেবল লেখক, লেবেল, তারিখ ইত্যাদির সাহায্যে অনুসন্ধান করতে দেয় তবে ফাইলগুলির পুরানো সংস্করণগুলির মধ্যে নয় ...: \
স্যান্ডর ডেভিডজি

1

একটি ফাইল লিঙ্কের জন্য এই অনুসন্ধানটি কীভাবে একটি ফাইল সন্ধান করবেন তা ব্যাখ্যা করে। এটিকে কাজ করার পরামর্শ দেওয়ার জন্য আমাকে চারপাশে বিদ্রূপ করতে হয়েছিল।

  1. সিডি "সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 12.0 \ কমন 7 \ আইডিই"
  2. টিএফ দির "$ / *। এসকিউএল" / পুনরাবৃত্তি / সার্ভার: http: // mytfsserver: 8080 / tfs

সিডি কমান্ডের ক্ষেত্রে, আমি সিডি কমান্ডটি সম্পাদন করেছি কারণ আমি tf.exe ফাইলটি খুঁজছিলাম। পুরো পথ জুড়ে কেবল সেই ডিরেক্টরি আয়াতগুলি থেকে শুরু করা সহজ ছিল। এই কাজটি কীভাবে করা যায় তা আমি এখন বুঝতে পেরেছি, আমি উদ্ধৃতিতে পরম পথটি ব্যবহার করব।

TF অনুসন্ধান ক্ষেত্রে, আমি সার্ভারের রুট শুরু $/এবং আমি সব ফাইল দিয়ে শেষ অনুসন্ধান sqlঅর্থাত *.sql। আপনি যদি মূলে শুরু করতে না চান তবে ব্যবহার করুন"$/myproject/*.sql" পরিবর্তে করুন।

উহু! এটি প্রশ্নের ফাইলের অংশে অনুসন্ধানটি সমাধান করে না তবে আমার গুগল অনুসন্ধান অন্যান্য লিঙ্কগুলির মধ্যে ফাইলগুলি সন্ধান করতে আমাকে এখানে নিয়ে এসেছে।


1

এটি বাক্স থেকে বাইরে করার কোনও উপায় নেই তবে এটি যুক্ত করার জন্য একটি ব্যবহারকারী ভয়েস প্রস্তাবনা রয়েছে: http://visualstudio.uservoice.com/forums/121579- ভিজুয়াল- স্টুডিও / সুপারিশ / 2037649-implement-indexed- পুরো টেক্সট অনুসন্ধান অফ কাজ আইটেম

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

আপডেট: কেবল ব্রায়ান হ্যারির ব্লগটি পড়ুন , যা এই অনুরোধটি তাদের রাডার হিসাবে উপস্থিত দেখায় এবং ভিজ্যুয়াল স্টুডিওর অনলাইন সংস্করণে যেখানে vit হিসাবে গিট ব্যবহৃত হয় তা অনুসন্ধানের জন্য সীমিত সমর্থন রয়েছে: http://blogs.msdn.com/b/ visualstudioalm / সংরক্ষণাগার / 2015/02/13 / ঘোষণা-সীমিত পূর্বরূপ-জন্য ভিজুয়াল-স্টুডিওতে-অনলাইন-কোড-search.aspx । এ থেকে আমি এটি সময়ের পক্ষে ঠিক বলা বাহুল্য বলে মনে করি ...

আপডেট 2: এখন একটি মাইক্রোসফ্ট সরবরাহিত এক্সটেনশান, কোড অনুসন্ধান যা কোডের পাশাপাশি কাজের আইটেমগুলিতে অনুসন্ধান সক্ষম করে।

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