gbs-tests-constants.sh.inc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. ## string constants ##
  2. readonly GBS_CMD=git-branch-status
  3. readonly MKTEMP_TEMPLATE='gbs-test-XXXXXXXXXX'
  4. readonly LOCAL_NAME='local'
  5. readonly UPSTREAM_NAME='the-upstream'
  6. readonly PEER_NAME='a-collaborator'
  7. readonly COMMON_BRANCH='development'
  8. readonly PEER_RENAMED_BRANCH='devel'
  9. readonly WIP_BRANCH='my-wip'
  10. readonly TRACKED_FILE='tracked_file'
  11. readonly CRED='\033[0;31m'
  12. readonly CGREEN='\033[0;32m'
  13. readonly CLIME='\033[1;32m'
  14. readonly CBLUE='\033[0;36m'
  15. readonly CEND='\033[0m'
  16. ## expected config test results ##
  17. readonly CFG_FILE_LOC_ENV_TEXT="GBS_CFG_FILE=(exists):"
  18. readonly CFG_FILE_LOC_DEF_TEXT="GBS_CFG_FILE="
  19. read -r -d '' FETCH_PERIOD_ENV_TEXT <<'EOF'
  20. GBS_FETCH_PERIOD=42
  21. CFG_FETCH_PERIOD=-42
  22. FETCH_PERIOD=42
  23. EOF
  24. read -r -d '' FETCH_PERIOD_CFG_TEXT <<'EOF'
  25. GBS_FETCH_PERIOD=
  26. CFG_FETCH_PERIOD=-42
  27. FETCH_PERIOD=-42
  28. EOF
  29. read -r -d '' FETCH_PERIOD_DEF_TEXT <<'EOF'
  30. GBS_FETCH_PERIOD=
  31. CFG_FETCH_PERIOD=
  32. FETCH_PERIOD=-1
  33. EOF
  34. read -r -d '' LAST_FETCH_ENV_TEXT <<'EOF'
  35. GBS_LAST_FETCH_FILE=DUMMY
  36. CFG_LAST_FETCH_FILE=__TMP_DIR__/GBS_LAST_FETCH
  37. LAST_FETCH_FILE=DUMMY
  38. EOF
  39. read -r -d '' LAST_FETCH_CFG_TEXT <<'EOF'
  40. GBS_LAST_FETCH_FILE=
  41. CFG_LAST_FETCH_FILE=__TMP_DIR__/GBS_LAST_FETCH
  42. LAST_FETCH_FILE=__TMP_DIR__/GBS_LAST_FETCH
  43. EOF
  44. read -r -d '' LAST_FETCH_DEF_TEXT <<'EOF'
  45. GBS_LAST_FETCH_FILE=
  46. CFG_LAST_FETCH_FILE=
  47. LAST_FETCH_FILE=__HOME_DIR__/.GBS_LAST_FETCH
  48. EOF
  49. read -r -d '' ANSI_COLOR_ENV_TEXT <<'EOF'
  50. GBS_USE_ANSI_COLOR=0
  51. CFG_USE_ANSI_COLOR=1
  52. USE_ANSI_COLOR=0
  53. EOF
  54. read -r -d '' ANSI_COLOR_CFG_TEXT <<'EOF'
  55. GBS_USE_ANSI_COLOR=
  56. CFG_USE_ANSI_COLOR=1
  57. USE_ANSI_COLOR=1
  58. EOF
  59. read -r -d '' ANSI_COLOR_DEF_TEXT <<'EOF'
  60. GBS_USE_ANSI_COLOR=
  61. CFG_USE_ANSI_COLOR=
  62. USE_ANSI_COLOR=1
  63. EOF
  64. ## expected normal test results ##
  65. IFS= read -r -d '' LOCAL_TRACKING_TEXT <<'EOF'
  66. local <-> upstream
  67. EOF
  68. IFS= read -r -d '' LOCAL_COLLAB_TEXT <<'EOF'
  69. local <-> a-collaborator
  70. EOF
  71. IFS= read -r -d '' LOCAL_UPSTREAM_TEXT <<'EOF'
  72. local <-> the-upstream
  73. EOF
  74. IFS= read -r -d '' LOCALDEV_LOCALWIP_TEXT <<'EOF'
  75. development <-> my-wip
  76. EOF
  77. IFS= read -r -d '' LOCALDEV_PEERDEV_TEXT <<'EOF'
  78. development <-> a-collaborator/devel
  79. EOF
  80. IFS= read -r -d '' PEERWIP_LOCALWIP_TEXT <<'EOF'
  81. a-collaborator/my-wip <-> my-wip
  82. EOF
  83. IFS= read -r -d '' UPSTRMASTER_PEERMASTER_TEXT <<'EOF'
  84. the-upstream/master <-> a-collaborator/master
  85. EOF
  86. IFS= read -r -d '' LOCALS_CLEANUP_TEXT <<'EOF'
  87. locals <-> master
  88. EOF
  89. readonly ARG_REQUIRED_TEXT="fatal: This option requires an argument"
  90. readonly ARGS_REQUIRED_TEXT="fatal: This form requires zero or two arguments"
  91. IFS= read -r -d '' TRACKED_INSYNC_TEXT <<'EOF'
  92. ---------------------------------------------------------------
  93. | All tracking branches are synchronized with their upstreams |
  94. ---------------------------------------------------------------
  95. EOF
  96. IFS= read -r -d '' UNTRACKED_INSYNC_TEXT <<'EOF'
  97. -----------------------------------------------------------------
  98. | These branches are synchronized with no tracking relationship |
  99. -----------------------------------------------------------------
  100. EOF
  101. IFS= read -r -d '' OUTOFSYNCH_TEXT <<'EOF'
  102. ---------------------------------------------------------------
  103. *| development | (even) | (ahead 1) | the-upstream/development |
  104. ---------------------------------------------------------------
  105. EOF
  106. IFS= read -r -d '' ARBITRARYBRANCHES_LOCALDEV_LOCALWIP_TEXT <<'EOF'
  107. -------------------------------------------------
  108. *| development | (behind 1) | (ahead 1) | my-wip |
  109. -------------------------------------------------
  110. EOF
  111. IFS= read -r -d '' ARBITRARYBRANCHES_LOCALDEV_PEERDEV_TEXT <<'EOF'
  112. ---------------------------------------------------------------
  113. *| development | (behind 1) | (ahead 1) | a-collaborator/devel |
  114. ---------------------------------------------------------------
  115. EOF
  116. IFS= read -r -d '' ARBITRARYBRANCHES_PEERWIP_LOCALWIP_TEXT <<'EOF'
  117. -----------------------------------------------------------
  118. | a-collaborator/my-wip | (behind 1) | (ahead 2) | my-wip |
  119. -----------------------------------------------------------
  120. EOF
  121. IFS= read -r -d '' CURRENTBRANCH_TEXT <<'EOF'
  122. ---------------------------------------------------------------
  123. *| development | (even) | (ahead 1) | the-upstream/development |
  124. ---------------------------------------------------------------
  125. EOF
  126. IFS= read -r -d '' SPECIFICBRANCH_TEXT <<'EOF'
  127. --------------------------------------
  128. | my-wip | n/a | n/a | (no upstream) |
  129. --------------------------------------
  130. EOF
  131. IFS= read -r -d '' OUTOFSYNCH_DATES_TEXT <<EOF
  132. -------------------------------------------------------------------------------------
  133. | 2000-01-05 development | (even) | (ahead 1) | 2000-01-02 the-upstream/development |
  134. -------------------------------------------------------------------------------------
  135. EOF
  136. IFS= read -r -d '' CLEANUP_TEXT <<EOF
  137. --------------------------------------------------------------------------
  138. | 2000-01-01 merged-into-master | (even) | (even) | 2000-01-01 master |
  139. | 2000-01-04 my-wip | (even) | (ahead 2) | 2000-01-01 master |
  140. | 2000-01-05 development | (even) | (ahead 2) | 2000-01-01 master |
  141. --------------------------------------------------------------------------
  142. branch: merged-into-master is identical to: master
  143. Delete merged-into-master? [y/N]
  144. EOF
  145. IFS= read -r -d '' HELP_TEXT <<'EOF'
  146. USAGE:
  147. git-branch-status
  148. git-branch-status [ base-branch-name compare-branch-name ]
  149. git-branch-status [ -a | --all ]
  150. git-branch-status [ -b | --branch ] [ filter-branch-name ]
  151. git-branch-status [ -d | --dates ]
  152. git-branch-status [ -h | --help ]
  153. git-branch-status [ -l | --local ]
  154. git-branch-status [ -r | --remotes ]
  155. git-branch-status [ -v | --verbose ]
  156. EXAMPLES:
  157. # show only branches for which upstream differs from local
  158. $ git-branch-status
  159. | collab-branch | (behind 1) | (ahead 2) | origin/collab-branch |
  160. | feature-branch | (even) | (ahead 2) | origin/feature-branch |
  161. | master | (behind 1) | (even) | origin/master |
  162. # compare two arbitrary branches - local or remote
  163. $ git-branch-status a-branch another-branch
  164. | a-branch | (even) | (even) | another-branch |
  165. $ git-branch-status a-branch a-remote/any-branch
  166. | a-branch | (even) | (even) | a-remote/any-branch |
  167. $ git-branch-status a-remote/any-branch a-branch
  168. | a-remote/any-branch | (behind 1) | (even) | a-branch |
  169. $ git-branch-status a-remote/any-branch other-remote/other-branch
  170. | a-remote/any-branch | (behind 1) | (even) | other-remote/other-branch |
  171. # show all branches - local and remote, regardless of state or relationship
  172. $ git-branch-status -a
  173. $ git-branch-status --all
  174. *| master | (even) | (ahead 1) | origin/master |
  175. | tracked-branch | (even) | (even) | origin/tracked-branch |
  176. | (no local) | n/a | n/a | origin/untracked-branch |
  177. | local-branch | n/a | n/a | (no upstream) |
  178. | master | (behind 1) | (ahead 1) | a-remote/master |
  179. | (no local) | n/a | n/a | a-remote/untracked-branch |
  180. # show the current branch
  181. $ git-branch-status -b
  182. $ git-branch-status --branch
  183. *| current-branch | (even) | (ahead 2) | origin/current-branch |
  184. # show a specific branch
  185. $ git-branch-status specific-branch
  186. $ git-branch-status -b specific-branch
  187. $ git-branch-status --branch specific-branch
  188. | specific-branch | (even) | (ahead 2) | origin/specific-branch |
  189. # compare a specific local branch against all other local branches
  190. $ git-branch-status -c master
  191. $ git-branch-status --cleanup master
  192. *| master | (behind 2) | (even) | master |
  193. | merged-into-master | (even) | (even) | master |
  194. | wip | (even) | (ahead 1) | master |
  195. branch: merged-into-master is identical to: master
  196. Delete merged-into-master? [y/N]
  197. # show the timestamp of each out-of-sync local ref
  198. $ git-branch-status -d
  199. $ git-branch-status --dates
  200. | 1999-12-30 master | (even) | (even) | 1999-12-30 origin/master |
  201. | 1999-12-31 devel | (behind 2) | (even) | 2000-01-01 origin/devel |
  202. # show the timestamp of arbitrary branch refs
  203. $ git-branch-status -d a-branch another-branch
  204. $ git-branch-status --dates a-branch another-branch
  205. | 1999-12-31 a-branch | (even) | (even) | 2000-01-01 another-branch |
  206. # print this usage message
  207. $ git-branch-status -h
  208. $ git-branch-status --help
  209. "prints this usage message"
  210. # show all local branches - including those synchronized or non-tracking
  211. $ git-branch-status -l
  212. $ git-branch-status --local
  213. *| master | (even) | (ahead 1) | origin/master |
  214. | tracked-branch | (even) | (even) | origin/tracked-branch |
  215. | local-branch | n/a | n/a | (no upstream) |
  216. # show all remote branches - including those not checked-out
  217. $ git-branch-status -r
  218. $ git-branch-status --remotes
  219. | master | (behind 1) | (even) | a-remote/master |
  220. | (no local) | n/a | n/a | a-remote/untracked-branch |
  221. # show all branches with timestamps (like -a -d)
  222. $ git-branch-status -v
  223. $ git-branch-status --verbose
  224. | 1999-12-31 master | (behind 1) | (even) | 2000-01-01 origin/master |
  225. | 1999-12-31 tracked | (even) | (even) | 2000-01-01 origin/tracked |
  226. *| 1999-12-31 local-wip | n/a | n/a | (no upstream) |
  227. EOF
  228. IFS= read -r -d '' LOCALS_TEXT <<'EOF'
  229. ---------------------------------------------------------------
  230. *| development | (even) | (ahead 1) | the-upstream/development |
  231. | master | (even) | (even) | the-upstream/master |
  232. | my-wip | n/a | n/a | (no upstream) |
  233. ---------------------------------------------------------------
  234. EOF
  235. IFS= read -r -d '' REMOTES_COLLAB_TEXT <<'EOF'
  236. ---------------------------------------------------------------
  237. | (no local) | n/a | n/a | a-collaborator/devel |
  238. | master | (even) | (even) | a-collaborator/master |
  239. | my-wip | (behind 2) | (ahead 1) | a-collaborator/my-wip |
  240. ---------------------------------------------------------------
  241. EOF
  242. IFS= read -r -d '' REMOTES_COLLAB_INSYNC_TEXT <<'EOF'
  243. --------------------------------------------------------
  244. | (no local) | n/a | n/a | a-collaborator/devel |
  245. | master | (even) | (even) | a-collaborator/master |
  246. | my-wip | (even) | (even) | a-collaborator/my-wip |
  247. --------------------------------------------------------
  248. EOF
  249. IFS= read -r -d '' REMOTES_ORIGIN_TEXT <<'EOF'
  250. ---------------------------------------------------------------
  251. *| development | (even) | (ahead 1) | the-upstream/development |
  252. | master | (even) | (even) | the-upstream/master |
  253. ---------------------------------------------------------------
  254. EOF
  255. IFS= read -r -d '' REMOTES_INSYNC_TEXT <<'EOF'
  256. ------------------------------------------------------------------------------------------------
  257. | All local branches with corresponding names on this remote are synchronized with that remote |
  258. ------------------------------------------------------------------------------------------------
  259. EOF
  260. IFS= read -r -d '' LOCALS_DATES_TEXT <<EOF
  261. -------------------------------------------------------------------------------------
  262. | 2000-01-01 master | (even) | (even) | 2000-01-01 the-upstream/master |
  263. | 2000-01-03 my-wip | n/a | n/a | (no upstream) |
  264. | 2000-01-05 development | (even) | (ahead 1) | 2000-01-02 the-upstream/development |
  265. -------------------------------------------------------------------------------------
  266. EOF
  267. IFS= read -r -d '' REMOTES_COLLAB_DATES_TEXT <<EOF
  268. --------------------------------------------------------------------------
  269. | 2000-01-01 master | (even) | (even) | 2000-01-01 a-collaborator/master |
  270. | (no local) | n/a | n/a | 2000-01-03 a-collaborator/devel |
  271. | 2000-01-03 my-wip | (even) | (even) | 2000-01-03 a-collaborator/my-wip |
  272. --------------------------------------------------------------------------
  273. EOF
  274. IFS= read -r -d '' REMOTES_ORIGIN_DATES_TEXT <<EOF
  275. -------------------------------------------------------------------------------------
  276. | 2000-01-01 master | (even) | (even) | 2000-01-01 the-upstream/master |
  277. | 2000-01-05 development | (even) | (ahead 1) | 2000-01-02 the-upstream/development |
  278. -------------------------------------------------------------------------------------
  279. EOF