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)