X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/9d15ccd85e36ef5cd554aaf98f1c37ef0433697f..05d593c088d335e86573a2d4bc63ff308bde759b:/stgit/git.py diff --git a/stgit/git.py b/stgit/git.py index fb75a85..5abe902 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -434,6 +434,22 @@ def switch(tree_id): __set_head(tree_id) +def reset(tree_id = None): + """Revert the tree changes relative to the given tree_id. It removes + any local changes + """ + if not tree_id: + tree_id = get_head() + + cache_files = __tree_status(tree_id = tree_id) + rm_files = [x[1] for x in cache_files if x[0] in ['D']] + + checkout(tree_id = tree_id, force = True) + __set_head(tree_id) + + # checkout doesn't remove files + map(os.remove, rm_files) + def pull(location, head = None, tag = None): """Fetch changes from the remote repository. At the moment, just use the 'git fetch' scripts