2009-06-25 9 views
18

में सभी लॉक की गई फ़ाइलों को ढूंढें मैं लॉक की गई सभी फाइलें देखना चाहता हूं। अब तक, मैंने केवल tf.exe स्थिति का उपयोग किया है और '!' के साथ कुछ भी ढूंढ लिया है क्योंकि उन्हें यूआई में "लॉक, एडिट" के रूप में रिपोर्ट नहीं किया गया है। कोई विचार? धन्यवाद।टीएफएस

+0

महान सवाल है, पता नहीं कैसे, हालांकि यह करने के लिए ... :) –

उत्तर

18

आप power tools स्थापित किया है, यह एक-लाइनर है:

tfstatus . -r -user * | % { $_.pendingchanges } | ? { $_.islock } | select -unique serveritem 

यदि आप स्क्रिप्ट के लिए जीयूआई पसंद करते हैं, तो TFS Sidekicks आज़माएं।

+0

यह बहुत अच्छा लगता है। मैंने बस दूसरे दिन बिजली उपकरण स्थापित किए लेकिन मुझे नहीं पता था कि इसमें पावर खोल कमांडलेट थे। क्या आप जानते हैं कि मैं इन लोगों पर दस्तावेज़ीकरण कहां पा सकता हूं? इसके अलावा, मैं इसे कैसे सेट अप करूं ताकि शक्तियां डीएलएस पा सकें? – TheSean

+0

सहायता फ़ाइल में दस्तावेज़ शामिल होना चाहिए। 'सहायता' कमांड के माध्यम से शक्तियों के भीतर भी। यदि आप स्टार्ट मेनू पर "पावरहेल कंसोल" लिंक चलाते हैं तो स्नैप-इन और उपनाम स्वचालित रूप से लोड हो जाएंगे। या आप इंस्टॉल निर्देशिका से सेटिंग्स को अपनी $ प्रोफाइल में कॉपी कर सकते हैं। विवरण के लिए मेरा ब्लॉग पढ़ें: http://richardberg.net/blog –

+0

यह पता नहीं लगा सका कि टीएफएस साइडकिक्स में इसे कैसे किया जाए। मान लीजिए कि मैं पावर टूल्स का प्रयास करूंगा। –

4

मुझे नहीं लगता कि यह tf.exe या यहां तक ​​कि tfpt.exe (The Power Tool command line) का उपयोग कर संभव है। आपको ताले वाले परिवर्तनों के लिए लंबित परिवर्तनों को देखना होगा। आप Power Tool commandlets का उपयोग कर powershell में यह कर सकते हैं या आप नेट कोड की निम्न बिट कि TFS एपीआई अभ्यास का उपयोग कर इसे कर सकता है:

using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 

namespace TfsApiExample 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     GetLockedFiles("http://tfsserver:8080","$/TeamProject"); 
    } 

    private static void GetLockedFiles(string serverUrl, string serverPath) 
    { 
     TeamFoundationServer tfs = new TeamFoundationServer(serverUrl); 
     VersionControlServer vcServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer)); 

     // Search for pending sets for all users in all 
     // workspaces under the passed path. 
     PendingSet[] pendingSets = vcServer.QueryPendingSets(
      new string[] { serverPath }, 
      RecursionType.Full, 
      null, 
      null); 

     Console.WriteLine(
      "Found {0} pending sets under {1}. Searching for Locks...", 
      pendingSets.Length, 
      serverPath); 

     foreach (PendingSet changeset in pendingSets) 
     { 
     foreach(PendingChange change in changeset.PendingChanges) 
     { 
      if (change.IsLock) 
      { 
      // We have a lock, display details about it. 
      Console.WriteLine(
       "{0} : Locked for {1} by {2}", 
       change.ServerItem, 
       change.LockLevelName, 
       changeset.OwnerName); 
      } 
     } 
     } 

    } 
    } 
} 
-5

मुझे एक जीयूआई विकल्प मिला है।

  1. प्रारंभ दृश्य स्टूडियो
  2. ओपन फाइल
  3. जाओ स्रोत के लिए नियंत्रण
  4. तब कार्यस्थान
  5. आपके क्रेडेंशियल्स
  6. चेक शो दूरस्थ कार्यस्थानों दर्ज
  7. सभी अवांछित कार्यस्थानों निकालें

यह सरल :)

+1

-1 यह सभी उपयोगकर्ताओं की सभी लॉक की गई फाइलें कैसे दिखा रहा है? – base2

6

यदि आप टीएफएस साइडकिक्स का उपयोग करने की कोशिश कर रहे हैं, और यह पता नहीं लगा सकता कि यह उपकरण, टीम फाउंडेशन साइडकिक्स, स्टेटस साइडकिक के अंतर्गत है। आपको उस विंडो का विस्तार करने की आवश्यकता होगी, लेकिन फिर आप उपयोगकर्ता नाम के लिए ताले की खोज कर पाएंगे।

+0

शीर्ष दो उत्तरों बहुत उपयोगी हैं, लेकिन यह दिलचस्प हो सकता है। –

2
अपने कमांड प्रॉम्प्ट

>powershell 

फिर powershell से से

कार्य करें:

PS > tf info * -recursive | &{ 
begin{ 
    [email protected]{} 
    $prefix = "loc" 
} 
process{ 
    if ($_ -match "Local information"){ 
    if ($out.Count -gt 0) { 
    [pscustomobject]$out 
    [email protected]{} 
    $prefix = "loc" 
    } 
    } ElseIf ($_ -match "Server information"){ 
    $prefix = "svr" 
    } else { 
    $parts = $_.Split(':') 
    if ($parts.Length -eq 2){ 
    $out.Add($prefix + $parts[0].Trim(), $parts[1].Trim()) 
    } 
    } 
} 
end{ 
    if ($out.Count -gt 0) { 
    [pscustomobject]$out 
    } 
} 
} | where {!($_.svrLock -eq 'none')}