setupBuildNum.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/sh
  2. v60Filter="4f47587a72ac8bece190b529cd4c50417f772226" # Sep 16 2023, increment build number
  3. v50Filter="054431fce7650c0d58df3f9a4100ea98d215486e" # May 5 2021, Implemented Batch::cancel() over the wire
  4. v40Filter="bb46a0e8310de196104bcca78fda2e0c1ea77bb5" # Feb 28 2016, Set up the new version
  5. v30Offset=15471
  6. v25Offset=13822
  7. processBranch() {
  8. Branch="$1"
  9. Adjust="$2"
  10. Filter="$3"
  11. if [ "$Filter" ]
  12. then
  13. Range="$Filter..$Branch" # this notation excludes commit $Filter, so it should not belong to our range
  14. else
  15. Range="$Branch"
  16. fi
  17. git checkout $Branch
  18. git reset --hard origin/$Branch
  19. git clean -d -x -f
  20. TmpFile=temp.buildno
  21. WriteBuildNumFile="src/misc/writeBuildNum.sh"
  22. BuildNoFile="src/jrd/build_no.h"
  23. OrgBuildNo=$(grep "FB_BUILD_NO" $BuildNoFile | cut -d'"' -f2)
  24. Count=$(git rev-list --count $Range)
  25. Skip1=$(git rev-list --grep="increment build number" --count $Range)
  26. Skip2=$(git rev-list --grep="nightly update" --count $Range)
  27. git rev-list $Range >~/Count.$Branch
  28. git rev-list --grep="increment build number" $Range >~/Skip1.$Branch
  29. git rev-list --grep="nightly update" $Range >~/Skip2.$Branch
  30. NewBuildNo=$(($Count-$Skip1-$Skip2+$Adjust))
  31. if [ "$NewBuildNo" != "$OrgBuildNo" ]; then
  32. Starting="BuildNum="
  33. NewLine="BuildNum=$NewBuildNo"
  34. AwkProgram="(/^$Starting.*/ || \$1 == \"$Starting\") {\$0=\"$NewLine\"} {print \$0}"
  35. awk "$AwkProgram" <$WriteBuildNumFile >$TmpFile && mv $TmpFile $WriteBuildNumFile
  36. chmod +x $WriteBuildNumFile
  37. $WriteBuildNumFile rebuildHeader $BuildNoFile $TmpFile
  38. git commit -m "increment build number" $WriteBuildNumFile $BuildNoFile
  39. rm -f $TmpFile
  40. fi
  41. }
  42. errFile=~/gitFsckErr.buildNo
  43. git fsck --strict >$errFile 2>&1 || exit
  44. rm -f $errFile
  45. git fetch --all
  46. processBranch master 0 $v60Filter
  47. processBranch v5.0-release 0 $v50Filter
  48. processBranch v4.0-release 0 $v40Filter
  49. processBranch B3_0_Release $v30Offset
  50. processBranch B2_5_Release $v25Offset
  51. export GIT_COMMITTER_NAME="firebirds"
  52. export GIT_COMMITTER_EMAIL="<>"
  53. export GIT_AUTHOR_NAME="firebirds"
  54. export GIT_AUTHOR_EMAIL="<>"
  55. git push --all