Skip to content

Commit bb1680d

Browse files
committed
Propagate the clean flag to SCM.checkout()
1 parent 038d0ad commit bb1680d

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

mbed/mbed.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def fetch_rev(url, rev):
284284
rmtree_readonly(arch_dir)
285285
raise Exception(128, "An error occurred while unpacking mbed library archive \"%s\" in \"%s\"" % (tmp_file, os.getcwd()))
286286

287-
def checkout(rev):
287+
def checkout(rev, clean=False):
288288
url = Bld.geturl()
289289
m = Bld.isurl(url)
290290
if not m:
@@ -315,7 +315,7 @@ def checkout(rev):
315315
Bld.seturl(url+'/'+rev)
316316

317317
def update(rev=None, clean=False, is_local=False):
318-
return Bld.checkout(rev)
318+
return Bld.checkout(rev, clean)
319319

320320
def untracked():
321321
return ""
@@ -395,16 +395,14 @@ def discard():
395395
log("Discarding local changes in \"%s\"" % os.path.basename(os.getcwd()))
396396
popen([hg_cmd, 'update', '-C'] + (['-v'] if verbose else ['-q']))
397397

398-
def checkout(rev):
398+
def checkout(rev, clean=False):
399399
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']))
401401

402402
def update(rev=None, clean=False, is_local=False):
403-
if clean:
404-
Hg.discard()
405403
if not is_local:
406404
Hg.fetch()
407-
Hg.checkout(rev)
405+
Hg.checkout(rev, clean)
408406

409407
def status():
410408
return pquery([hg_cmd, 'status'] + (['-v'] if verbose else ['-q']))
@@ -580,11 +578,11 @@ def merge(dest):
580578
log("Merging \"%s\" with \"%s\"" % (os.path.basename(os.getcwd()), dest))
581579
popen([git_cmd, 'merge', dest] + (['-v'] if verbose else ['-q']))
582580

583-
def checkout(rev):
581+
def checkout(rev, clean=False):
584582
if not rev:
585583
return
586584
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']))
588586
if Git.isdetached(): # try to find associated refs to avoid detached state
589587
refs = Git.getrefs(rev)
590588
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):
599597
if not is_local:
600598
Git.fetch()
601599
if rev:
602-
Git.checkout(rev)
600+
Git.checkout(rev, clean)
603601
else:
604602
remote = Git.getremote()
605603
branch = Git.getbranch()
@@ -1466,7 +1464,7 @@ def import_(url, path=None, ignore=False, depth=None, protocol=None, top=True):
14661464
with cd(repo.path):
14671465
Program(repo.path).set_root()
14681466
try:
1469-
repo.checkout(repo.rev)
1467+
repo.checkout(repo.rev, True)
14701468
except ProcessException as e:
14711469
err = "Unable to update \"%s\" to %s" % (repo.name, repo.revtype(repo.rev, True))
14721470
if depth:

0 commit comments

Comments
 (0)