comparison mercurial/merge.py @ 44289:9f8eddd2723f

purge: add -i flag to delete ignored files instead of untracked files It's convenient for deleting build artifacts. Using --all instead would delete other things too. Differential Revision: https://phab.mercurial-scm.org/D8096
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
date Sat, 08 Feb 2020 10:22:47 -0500
parents e76d98546bd2
children 218feb1a7e00
comparison
equal deleted inserted replaced
44288:cd8f248fead4 44289:9f8eddd2723f
2696 2696
2697 2697
2698 def purge( 2698 def purge(
2699 repo, 2699 repo,
2700 matcher, 2700 matcher,
2701 unknown=True,
2701 ignored=False, 2702 ignored=False,
2702 removeemptydirs=True, 2703 removeemptydirs=True,
2703 removefiles=True, 2704 removefiles=True,
2704 abortonerror=False, 2705 abortonerror=False,
2705 noop=False, 2706 noop=False,
2707 """Purge the working directory of untracked files. 2708 """Purge the working directory of untracked files.
2708 2709
2709 ``matcher`` is a matcher configured to scan the working directory - 2710 ``matcher`` is a matcher configured to scan the working directory -
2710 potentially a subset. 2711 potentially a subset.
2711 2712
2712 ``ignored`` controls whether ignored files should also be purged. 2713 ``unknown`` controls whether unknown files should be purged.
2714
2715 ``ignored`` controls whether ignored files should be purged.
2713 2716
2714 ``removeemptydirs`` controls whether empty directories should be removed. 2717 ``removeemptydirs`` controls whether empty directories should be removed.
2715 2718
2716 ``removefiles`` controls whether files are removed. 2719 ``removefiles`` controls whether files are removed.
2717 2720
2744 try: 2747 try:
2745 if removeemptydirs: 2748 if removeemptydirs:
2746 directories = [] 2749 directories = []
2747 matcher.traversedir = directories.append 2750 matcher.traversedir = directories.append
2748 2751
2749 status = repo.status(match=matcher, ignored=ignored, unknown=True) 2752 status = repo.status(match=matcher, ignored=ignored, unknown=unknown)
2750 2753
2751 if removefiles: 2754 if removefiles:
2752 for f in sorted(status.unknown + status.ignored): 2755 for f in sorted(status.unknown + status.ignored):
2753 if not noop: 2756 if not noop:
2754 repo.ui.note(_(b'removing file %s\n') % f) 2757 repo.ui.note(_(b'removing file %s\n') % f)