contrib/phab-refresh-stack.sh
changeset 45990 5de27798d2af
child 46016 372409eb5cd1
equal deleted inserted replaced
45989:60523483897c 45990:5de27798d2af
       
     1 #!/bin/bash
       
     2 set -eu
       
     3 
       
     4 revision_in_stack=`hg log --rev '.#stack and ::.' -T '\nONE-REV\n' | grep 'ONE-REV' | wc -l`
       
     5 revision_on_phab=`hg log --rev '.#stack and ::. and desc("re:\nDifferential Revision: [^\n]+D\d+$")' -T '\nONE-REV\n' | grep 'ONE-REV' | wc -l`
       
     6 
       
     7 if [[ $revision_in_stack -eq 0 ]]; then
       
     8     echo "stack is empty" >&2
       
     9     exit 1
       
    10 fi
       
    11 
       
    12 if [[ $revision_on_phab -eq 0 ]]; then
       
    13     echo "no tracked diff in this stack" >&2
       
    14     exit 0
       
    15 fi
       
    16 
       
    17 if [[ $revision_on_phab -lt $revision_in_stack ]]; then
       
    18     echo "not all stack changesets (${revision_in_stack}) have matching Phabricator Diff (${revision_on_phab})" >&2
       
    19     exit 2
       
    20 fi
       
    21 
       
    22 if [[ "$PHABRICATOR_TOKEN" == "" ]]; then
       
    23     echo 'missing $PHABRICATOR_TOKEN variable' >&2
       
    24     exit 2
       
    25 fi
       
    26 
       
    27 hg \
       
    28 --config extensions.phabricator= \
       
    29 --config phabricator.url=https://phab.mercurial-scm.org/ \
       
    30 --config phabricator.callsign=HG \
       
    31 --config auth.phabricator.schemes=https \
       
    32 --config auth.phabricator.prefix=phab.mercurial-scm.org \
       
    33 --config auth.phabricator.phabtoken=$PHABRICATOR_TOKEN \
       
    34 phabsend --rev '.#stack and ::.'