@@ -1785,15 +1785,16 @@ def update_import_cmd(args):
1785
1785
parser .add_argument ('--no-pull' , action = 'store_true' )
1786
1786
parser .add_argument ('--no-push' , action = 'store_true' )
1787
1787
parser .add_argument ('--allow-dirty' , action = 'store_true' )
1788
+ parser .add_argument ('--no-master-check' , action = 'store_true' , help = "do not check if repos are on master branch (e.g., when detached)" )
1788
1789
args = parser .parse_args (args )
1789
1790
1790
1791
join = os .path .join
1791
1792
vc = SUITE .vc
1792
1793
1793
- current_branch = vc .active_branch (SUITE .dir )
1794
+ current_branch = vc .active_branch (SUITE .dir , abortOnError = not args . no_master_check )
1794
1795
if vc .isDirty (SUITE .dir ) and not args .allow_dirty :
1795
- mx .abort ("updating imports should be done on a clean branch" )
1796
- if current_branch == "master" :
1796
+ mx .abort (f "updating imports should be done on a clean branch, not clean: { SUITE . dir } " )
1797
+ if current_branch == "master" or args . no_master_check :
1797
1798
vc .git_command (SUITE .dir , ["checkout" , "-b" , f"update/GR-21590/{ datetime .datetime .now ().strftime ('%d%m%y' )} " ])
1798
1799
current_branch = vc .active_branch (SUITE .dir )
1799
1800
@@ -1807,10 +1808,10 @@ def update_import_cmd(args):
1807
1808
for d in repos :
1808
1809
if vc .isDirty (d ) and not args .allow_dirty :
1809
1810
mx .abort ("repo %s is not clean" % d )
1810
- d_branch = vc .active_branch (d )
1811
+ d_branch = vc .active_branch (d , abortOnError = not args . no_master_check )
1811
1812
if d_branch == current_branch :
1812
1813
pass
1813
- elif d_branch == "master" :
1814
+ elif args . no_master_check or d_branch == "master" :
1814
1815
vc .set_branch (d , current_branch , with_remote = False )
1815
1816
vc .git_command (d , ["checkout" , current_branch ], abortOnError = True )
1816
1817
else :
@@ -1820,11 +1821,11 @@ def update_import_cmd(args):
1820
1821
overlaydir = join (SUITE .dir , ".." , "ci-overlays" )
1821
1822
if not os .path .exists (overlaydir ):
1822
1823
mx .abort ("Overlays repo must be next to graalpython repo" )
1823
- vc = mx .VC .get_vc (overlaydir )
1824
+ vc = mx .VC .get_vc (overlaydir )
1824
1825
if vc .isDirty (overlaydir ) and not args .allow_dirty :
1825
1826
mx .abort ("overlays repo must be clean" )
1826
- overlaybranch = vc .active_branch (overlaydir )
1827
- if overlaybranch == "master" :
1827
+ overlaybranch = vc .active_branch (overlaydir , abortOnError = not args . no_master_check )
1828
+ if args . no_master_check or overlaybranch == "master" :
1828
1829
if not args .no_pull :
1829
1830
vc .pull (overlaydir )
1830
1831
vc .set_branch (overlaydir , current_branch , with_remote = False )
0 commit comments