Don't throw exception to use when branches need a forced update to match upstream #10

Open
opened 2026-03-28 22:47:13 -04:00 by danielfdickinson · 0 comments

Instead of an error such as:

INFO:orepotool.repos:Fetching branches from remote github for repo packages
Traceback (most recent call last):
  File "/home/daniel/.local/bin/orepotool", line 6, in <module>
    sys.exit(orepotool_cli())
             ~~~~~~~~~~~~~^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/__init__.py", line 132, in orepotool_cli
    main(config_def)
    ~~~~^^^^^^^^^^^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/orepotool.py", line 113, in main
    _ = handle_repos(op_config)
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/orepotool.py", line 44, in handle_repos
    repos.update_repos(use_configured_branches=op_config.get("reset_branches"))
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/workspace_config.py", line 162, in update_repos
    self.repo_updaters[repo_name].update_repo()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/repos.py", line 57, in update_repo
    remote.fetch("refs/heads/*:refs/remotes/" + remote.name + "/*")
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/remote.py", line 1076, in fetch
    res = self._get_fetch_info_from_stderr(proc, progress, kill_after_timeout=kill_after_timeout)
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/remote.py", line 902, in _get_fetch_info_from_stderr
    proc.wait(stderr=stderr_text)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/cmd.py", line 419, in wait
    raise GitCommandError(remove_password_if_present(self.args), status, errstr)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git fetch -v -- github refs/heads/*:refs/remotes/github/*

when a manual git fetch --all gives:

Fetching origin
Fetching github
From https://github.com/danielfdickinson/packages
 + 7c87a2451...90fc8b6f8 pr-add-full-variant-update-packaging -> github/pr-add-full-variant-update-packaging  (forced update)
Fetching upstream
From https://codeberg.org/openwrt/packages
   a11d53a6c..6c1190469  master        -> upstream/master
   d6f79bdfd..50ac74e3c  openwrt-25.12 -> upstream/openwrt-25.12
Fetching upstream-github
From https://github.com/openwrt/packages
   a11d53a6c..6c1190469  master        -> upstream-github/master
   d6f79bdfd..50ac74e3c  openwrt-25.12 -> upstream-github/openwrt-25.12

(note the 'forced update')

This should be handled more gracefully.

Instead of an error such as: ```python INFO:orepotool.repos:Fetching branches from remote github for repo packages Traceback (most recent call last): File "/home/daniel/.local/bin/orepotool", line 6, in <module> sys.exit(orepotool_cli()) ~~~~~~~~~~~~~^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/__init__.py", line 132, in orepotool_cli main(config_def) ~~~~^^^^^^^^^^^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/orepotool.py", line 113, in main _ = handle_repos(op_config) File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/orepotool.py", line 44, in handle_repos repos.update_repos(use_configured_branches=op_config.get("reset_branches")) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/workspace_config.py", line 162, in update_repos self.repo_updaters[repo_name].update_repo() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/orepotool/repos.py", line 57, in update_repo remote.fetch("refs/heads/*:refs/remotes/" + remote.name + "/*") ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/remote.py", line 1076, in fetch res = self._get_fetch_info_from_stderr(proc, progress, kill_after_timeout=kill_after_timeout) File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/remote.py", line 902, in _get_fetch_info_from_stderr proc.wait(stderr=stderr_text) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/home/daniel/.local/share/pipx/venvs/openwrt-repotool/lib/python3.13/site-packages/git/cmd.py", line 419, in wait raise GitCommandError(remove_password_if_present(self.args), status, errstr) git.exc.GitCommandError: Cmd('git') failed due to: exit code(1) cmdline: git fetch -v -- github refs/heads/*:refs/remotes/github/* ``` when a manual `git fetch --all` gives: ```plaintext Fetching origin Fetching github From https://github.com/danielfdickinson/packages + 7c87a2451...90fc8b6f8 pr-add-full-variant-update-packaging -> github/pr-add-full-variant-update-packaging (forced update) Fetching upstream From https://codeberg.org/openwrt/packages a11d53a6c..6c1190469 master -> upstream/master d6f79bdfd..50ac74e3c openwrt-25.12 -> upstream/openwrt-25.12 Fetching upstream-github From https://github.com/openwrt/packages a11d53a6c..6c1190469 master -> upstream-github/master d6f79bdfd..50ac74e3c openwrt-25.12 -> upstream-github/openwrt-25.12 ``` (note the 'forced update') This should be handled more gracefully.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
orepotool/openwrt-repotool#10
No description provided.