• 
      

    [WIP] Build a utility to interact with TFS.

    Review Request #8258 — Created June 24, 2016 and discarded

    Information

    RBTools
    release-0.7.x

    Reviewers

    The "tf" command that ships with Team Explorer Everywhere is pretty good, but
    it is missing some functionality that we'd like. Most notably, there's no way
    to get the content of files within a shelveset without unshelving it. That
    means that in order to be able to post shelvesets, we need our own adapter.
    This change is the beginnings of such an adapter, using the TFS SDK for Java.

    Because we have such an adapter now, we can make it do exactly what we need for
    interacting with TFS, which dramatically reduces the number of times it needs
    to be called. This is good because each time it is called, we have to spin up
    the whole JRE.

    I've written this using a modular command format with individual commands for
    each of the steps we have. These steps are:

    • Verify the workspace and get the URL of the collection.
    • Parse a given revision spec (with zero, one, or two "revisions" specified).
      This converts those revisions into either numeric changesets or special
      internal keys representing either the working copy or a shelveset.
    • Do a diff based on the parsed revisions. Diffs are currently implemented for
      the working directory and shelvesets. I haven't yet implemented diffs for
      committed revisions, because that's somewhat more complex, but the existing
      tf.cmd-based implementation doesn't do it either.
    
     
    Description From Last Updated

    Something tells me thats not right.

    brenniebrennie

    Why aren't we using Level.DEBUG? Does something have debugging info that we want to omit?

    brenniebrennie

    Doc comment.

    brenniebrennie

    Doc comment.

    brenniebrennie

    Doc comment.

    brenniebrennie
    reviewbot
    1. Tool: Pyflakes
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/build.xml
      
      
      
      Tool: PEP8 Style Checker
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/build.xml
      
      
    2. 
        
    david
    reviewbot
    1. Tool: PEP8 Style Checker
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
      
      
      
      Tool: Pyflakes
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
      
      
    2. 
        
    brennie
    1. 
        
    2. contrib/tools/tf-helper/build.xml (Diff revision 2)
       
       
      Show all issues

      Something tells me thats not right.

      1. I'm still figuring out the best way to consume this, since it's hard to download it automatically with the way that MS's downloads site works. For now I've improved this but it still requires some manual steps.

    3. Show all issues

      Why aren't we using Level.DEBUG? Does something have debugging info that we want to omit?

      1. The TFS SDK backend gets incredibly noisy with Level.DEBUG

    4. Show all issues

      Doc comment.

    5. Show all issues

      Doc comment.

    6. Show all issues

      Doc comment.

    7. 
        
    david
    reviewbot
    1. Tool: Pyflakes
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
          contrib/tools/tf-helper/ivysettings.xml
      
      
      
      Tool: PEP8 Style Checker
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiffShelf.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
          contrib/tools/tf-helper/ivysettings.xml
      
      
    2. 
        
    david
    reviewbot
    1. Tool: PEP8 Style Checker
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/log4j.properties
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Revision.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandGetCollection.java
          contrib/tools/tf-helper/ivysettings.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandParseRevision.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiff.java
      
      
      
      Tool: Pyflakes
      Ignored Files:
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSCollection.java
          contrib/tools/tf-helper/log4j.properties
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Application.java
          contrib/tools/tf-helper/ivy.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Revision.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/Command.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/TFSDiffer.java
          contrib/tools/tf-helper/build.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandGetCollection.java
          contrib/tools/tf-helper/ivysettings.xml
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandParseRevision.java
          contrib/tools/tf-helper/org/reviewboard/tfHelper/CommandDiff.java
      
      
    2. 
        
    david
    Review request changed
    Status:
    Discarded
    Change Summary:

    Moved to /r/8303/