• 
      

    Fix rbtools git client when local clone has no "origin" remote.

    Review Request #10340 — Created Nov. 29, 2018 and submitted

    Information

    RBTools
    release-1.0.x
    81c9b4f...

    Reviewers

    In the case where the local clone has remotes, but none of them are
    named "origin", rbtools was failing to correctly determine the most
    recent upstream commit. This was the case even when a tracking branch or
    parent branch associated with a remote was configured. The cause here
    was a couple places where we were hardcoding "origin" instead of
    attempting to detect the remote.

    This change fixes that by introducing a new mechanism to try to guess
    the remote. If a remote tracking branch is specified, we'll prefer that,
    failing back to the remote configured for the current branch. If no
    direct association can be found, we'll return either "origin" or fall
    back on the first remote found, emitting a warning.

    • Ran unit tests.
    • Set up a clone with multiple remotes, none of which were named
      "origin". Saw that I could correctly post changes when branch remotes
      and/or TRACKING_BRANCH were set correctly.
    Description From Last Updated

    These private methods are before some public methods. They should be moved further down the class.

    chipx86chipx86

    Must be the full path to the exception. Also, the description needs to be indented one more level.

    chipx86chipx86

    This is kind of weirdly formatted. Should be the standard: all_remote_branches = [ branch.strip() for branch in self._execute(['git', 'branch', '--remotes'], …

    chipx86chipx86

    Let's specifically say "in .reviewboardrc".

    chipx86chipx86

    Missing period.

    chipx86chipx86
    chipx86
    1. 
        
    2. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      These private methods are before some public methods. They should be moved further down the class.

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

      Must be the full path to the exception.

      Also, the description needs to be indented one more level.

    4. rbtools/clients/git.py (Diff revision 1)
       
       
       
       
      Show all issues

      This is kind of weirdly formatted. Should be the standard:

      all_remote_branches = [
          branch.strip()
          for branch in self._execute(['git', 'branch', '--remotes'],
                                      split_lines=True)
      ]
      
    5. rbtools/clients/git.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      Let's specifically say "in .reviewboardrc".

    6. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      Missing period.

    7. 
        
    david
    chipx86
    1. Ship It!
    2. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-1.0.x (9f011e6)