Mercurial > hg
annotate contrib/phab-refresh-stack.sh @ 48381:41f40f35278a
status: gather fixup info at comparison time
This is still racy, but on a much small windows. In addition, the API now make
it possible for it to not be racy. This also unlock other cleanups that we are
about to do regarding mtime ambiguity at gathering time.
Differential Revision: https://phab.mercurial-scm.org/D11785
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 17 Nov 2021 23:37:47 +0100 |
parents | 9be5db6148fb |
children | fba2d7fab11e |
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 |
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
|
4 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
|
5 --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
|
6 -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
|
7 | 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
|
8 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
|
9 --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
|
10 -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
|
11 | 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
|
12 |
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
|
13 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
|
14 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
|
15 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
|
16 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
|
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_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
|
19 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
|
20 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
|
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 -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
|
24 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
|
25 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
|
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 [[ "$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
|
29 echo 'missing $PHABRICATOR_TOKEN variable' >&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 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
|
34 --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
|
35 --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
|
36 --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
|
37 --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
|
38 --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
|
39 --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
|
40 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
|
41 "$@" |