@@ -284,7 +284,7 @@ def fetch_rev(url, rev):
284
284
rmtree_readonly (arch_dir )
285
285
raise Exception (128 , "An error occurred while unpacking mbed library archive \" %s\" in \" %s\" " % (tmp_file , os .getcwd ()))
286
286
287
- def checkout (rev ):
287
+ def checkout (rev , clean = False ):
288
288
url = Bld .geturl ()
289
289
m = Bld .isurl (url )
290
290
if not m :
@@ -315,7 +315,7 @@ def checkout(rev):
315
315
Bld .seturl (url + '/' + rev )
316
316
317
317
def update (rev = None , clean = False , is_local = False ):
318
- return Bld .checkout (rev )
318
+ return Bld .checkout (rev , clean )
319
319
320
320
def untracked ():
321
321
return ""
@@ -395,16 +395,14 @@ def discard():
395
395
log ("Discarding local changes in \" %s\" " % os .path .basename (os .getcwd ()))
396
396
popen ([hg_cmd , 'update' , '-C' ] + (['-v' ] if verbose else ['-q' ]))
397
397
398
- def checkout (rev ):
398
+ def checkout (rev , clean = False ):
399
399
log ("Checkout \" %s\" in %s to %s" % (rev , os .path .basename (os .getcwd ()), rev ))
400
- popen ([hg_cmd , 'update' ] + (['-r' , rev ] if rev else []) + (['-v' ] if verbose else ['-q' ]))
400
+ popen ([hg_cmd , 'update' ] + (['-C' ] if clean else []) + ([ '- r' , rev ] if rev else []) + (['-v' ] if verbose else ['-q' ]))
401
401
402
402
def update (rev = None , clean = False , is_local = False ):
403
- if clean :
404
- Hg .discard ()
405
403
if not is_local :
406
404
Hg .fetch ()
407
- Hg .checkout (rev )
405
+ Hg .checkout (rev , clean )
408
406
409
407
def status ():
410
408
return pquery ([hg_cmd , 'status' ] + (['-v' ] if verbose else ['-q' ]))
@@ -580,11 +578,11 @@ def merge(dest):
580
578
log ("Merging \" %s\" with \" %s\" " % (os .path .basename (os .getcwd ()), dest ))
581
579
popen ([git_cmd , 'merge' , dest ] + (['-v' ] if verbose else ['-q' ]))
582
580
583
- def checkout (rev ):
581
+ def checkout (rev , clean = False ):
584
582
if not rev :
585
583
return
586
584
log ("Checkout \" %s\" in %s to %s" % (rev , os .path .basename (os .getcwd ()), rev ))
587
- popen ([git_cmd , 'checkout' , rev ] + ([] if verbose else ['-q' ]))
585
+ popen ([git_cmd , 'checkout' , rev ] + (['-f' ] if clean else []) + ([ ] if verbose else ['-q' ]))
588
586
if Git .isdetached (): # try to find associated refs to avoid detached state
589
587
refs = Git .getrefs (rev )
590
588
for ref in refs : # re-associate with a local or remote branch (rev is the same)
@@ -599,7 +597,7 @@ def update(rev=None, clean=False, is_local=False):
599
597
if not is_local :
600
598
Git .fetch ()
601
599
if rev :
602
- Git .checkout (rev )
600
+ Git .checkout (rev , clean )
603
601
else :
604
602
remote = Git .getremote ()
605
603
branch = Git .getbranch ()
@@ -1466,7 +1464,7 @@ def import_(url, path=None, ignore=False, depth=None, protocol=None, top=True):
1466
1464
with cd (repo .path ):
1467
1465
Program (repo .path ).set_root ()
1468
1466
try :
1469
- repo .checkout (repo .rev )
1467
+ repo .checkout (repo .rev , True )
1470
1468
except ProcessException as e :
1471
1469
err = "Unable to update \" %s\" to %s" % (repo .name , repo .revtype (repo .rev , True ))
1472
1470
if depth :
0 commit comments