Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

merge-all.sh 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. FROM=$1
  3. AUTOMERGE=$2
  4. if [ "$FROM" = "" ]
  5. then
  6. echo "Usage: $0 <from version> [automerge]"
  7. exit
  8. fi
  9. if [ "$AUTOMERGE" = "automerge" ]
  10. then
  11. AUTOCOMMIT="autocommit"
  12. fi
  13. svn up
  14. localchanges=`svn stat|wc -l`
  15. if [ "$localchanges" != "0" ] && [ "$IGNOREDIRTY" != "ignoredirty" ]
  16. then
  17. echo "You must have a clean working space copy"
  18. exit
  19. fi
  20. currentrepowithoutversion=`svn info|grep URL|sed "s/URL: //"|sed "s/\/[^\/]*$//"`
  21. sourceurl="$currentrepowithoutversion/$FROM"
  22. if [ "$unmerged" = "" ]
  23. then
  24. echo "No changes to merge"
  25. exit 0
  26. fi
  27. echo "Unmerged changes"
  28. echo "================"
  29. for revision in $unmerged
  30. do
  31. echo -n "[$revision] "
  32. svn log $sourceurl -r $revision --xml|grep "<msg>"|sed "s/<msg>//"|sed "s/<\/msg>//"
  33. done
  34. cmd=""
  35. for revision in $unmerged
  36. do
  37. thiscmd=`dirname $0`"/merge.sh $FROM $revision $AUTOCOMMIT $IGNOREDIRTY"
  38. cmd="$thiscmd && "
  39. if [ "$AUTOMERGE" = "automerge" ]
  40. then
  41. echo "Merging [$revision]..."
  42. $thiscmd
  43. if [ "$?" != "0" ]
  44. then
  45. echo "Merge of [$revision] failed, aborting..."
  46. exit 1
  47. fi
  48. fi
  49. done
  50. cmd="$cmd true"
  51. if [ "$AUTOMERGE" != "automerge" ]
  52. then
  53. echo
  54. echo "Merge command:"
  55. echo
  56. echo $cmd
  57. fi