1. 18 Apr, 2022 2 commits
  2. 12 Apr, 2022 2 commits
    • Ian Wienand's avatar
      Enforce minimum git version · a47f5afb
      Ian Wienand authored
      Id4528209f1cd500afd06e2e61eb5689022251118 introduced a minimum git
      version.  Abstract our existing check and setup a global with the
      local git version for tests.  Add a minimum version check.
      
      Change-Id: I9d1de11269758a453ecc8dde0a4c631d8e762a91
      a47f5afb
    • Zuul's avatar
      Merge "Drop support for Python 3.5" · f545f154
      Zuul authored
      f545f154
  3. 11 Apr, 2022 7 commits
  4. 10 Apr, 2022 2 commits
    • Jeremy Stanley's avatar
      Clean up package metadata · f3438787
      Jeremy Stanley authored
      The author-email and python-requires options are deprecated by
      SetupTools in favor of author_email and setup_requires and trigger
      warnings now, so update them. The license_files option (since its
      introduction) automatically includes LICENSE and AUTHORS if not
      specified, so was always redundant and unnecessary. The warnerrors
      option for PBR was for Sphinx integration, which we don't use any
      longer, and is ignored by modern PBR versions anyway so clean it up
      too.
      
      Change-Id: Ic5d1e17dd4926eea4e5b6fff47295fd8e9eb452d
      f3438787
    • Jonathan Rosser's avatar
      Force use of scp rather than sftp when possible · 5bfaa4a6
      Jonathan Rosser authored and Jeremy Stanley's avatar Jeremy Stanley committed
      OpenSSH has deprecated its use of scp/rcp protocol in favor of SFTP,
      which the embedded Apache mina-sshd in widely-deployed Gerrit
      versions does not yet support. The default officially changed in
      OpenSSH 9.0 (some distributions, such as Fedora and CentOS, switched
      their default behavior to this as early as OpenSSH 8.7 or 8.8),
      leading to a ``subsystem request failed on channel 0`` error during
      commit-msg hook retrieval. Now git-review will attempt to detect
      whether scp's -O option is available to force use of the legacy
      scp/rcp protocol, and apply it if so.
      
      Change-Id: Ib64c03c3e12a3a8390e38f6ca9393db3b3c2a9e3
      5bfaa4a6
  5. 07 Apr, 2022 1 commit
  6. 08 Mar, 2022 1 commit
    • Steve Kowalik's avatar
      Switch to unittest.mock · 1912e685
      Steve Kowalik authored
      Since mock is a backport of the standard library, and we no longer
      support Python 2, we can use the standard library, and drop one external
      dependency.
      
      Change-Id: I798c85f1581f4562908c10cd1b58134cdcb40281
      1912e685
  7. 23 Nov, 2021 1 commit
  8. 19 Nov, 2021 1 commit
    • Pierre Riteau's avatar
      Fix use of removed --preserve-merges option · 7182166e
      Pierre Riteau authored
      
      
      The --preserve-merges (-p) option was replaced by --rebase-merges (-r).
      This fixes the following error when using git version 2.34.0:
      
          Errors running git rebase -p -i remotes/gerrit/stable/xena
          fatal: --preserve-merges was replaced by --rebase-merges
      
      In order to keep compatibility with git < 2.18.0 we detect the git
      version and use the old --preserve-merges flag when the version is older
      than 2.18.0.
      
      Co-Authored-By: default avatarClark Boylan <clark.boylan@gmail.com>
      Change-Id: I04de3d0f20aa6bafcf746b7706d61dd9b9af296c
      7182166e
  9. 07 Jul, 2021 1 commit
    • Jeremy Stanley's avatar
      Ignore unstaged/uncommitted submodule changes · 6c3f134a
      Jeremy Stanley authored
      When checking for unstaged or uncommitted changes to avoid the test
      rebase (which could cause data loss for users of git.autostash),
      it's still fine if there are unstaged or uncommitted changes in
      submodules since those won't be rebased. Have the git diff
      invocations explicitly ignore submodules, and also add regression
      tests which demonstrate it's working.
      
      This fixes a regression originally introduced by change
      Iabb8387c9db59a7d02ebfd43b688e7bb93d3159f.
      
      Change-Id: I20d602e86537b573ac1f9788221215047a594f83
      6c3f134a
  10. 24 Jun, 2021 1 commit
    • Florian Haas's avatar
      Doc updates for Git "core.hooksPath" option support · 04786cd9
      Florian Haas authored
      Couple of small follow-ups to Id8a3ac464ff75e6d8207f198089f018cc790eca5:
      
      * Fix formatting in the reno (use monospace as applicable).
      * Update "Installation and Configuration" to say that the local hook
        *normally* goes into .git/hooks.
      
      Change-Id: I1b326bdcaed38d3a82a65f944431f3640652dd33
      04786cd9
  11. 21 Jun, 2021 1 commit
    • Florian Haas's avatar
      Support the Git "core.hooksPath" option when dealing with hook scripts · c40eb491
      Florian Haas authored
      Previously, git-review would assume that the Git repository's hook
      directory is .git/hooks, relative to the root of the checkout. This
      assumption breaks if the user has set the core.hooksPath option on the
      repository (or, for that matter, in ~/.gitconfig or /etc/gitconfig).
      
      core.hooksPath can either be set to an absolute path, in which case it
      is to be interpreted as-is, or to a relative path, in which case it
      should be interpreted as relative to the root of the checkout.
      
      Introduce a new convenience function to suss out the correct path, and
      use it in places where the reference to .git/hooks was previously
      hard-coded.
      
      Reference:
      https: //git-scm.com/docs/git-config#Documentation/git-config.txt-corehooksPath
      
      Depends-on: I0f0f44e57a100420d8e6d2eaec7dbb5d77b654af
      Change-Id: Id8a3ac464ff75e6d8207f198089f018cc790eca5
      c40eb491
  12. 17 Jun, 2021 1 commit
    • Jens Harbott's avatar
      Fix nodeset selections for zuul jobs · d0d3da82
      Jens Harbott authored
      We now are using focal nodes by default, so we no longer need to
      explicitly select those, instead we need bionic for py36+py37.
      
      Change-Id: I0f0f44e57a100420d8e6d2eaec7dbb5d77b654af
      d0d3da82
  13. 23 Apr, 2021 2 commits
    • Zuul's avatar
      Merge "Add option for disabling thin pushes" · afda8ece
      Zuul authored
      afda8ece
    • Clark Boylan's avatar
      Install PBR explicitly · ef1a35f4
      Clark Boylan authored
      We do this because easy_install on python3.5 is failing to find pbr. I
      believe this is happening due to pypi's deprecation of non SNI tls
      connections. They report that the version of 3.5 on xenial should be
      able to do SNI but easy_install at least doesn't seem to do so.
      
      Note we restrict this to python>=3 and <=3.5 as python 2.7 had
      backported fixes. Also, this really only helps with unittesting via tox
      as we instruct tox to explicitly install the requirements files before
      creating/installing the package itself. This is the reason we stick this
      in test-requirements.txt rather than requirements.txt.
      
      Change-Id: Iac2c1f4f575de250ed0dba22d33b017322fd7562
      ef1a35f4
  14. 12 Apr, 2021 1 commit
    • Clark Boylan's avatar
      Add option for disabling thin pushes · 39cd763d
      Clark Boylan authored
      There is a long standing issue with C Git pushing to Gerrit and Jgit
      where the occasional push will fail because the negotiated packs are
      missing a tree object. This happens very occasionally but when it does
      it would be nice to be able to point users at an easy workaround.
      Pushing with --no-thin is that workaround.
      
      Note that --no-thin is much less efficient so shouldn't be used by
      default.
      
      This old bug, https://bugs.launchpad.net/git-review/+bug/1332549, has
      details but it seems to affect current C git and Gerrit+Jgit.
      
      Change-Id: Id6ba52a656a14c921acab1b14ef668e6251245da
      39cd763d
  15. 17 Mar, 2021 1 commit
    • Roman Gorshunov's avatar
      Add missing -h to manpage and remove -c from it · 18189abf
      Roman Gorshunov authored
      - Change implementing the -h/--help option did not add corresponding
        manpage entry for it.
      - Change removing the -c/--comaptible option did not remove
        corresponding manpage entry for it.
      Correcting these oversights now.
      
      Task: #41310
      Change-Id: I548e63a778e36db65dd776aaf4e6d6a7fc103c2d
      18189abf
  16. 03 Mar, 2021 1 commit
  17. 02 Mar, 2021 4 commits
  18. 01 Mar, 2021 3 commits
  19. 26 Feb, 2021 6 commits
    • Jeremy Stanley's avatar
      Increase test timeout to 5 minutes · 7e2f99b2
      Jeremy Stanley authored
      A 2-minute global test timeout was added to the base test class back
      in 2014, to prevent tests from hanging until the job timeout is hit.
      This has served us well, but with updates to Gerrit and increasing
      complexity of our tests, we often get a slew of test timeouts on
      some CI nodes (ad on my workstation for that matter!). Increase this
      to 5 minutes, which should still serve the intended purpose while
      providing more time for tests to complete on less-performant
      systems.
      
      Change-Id: I9673ce3cf18f9e4c96fd7e9f96f5ddce2ef6d957
      7e2f99b2
    • Jeremy Stanley's avatar
      Overhaul Python package metadata and OpenDev URLs · 319953d5
      Jeremy Stanley authored
      Modernize our package metadata in the following ways:
      
      * switch from description-file to long_description with the file
        attribute, and specify an explicit content type and encoding
      
      * replace the home-page parameter with the newer general url one
      
      * add specific labelled project links for improved navigation from
        PyPI's summary sidebar
      
      * add commandline keyword to help folks searching
      
      * use the specific license metadata in addition to the corresponding
        trove classifier for it
      
      * make sure wheels when built also incorporate the LICENSE and
        AUTHORS files so that we're not distributing them without a copy
        of the license text
      
      * stop flagging wheels as "universal" now that git-review no longer
        supports Python 2.7
      
      * drop the old Sphinx integration config for PBR now that it's no
        longer needed
      
      https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html
      
      Also update old openstack.org URLs throughout contributor docs and
      examples/comments to newer opendev.org counterparts. Remove the old
      redundant HACKING.rst file as well as a lingering MANIFEST.in from
      the times before PBR was a thing. Replace the CONTRIBUTING.rst with
      a shorter one cribbed from bindep. Add the test profile to the one
      entry in bindep.txt to make it more apparent that's not a runtime
      dependency of git-review. Adjust some old "OpenStack, LLC."
      copyrights as indicated by the foundation's "Legal Issues FAQ."
      
      Change-Id: Ie45d4d73ba7b5a860f09cc4f1d849587761d846c
      319953d5
    • Jeremy Stanley's avatar
      Switch to default Sphinx theme · d3afb803
      Jeremy Stanley authored
      Since we're publishing documentation to docs.opendev.org now, drop
      the openstackdocstheme extension and just use the default Alabaster
      theme instead. Also clean up references to OpenStack in the Sphinx
      configuration and remove a really old (and unnecessary) copyright
      year.
      
      Change-Id: I535783db9dccd36a094d41e6cf08469b6d8c3894
      d3afb803
    • Jeremy Stanley's avatar
      Update jobs for opendev tenant · 6db28601
      Jeremy Stanley authored
      As git-review has moved to the "opendev" tenant in OpenDev's Zuul
      now, update its jobs to still work there and re-add release jobs
      based on similar configuration for the opendev/bindep repository.
      
      Change-Id: I7700ca9369080138122829ab2d4ddf3bbaea7b5f
      Depends-On: https://review.opendev.org/777774
      6db28601
    • Jeremy Stanley's avatar
      Don't test rebasing with unstaged changes · d83d99ca
      Jeremy Stanley authored
      For safety, attempts to push a commit with unstaged or uncommitted
      changes in the worktree will be caught and an error reported, rather
      than leaving it up to ``git rebase`` to spot them. This addresses a
      situation where users enabling "rebase.autostash" would otherwise
      experience data loss when the test rebase is subsequently reset.
      
      Change-Id: Iabb8387c9db59a7d02ebfd43b688e7bb93d3159f
      Task: #38921
      d83d99ca
    • Jeremy Stanley's avatar
      Add test helpers for unstaged/uncommitted changes · e8d54043
      Jeremy Stanley authored
      In order to better test detection of unstaged and uncommitted
      changes, add base test methods to create changes and not stage or
      commit them, ensuring they can result in an unstaged diff or staged
      but uncommitted edits. To ensure that these work, use them within
      the simple change creation method to perform the actual file edit.
      
      Change-Id: Ib698d0057a404f073490d1683a8eef8d0c143122
      e8d54043
  20. 24 Feb, 2021 1 commit