• 
      

    Add TFS support for VS2017 users.

    Review Request #8833 — Created March 21, 2017 and submitted

    Information

    RBTools
    release-0.7.x
    54a41aa...

    Reviewers

    Visual Studio 2017 changes the on-disk format of the user cache for TFS
    workspaces, and Team Explorer Everywhere and the TFS Java SDK don't have
    support for the new format. This meant that our two methods for interfacing
    with TFS on the client would not work against VS2017 workspaces.

    Fortunately, the tf.exe command-line tool that ships with VS2017 restores
    some of the features that were removed in VS2015 (which prompted our move to
    Team Explorer Everywhere), and is sufficient for posting pending changes. This
    change implements support for that, and adds some documentation about the three
    TFS methods and how to use them.

    • Posted a few TFS changes involving edits, adds, deletes, moves, and copies on
      various types of files, including binary files.
    • Built the docs and looked at the new page.
    Description From Last Updated

    Col: 80 E501 line too long (83 > 79 characters)

    reviewbotreviewbot

    Col: 80 E501 line too long (81 > 79 characters)

    reviewbotreviewbot

    Col: 33 E221 multiple spaces before operator

    reviewbotreviewbot

    We should state the versions here, too, like we do in the other sections.

    chipx86chipx86

    None of the code paths return a dict with this key.

    brenniebrennie

    Aren't we deprecating all usages of die in favour of SCMError etc?

    brenniebrennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          rbtools/clients/tfs.py
      
      Ignored Files:
          docs/rbtools/rbt/configuration/index.rst
          docs/rbtools/rbt/configuration/tfs.rst
          docs/rbtools/index.rst
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          rbtools/clients/tfs.py
      
      Ignored Files:
          docs/rbtools/rbt/configuration/index.rst
          docs/rbtools/rbt/configuration/tfs.rst
          docs/rbtools/index.rst
      
      
    2. rbtools/clients/tfs.py (Diff revision 1)
       
       
      Show all issues
      Col: 80
       E501 line too long (83 > 79 characters)
      
    3. rbtools/clients/tfs.py (Diff revision 1)
       
       
      Show all issues
      Col: 80
       E501 line too long (81 > 79 characters)
      
    4. rbtools/clients/tfs.py (Diff revision 1)
       
       
      Show all issues
      Col: 33
       E221 multiple spaces before operator
      
    5. 
        
    david
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          rbtools/clients/tfs.py
      
      Ignored Files:
          docs/rbtools/rbt/configuration/index.rst
          docs/rbtools/rbt/configuration/tfs.rst
          docs/rbtools/index.rst
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          rbtools/clients/tfs.py
      
      Ignored Files:
          docs/rbtools/rbt/configuration/index.rst
          docs/rbtools/rbt/configuration/tfs.rst
          docs/rbtools/index.rst
      
      
    2. 
        
    chipx86
    1. \o/

      Man, what a fustercluck. Thanks, Microsoft. Glad we're going to get some compatibiliy back though.

    2. docs/rbtools/rbt/configuration/tfs.rst (Diff revision 2)
       
       
       
       
       
       
       
      Show all issues

      We should state the versions here, too, like we do in the other sections.

    3. 
        
    david
    brennie
    1. 
        
    2. rbtools/clients/tfs.py (Diff revision 3)
       
       
       
      Show all issues

      None of the code paths return a dict with this key.

      1. True (for now), but I'd like to keep this comment consistent with the implementation in all the other clients.

    3. rbtools/clients/tfs.py (Diff revision 3)
       
       
      Show all issues

      Aren't we deprecating all usages of die in favour of SCMError etc?

      1. Are we? There are still a bunch. I think perhaps I'll leave this for now and if we're actually getting rid of it, we can do so along with al the other uses.

      2. If we use die, then the client cannot be instantiated from within a script and do its own graceful error handling because we will kill their script.

      3. See https://reviews.reviewboard.org/r/8899/

    4. 
        
    brennie
    1. Ship It!
    2. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-0.7.x (e5b3533)