git branches can be namespaces like directories on a filesystem and are
represented like that. Due to that there can't be a branch with the same
name as a namespace, i.e. foo and foo/bar.
If upstream moves from a branch to namespace, we need to prune the old
branch before fetching the new one.
This broke organic maps:
From https://github.com/organicmaps/organicmaps
* [new branch] android/huawei -> origin/android/huawei
error: cannot lock ref 'refs/remotes/origin/fixes/all': 'refs/remotes/origin/fixes' exists; cannot create 'refs/remotes/origin/fixes/all'
! [new branch] fixes/all -> origin/fixes/all (unable to update local ref)
e2ac324b95..320a1db39b master -> origin/master
* [new tag] 2021.10.09-2-android -> 2021.10.09-2-android
error: some local refs could not be updated; try running
'git remote prune origin' to remove any old, conflicting branches
* fix-ndk-long-form-version:
test whether NDK version parsing is working properly
Fix invalid key error due to NDK versions in "revision" form (e.g. 21.4.7075529)
fdroid/fdroidserver!1020
This is the deployed script for pushing to the primary mirrors. It starts
with the 'repo' section and runs all the rsyncs in parallel to each primary
mirror. Once the 'repo' syncs are done, it does the same process for the
'archive' syncs. This adds a new primary push mirror at PLUG. #163!800!792
[skip ci]
23b0b6bc added logging in case of an FDroidException on the build
server. This broke the log of apps that fail to build.
Prior to 23b0b6bc a failing build in the VM triggered a BuildException
on the server side but the build output was written to the log in the
finally part of build_server(). After 23b0b6bc the finally part writs
the build as well but the BuildException is caught in main() and the
build log is overwritten with the empty exception content. This patch
always adds the build log to the exception so it is written to the log.
Closes: #882
This happened with us.spotco.fennec_dos_2912000 where no build log was
saved in the repo but the wiki has an error text. The error text was:
"Command '['rsync', '--recursive', '--perms', '--links', '--quiet', '--rsh=ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=FATAL -o IdentitiesOnly=yes -o PasswordAuthentication=no -p 2222 -i /home/fbuild/.vagrant.d/boxes/buildserver/0/virtualbox/vagrant_private_key', 'build/srclib/MozFennec', 'vagrant@127.0.0.1:/home/vagrant/build/srclib']' returned non-zero exit status 255."
Which is generated by the rsync subprocess call in build_server(). I
assume that it threw an Exception (not an FdroidException, because the
string "Build completed at" is not in the wiki site) that was caught in
main().