Move support flags out of RepositoryInfo into SCMClient.

Review Request #11520 — Created March 12, 2021 and submitted

Information

RBTools
master

Reviewers

RepositoryInfo had two old flags for indicating support for features,
supports_changesets and supports_parent_diffs. Having these in
the RepositoryInfo class was weird, since we have a bunch of other
support flags that live on the SCMClient class. Whether a client
supports these isn't something that might change from repository to
repository, so these should live on the client too.

This change moves those flags over. Unfortunately, unlike a lot of the
recent cleanups, this isn't something that can be done in a soft
deprecation. It seems pretty unlikely that there are custom SCMClient
implementations floating around which use these, but just in case, if
they try to use it after upgrading to RBTools 3.0, it'll spit out a
useful error message telling them how to fix it.

Ran unit tests.

Summary ID
Move support flags out of RepositoryInfo into SCMClient.
`RepositoryInfo` had two old flags for indicating support for features, `supports_changesets` and `supports_parent_diffs`. Having these in the `RepositoryInfo` class was weird, since we have a bunch of other support flags that live on the `SCMClient` class. Whether a client supports these isn't something that might change from repository to repository, so these should live on the client too. This change moves those flags over. Unfortunately, unlike a lot of the recent cleanups, this isn't something that can be done in a soft deprecation. It seems pretty unlikely that there are custom SCMClient implementations floating around which use these, but just in case, if they try to use it after upgrading to RBTools 3.0, it'll spit out a useful error message telling them how to fix it. Testing Done: Ran unit tests.
d0f7498a683486bcbd8449f3da537b12d72b8f93
Description From Last Updated

F821 undefined name 'CommandError'

reviewbotreviewbot

F821 undefined name 'CommandError'

reviewbotreviewbot

Can you add Type: to each of these?

chipx86chipx86

Can you add Version Added and Type here (in that order)?

chipx86chipx86

Rather than outright quit, can we have this raise an exception instead? That'll be a lot nicer on anyone who …

chipx86chipx86

To avoid any confusion, let's say "must instead set the supports_changesets attribute on the class."

chipx86chipx86

Same note here.

chipx86chipx86

While here, can we move this to super()?

chipx86chipx86
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

david
chipx86
  1. 
      
  2. rbtools/clients/__init__.py (Diff revision 2)
     
     
    Show all issues

    Can you add Type: to each of these?

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

    Can you add Version Added and Type here (in that order)?

  4. rbtools/clients/__init__.py (Diff revision 2)
     
     
     
     
     
     
     
    Show all issues

    Rather than outright quit, can we have this raise an exception instead? That'll be a lot nicer on anyone who may hit this.

    Same below.

  5. rbtools/clients/__init__.py (Diff revision 2)
     
     
     
    Show all issues

    To avoid any confusion, let's say "must instead set the supports_changesets attribute on the class."

  6. rbtools/clients/__init__.py (Diff revision 2)
     
     
     
    Show all issues

    Same note here.

  7. 
      
david
chipx86
  1. 
      
  2. rbtools/clients/clearcase.py (Diff revision 3)
     
     
    Show all issues

    While here, can we move this to super()?

  3. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to master (e55e0b6)