This is very subtly broken: we look for the string 'Change-Id:'
in an array of byte strings. Fix this by decoding the git output
to utf-8 strings.
Change-Id: I708ad0adacb61c89bfba0fd88eeb2e37648317af
* When some projects are declared in the manifests with specific
changes (revision="refs/changes/../....../."), the path
detection does not work, while most cases have a unique paths
* Allow projects with unique branches to select their paths
upon repopick with a warning about the selection
Change-Id: Ic873d69f57c78f233db3d0de4ebd529f896799ea
* This prevents from seeing stuff like
"b'frameworks: Add unlinked ringtone and notification volumes'"
when using python3 as default.
Change-Id: Ie1fa85681b648edcee65680d784da4dff1779616
* If a cherry-pick results in an empty commit
(hints about git commit --allow-empty),
we should warn instead of failing all repopicks
Change-Id: I8410d7d02c4118c8072de609cf3c291e2d8523e6
Trailing slashes cause 'patchset' to be an empty string, which
cannot be converted to an int. If we have a trailing slash, ignore
it and pick the current patchset.
Change-Id: Ifad60b7f6ff3dcfd9dd80b2e93b1f909aa360666
* Use requests if installed. If not fall back to urllib. This is
done because users may or may not have requests installed and
requiring them to do so for simple http stuff isn't really
reasonable.
* If requests is installed and a .gerritrc file exists in the
user's HOME directory, try to get credentials out of it
for the given gerrit instance. If auth for the correct gerrit
instance exists, use it to auth to gerrit. If no .gerritrc
exists, just use requests with no auth.
Example ~/.gerritrc entry:
review.lineageos.org|invisiblek|httppasswordhere
Change-Id: I95be26d51bfd31b53f3613e8dbfb7bba46324571
In case of conflict, reset to initial state by aborting the cherry-pick,
leaving the working directory clean
Change-Id: I2353b92254b67ea49835bc88b6fc9bc3910b5107
* When using an ssh gerrit instance (-g) it is perfectly
reasonable to pick a draft commit. Don't require force
picking (-f) in order to do so.
Change-Id: I420f566ee1bb1f0b0d2a2ef29d95e0545db70b89
* Fixes errors like UnicodeEncodeError: 'ascii' codec can't encode
character u'\xb0' in position 51: ordinal not in range(128) with weird
characters in a commit message
Change-Id: I700198481630b4b29fd6d5d1f0c79bb94e59ad86
* Some projects with multiple merges and
discountinuous histories could trigger
an error here when the HEAD~{?} does
not exist, hence avoid this by ignoring
the commit and continue the search
Change-Id: Ice28c87d1bf8897da52236b637bbb0c5d349f848