Mercurial > hg
annotate contrib/phab-refresh-stack.sh @ 50821:28c0fcff24e5 stable
rhg: fix the bug where sparse config is interpreted as relglob instead of glob
relglob apparently (in contrast with relpath) matches everywhere in the tree,
whereas glob only matches at the root.
The python version interprets these patterns as "glob" (see
"normalize(include, b'glob', ...)" in match.py)
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Thu, 10 Aug 2023 19:00:19 +0100 |
parents | fba2d7fab11e |
children |
rev | line source |
---|---|
45990
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
1 #!/bin/bash |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 set -eu |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 |
48697
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
4 if [[ "$PHABRICATOR_TOKEN" == "NO-PHAB" ]]; then |
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
5 echo 'Skipping Phabricator Step' >&2 |
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
6 exit 0 |
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
7 fi |
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
8 |
46043
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
9 revision_in_stack=`hg log \ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
10 --rev '.#stack and ::. and topic()' \ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
11 -T '\nONE-REV\n' \ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
12 | grep 'ONE-REV' | wc -l` |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
13 revision_on_phab=`hg log \ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
14 --rev '.#stack and ::. and topic() and desc("re:\nDifferential Revision: [^\n]+D\d+$")'\ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
15 -T '\nONE-REV\n' \ |
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
16 | grep 'ONE-REV' | wc -l` |
45990
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
17 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
18 if [[ $revision_in_stack -eq 0 ]]; then |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 echo "stack is empty" >&2 |
46016
372409eb5cd1
phab-refresh: do not error out when the stack is empty
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45990
diff
changeset
|
20 exit 0 |
45990
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 fi |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 if [[ $revision_on_phab -eq 0 ]]; then |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 echo "no tracked diff in this stack" >&2 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 exit 0 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 fi |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
27 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 if [[ $revision_on_phab -lt $revision_in_stack ]]; then |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 echo "not all stack changesets (${revision_in_stack}) have matching Phabricator Diff (${revision_on_phab})" >&2 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
30 exit 2 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
31 fi |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
32 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
33 if [[ "$PHABRICATOR_TOKEN" == "" ]]; then |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
34 echo 'missing $PHABRICATOR_TOKEN variable' >&2 |
48697
fba2d7fab11e
phabricator-refresh: add a magic value to skip it in the CI
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46044
diff
changeset
|
35 echo '(use PHABRICATOR_TOKEN="NO-PHAB" to disable this step)' >&2 |
45990
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
36 exit 2 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 fi |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 hg \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
40 --config extensions.phabricator= \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
41 --config phabricator.url=https://phab.mercurial-scm.org/ \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
42 --config phabricator.callsign=HG \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 --config auth.phabricator.schemes=https \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 --config auth.phabricator.prefix=phab.mercurial-scm.org \ |
5de27798d2af
contrib: add a small script to refresh all diff in the current stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 --config auth.phabricator.phabtoken=$PHABRICATOR_TOKEN \ |
46043
024f90fc01b5
phab-refresh: do not pick draft changeset from the bare "default" branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46016
diff
changeset
|
46 phabsend --rev '.#stack and ::. and topic()' \ |
46044
9be5db6148fb
phab-refresh: allow passing additional argument to the phabsend
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46043
diff
changeset
|
47 "$@" |